🚲Quick Start

Seam provides a unified API to connect and control IoT devices, such as smart locks, thermostats, cameras, and sensors. This guide walks you through issuing your first device API call.

Step 1 — Connect Devices

To get started with Seam, first connect a set of devices.

  1. In a web browser, go to the Seam Console at https://console.seam.co/ and create an account. Once you have logged in to the Seam Console, you are working in the default sandbox workspace.

  2. In the upper-right corner of the Devices page, click + Add Devices.

    The Seam Console displays an authorization flow (known as a Connect Webview) that enables you to connect a device account to Seam.

  3. In the Connect Webview, click Continue.

  4. In the manufacturer list, select August.

  5. When prompted, type the following sample (sandbox) credentials:

    • Email: jane@example.com

    • Password: 1234

  6. Click Submit.

  7. When prompted for a two-factor authentication (2FA) method, select Email.

  8. In the Two Factor Code field, type 123456 and then click Submit and Continue.

Once authorized, the devices associated with this test account appear in your workspace.

Step 2 — Get an API Key and SDK

To control the devices that you connected in Step 1, you must create an API key and install the Seam SDK in the programming language of your choice.

Create an API Key

  1. In left navigation pane of the Seam Console, click API Keys.

  2. In the upper-right corner of the API Keys page, click + Add API Key.

  3. In the Add API Key dialog, type a name for your new API key and then click Create API Key.

  4. Copy the newly-created API key and store it for future use.

Install the Seam SDK

Install one of the Seam SDKs in the programming language of your choice.

Seam provides client libraries for many languages, such as JavaScript, Python, Ruby, PHP, and others, as well as a Postman collection and OpenAPI spec.

npm i seam

Step 3 — Unlock a Door

Unlock your first door!

To start, open a terminal window and export your API key as an environment variable.

$ export SEAM_API_KEY=seam_test2bMS_94SrGUXuNR2JmJkjtvBQDg5c

The Seam SDK that you have installed automatically uses this API key once you have exported it.

Next, use the following code to retrieve one of the devices that you connected in Step 1, inspect the supported capabilities of the device, and use the Seam API to unlock the door:

Code:

from seam import Seam

seam = Seam()  # Seam automatically uses your exported SEAM_API_KEY.

# Retrieve all devices, filtered by manufacturer,
# which is one of several filters that list() supports.
all_august_locks = seam.devices.list(manufacturer="august")

# Select the first device as an example.
front_door = all_august_locks[0]

# Confirm that the device can remotely unlock.
# You're using a capability flag here!
if front_door.can_remotely_unlock:
  # Perform the unlock operation
  # and return an action attempt.
  action_attempt=seam.locks.unlock_door(device_id=front_door.device_id)

Output:

ActionAttempt(
  status='pending',
  action_type='UNLOCK_DOOR',
  action_attempt_id='11111111-2222-3333-4444-555555555555',
  result=None,
  error={}
)

Here are some ideas of what you can do next.

Connect a Real Device

If you have a real device, you can try to control it using the steps in this Quick Start. Note that you must first create a production workspace because sandbox workspaces only enable you to connect test accounts and devices. For more information, see Workspaces.

Connect Users' Devices

If you are creating an application (app) to control your users' devices, see Connect Webviews. Seam Connect Webviews are fully-embedded client-side components that you add to your app if you want to enable your users to import their own devices using your app. Your users interact with your embedded Connect Webviews to link their IoT device accounts to Seam through your app. That is, Connect Webviews walk your users through the process of logging in to their device accounts. Seam handles all the authentication steps, and—once your user has completed the authorization through your app—you can access and control their devices using the Seam API.

Learn about Devices and Capabilities

Seam supports many device categories. Each device can be broken down into device capabilities. A capability indicates what the device can do, what properties it has, and what events it emits. To learn more about specific capabilities, such as access codes or thermostats, see the following guides:

Last updated

Logo

© Seam Labs, Inc. All rights reserved.