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 https://app.steerd.io/api/public/v1/contacts \
-H "Authorization: Bearer strd_YOUR_KEY"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);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.