Skip to content

Get started

Sign up. It is instant: a bot check, a password under the same policy the household console enforces, and a verification email. Nothing reaches a house, and no key exists until your email is real.

2. Verify, create an app, then get credentials

Section titled “2. Verify, create an app, then get credentials”

The email link verifies your address, starts your developer session and opens Dashboard. It provisions a private sandbox with a home, four rooms and five virtual devices joining in the background. Verification does not issue an application secret.

Choose Create an app. Add its name, description, logo, publisher name and website, support and privacy URLs, connector specification, runtime URL, guide and release notes. You can save a draft while building. Complete the listing and specification before requesting DEV credentials; the runtime does not need to be running yet. Provider test values and a passing runtime probe are required when you submit for review.

The runtime token shown when you create a connector authenticates ALYT’s requests to your connector server. Store it there. It is separate from the App secret that your server uses to call ALYT’s APIs.

Open Credentials on the app’s dashboard tile and create a DEV credential. Save the App ID and secret; the secret is shown once and stored only as a hash. The App ID stays the same when you rotate the secret. Your app’s tile shows its development version, production version and active credentials. ALYT approval unlocks LIVE credentials. Deploy the approved version, then confirm release in Versions and review; final checks run before its public tile appears. Approval alone grants no household access.

Exchange the App ID and secret for a five-minute access token from your server. The bearer-secret examples below also work. A newly created DEV secret fills the examples and reference in this browser tab; signing out clears it.

Every request carries the key as a bearer token and names the tenant it acts on. Your sandbox tenant id is on the account page.

Terminal window
export ALYT_KEY="alyt_dev_..."
export TENANT="your-sandbox-tenant-id"
curl -s https://developers.alyt.com/api/v1/properties?tenantId=$TENANT \
-H "Authorization: Bearer $ALYT_KEY"

Install the TypeScript SDK with npm install alyt-sdk@8.0.0, then call it from your server using the App ID and secret. A Python SDK is also available.

import { createAlyt } from "alyt-sdk";
const alyt = createAlyt({
appId: process.env.ALYT_APP_ID!,
appSecret: process.env.ALYT_APP_SECRET!,
});
const { data, error } = await alyt.propertiesList({ query: { tenantId: process.env.TENANT! } });

The answer is your home. Every list is { items, nextCursor }; every response carries the IETF RateLimit fields so you see your allowance before you hit it.

Terminal window
PROPERTY=$(curl -s "https://developers.alyt.com/api/v1/properties?tenantId=$TENANT" -H "Authorization: Bearer $ALYT_KEY" | jq -r '.items[0].id')
curl -s "https://developers.alyt.com/api/v1/rooms?tenantId=$TENANT&propertyId=$PROPERTY" -H "Authorization: Bearer $ALYT_KEY" | jq '.items[] | {id, name}'
curl -s "https://developers.alyt.com/api/v1/devices?tenantId=$TENANT" -H "Authorization: Bearer $ALYT_KEY" | jq '.items[] | {id, name, capabilities, status}'

A device is a set of capabilities, and each capability a list of controls. The light’s power is a toggle; commands use the thing envelope the console uses.

Terminal window
LIGHT=$(curl -s "https://developers.alyt.com/api/v1/devices?tenantId=$TENANT" -H "Authorization: Bearer $ALYT_KEY" | jq -r '.items[] | select(.capabilities | index("LIGHT")) | .id')
curl -s -X POST "https://developers.alyt.com/api/v1/devices/$LIGHT/commands?tenantId=$TENANT" \
-H "Authorization: Bearer $ALYT_KEY" -H "content-type: application/json" \
-d '{"command":"set","payload":{"capability":"light","key":"power","value":true}}'

The command is queued, published on the device’s commands topic, and acknowledged by the virtual light within a few seconds. Read the device again and its reported state says power: true:

Terminal window
curl -s "https://developers.alyt.com/api/v1/devices/$LIGHT?tenantId=$TENANT" -H "Authorization: Bearer $ALYT_KEY" | jq '.reported.payload.light'

From the simulator, run the flapping scenario on the sensor: the broker’s last will marks it offline within seconds and the platform derives the alert. offline holds the socket open and says nothing, which is the wedge case the heartbeat window exists for.

Last updated