Quickstart
Create an API key, authenticate, and understand scopes.
Authentication
Every request needs an API key sent as a Bearer token.
Open Settings → API
Sign in to ReplySparrow and go to Settings → API.
Create a key
Click Create API key, give it a name and pick the scopes it needs. Copy the key when it is shown: you can't see it again.
Send it on every request
curl -H "Authorization: Bearer YOUR_API_KEY" https://app.replysparrow.com/api/v1The call returns the workspace and the scopes of the key.
Workspaces
A key belongs to one workspace and only reaches that workspace's data. To work on another workspace, create a key there.
Scopes
Each key only does what its scopes allow. A call without the right scope returns 403 insufficient_scope with the scope it needed.
| Scope | Allows |
|---|---|
contacts:read | Read contacts and the suppression list |
contacts:write | Create and update contacts, verify emails |
email:send | Send an email to a contact |
campaigns:read | Read lists, agents, workflows, runs and sent messages |
events:read | Read events, signals and signal rules |
events:write | Push events |
signals:write | Push signals |
crm:read / crm:write | Read and write opportunities and pipeline stages |
inbox:read | Read LinkedIn conversations in the Unibox |
inbox:send | Send LinkedIn messages from the Unibox |
account:read | Read the organization, its members, your user and your email seats |
Sending email and LinkedIn messages are separate scopes on purpose: a key that edits CRM fields can't send anything. Keys created before a scope existed don't have it; create a new key to use the new routes.
Errors
| Status | Error | Meaning |
|---|---|---|
401 | invalid_api_key | The key is missing, wrong, expired or deleted |
403 | insufficient_scope | The key lacks the scope in required |
400 | e.g. invalid_request | The body or parameters are not valid; detail says why |
404 | not_found | No record with this id in your workspace |
Paging
Paged routes take page (starting at 1) and limit, and return the items next to the paging fields, for example List contacts:
{ "contacts": [], "total": 0, "page": 1, "limit": 20, "totalPages": 1 }Get all campaigns, Get all lists and Get all source agents return a plain array of every item. Each endpoint page shows its exact shape and its default and maximum limit.
Team impersonation
Coming soon
x-impersonate-user-id header. Until then, use a key created in that member's workspace.