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:3101/api/public/v1. The playground in the API Reference lets you pick the target server.

On this page