Authorization header, and every error has the same shape.
Base URL
https://api.avina.io/v1Authentication
Authorization: Bearer <api key>Make your first request
GET /me checks a key and returns its workspace. It is free.
Authentication
The Data API is in beta. Request access if your workspace does not have it yet. Every request needs a workspace API key in theAuthorization header. Workspace admins create and revoke keys in the Avina dashboard under Settings → API Keys. A key is shown once, when it is created.
- A key acts for its whole workspace. It can start searches that spend the workspace’s credits.
- The key decides the workspace. No header or parameter can select a different one.
- After a key is revoked, it can keep working for up to 60 seconds.
Endpoints
Conventions
Asynchronous searches
Searches run in the background. APOST that starts one returns 202 Accepted with the search’s id before any results exist.
1
Start
POST /companies/search or POST /people/search returns 202 and an id.2
Poll
GET .../status until status is completed, failed or cancelled.3
Read
GET .../results, following next_cursor, until has_more is false.Pagination
Search results are returned in pages. Each page gives you a cursor, a marker for your position, which you send back to get the next page.
A page has
data, has_more and next_cursor. For search results, next_cursor is always returned, even on an empty page, so you can come back for results found later.
Idempotency
POST requests that create something (starting a search, creating a persona, and Parse) accept an Idempotency-Key header: any unique string of 1 to 255 characters. Retrying with the same key and the same body within 24 hours returns the original response, marked with Idempotent-Replayed: true, instead of doing the work again.
Always send one when you start a search. Without it, a retried request starts, and charges for, a second search. See Errors and retries.
Rate limits
Each API key can make 120 requests per minute. Responses carry these headers:
Over the limit, requests get
429 rate_limited with a Retry-After header. There is no limit on how many searches a workspace can run at the same time.
Request IDs
Every response has anX-Request-Id header, such as req_8f2a61c09d4e7b3a5f10c2d8. Error bodies repeat it as request_id. Include it when you contact support.
Errors
Errors use one shape, with a stablecode to branch on:

