Use a single API and dashboard to unlock doors, set temperatures, grant temporary access to buildings, tap into camera feeds, and more.
From smartlocks and thermostats, to whole building access and energy systems, Seam supports multiple device & system categories.
Seam integrates hundreds of device types and puts them behind a standardized API. Spend your days building great products—not reading obscure protocol docs.
1import Seam from "seamapi"
2
3// Automatically uses SEAM_API_KEY env var
4const seam = new Seam()
5
6// retrieve a lock and unlock it
7const myLock = await seam.locks.get({ name: "My Door" })
8await seam.locks.unlockDoor(myLock)
9
10// retrieve a thermostat and turn up the heat
11const myThermostat = await seam.thermostats.get({
12 name: "My HVAC",
13})
14
15seam.thermostats.setTemperature({
16 device: myThermostat,
17 temperature: "20C",
18})
19
1import Seam from "seamapi"
2
3// Automatically uses SEAM_API_KEY env var
4const seam = new Seam()
5
6// retrieve a lock and unlock it
7const myLock = await seam.locks.get({ name: "My Door" })
8await seam.locks.unlockDoor(myLock)
9
10// retrieve a thermostat and turn up the heat
11const myThermostat = await seam.thermostats.get({
12 name: "My HVAC",
13})
14
15seam.thermostats.setTemperature({
16 device: myThermostat,
17 temperature: "20C",
18})
19
Connect accounts. Retrieve devices. Automate the world.
Seam's pre-built login flows guide your users to find and connect their devices with your application.
Unlock doors across brands using a single API and SDKs
Set temporary and permanent access codes for your users
Users use OAuth or their login credentials
Users can then select which devices they want to connect to your app
From smartlocks and thermostats, to whole building access and energy systems, Seam supports multiple device & system categories.
Seam provides APIs, client libraries, extensive documentation, and advanced dashboards to unify your device fleet operations. Build any workflow imaginable, set granular permissions across thousand person organizations, and much more.
$ npm i seamapi
$ pip install seamapi
$ bundle add seamapi
$ composer require seamapi/seam
implementation 'io.github.seamapi:seam:0.x.x'
$ cargo add seamapi-rs
$ curl https://connect.getseam.com
Seam provides a set of APIs and client libraries that standardize common functions across device brands. This lets software developers implement any workflow imaginable.
The Seam Dashboard provides a unified interface that lets your Operation and Support teams work together to manage device fleets for a large number of locations.
Seam provides a set of APIs and client libraries that standardize common functions across device brands. This lets software developers implement any workflow imaginable.
The Seam Dashboard provides a unified interface that lets your Operation and Support teams work together to manage device fleets for a large number of locations.
Seam provides a library of pre-built UI components to ship device UIs in minutes, not days. It handles securely retrieving device data and letting your application users issue device commands.
1import {
2 SeamProvider,
3 ConnectAccountButton,
4 DeviceManager,
5} from "@seamapi/react"
6
7export const App = () => {
8 return (
9 <SeamProvider publishableKey="your_publishable_key">
10 <main>
11 <h1>My App</h1>
12 <ConnectAccountButton />
13 <DeviceManager />
14 </main>
15 </SeamProvider>
16 )
17}
18
1import {
2 SeamProvider,
3 ConnectAccountButton,
4 DeviceManager,
5} from "@seamapi/react"
6
7export const App = () => {
8 return (
9 <SeamProvider publishableKey="your_publishable_key">
10 <main>
11 <h1>My App</h1>
12 <ConnectAccountButton />
13 <DeviceManager />
14 </main>
15 </SeamProvider>
16 )
17}
18
With hundreds of device brands out there, it is not possible for you to own every device. This makes validating your code tricky. To solve this, Seam provides sandbox devices that accurately reproduce real device behavior. Use them to test your code, run CI, execute scenarios, and more.