Steerd API

Quickstart

Make your first authenticated request to the Steerd Public API.

This walks through one authenticated request end to end: create a key, list your contacts, and read the pagination envelope.

1. Create an API key

In the Steerd app, go to Settings → API keys and create a key. Choose the scopes the integration needs (see scopes): for this walkthrough, contacts:read is enough.

The full key is shown once, at creation. Copy it then; it is never displayed again. Keys look like strd_ followed by a random secret.

2. Make a request

Send the key as a bearer token. Replace strd_YOUR_KEY with the key you copied.

curl
curl https://app.steerd.io/api/public/v1/contacts \
  -H "Authorization: Bearer strd_YOUR_KEY"
JavaScript (fetch)
const res = await fetch("https://app.steerd.io/api/public/v1/contacts", {
  headers: { Authorization: "Bearer strd_YOUR_KEY" },
});
const body = await res.json();
console.log(body.data);
Python (requests)
import requests

res = requests.get(
    "https://app.steerd.io/api/public/v1/contacts",
    headers={"Authorization": "Bearer strd_YOUR_KEY"},
)
res.raise_for_status()
print(res.json()["data"])

3. Read the response

List endpoints return a uniform envelope: the rows under data, and pagination state under page.

{
  "data": [
    { "id": "…", "firstName": "Jane", "lastName": "Doe", "email": "jane@example.com" }
  ],
  "page": { "nextCursor": "…", "hasMore": true }
}

To fetch the next page, pass page.nextCursor back as the cursor query parameter, and keep going until page.hasMore is false. See pagination for the full contract.

Next steps

  • Browse every endpoint in the API Reference, and try requests directly from the playground.
  • Learn how scopes gate reads and writes.
  • Make writes safe to retry with idempotency keys.

Running Steerd locally? Swap the base URL for http://localhost:3100/api/public/v1: the web app proxies /api/public/* to the API, so port 3100 is the local stand-in for app.steerd.io, exactly as in production. (The API itself listens on 3101 and answers the same paths, if you want to bypass the proxy.) The playground in the API Reference lets you pick the target server.

On this page