Pagination and limits
Paging through answers, list sizes, rate limits and request IDs.
YOUR_API_KEY with a key from Settings → API and MCP. Keys are shown once when you create them.Paging through answers
List answers is the only endpoint with many pages. It uses limit (1 to 200, default 50) and offset:
{ "total": 444, "offset": 0, "next_offset": 50, "answers": [ … ] }Pass next_offset as offset to get the next page. It's null on the last page.
import requests
url = "https://getonym.com/api/v1/domains/acme.example/answers"
H = {"Authorization": "Bearer YOUR_API_KEY"}
offset, answers = 0, []
while offset is not None:
page = requests.get(url, headers=H, params={"limit": 200, "offset": offset}).json()
answers += page["answers"]
offset = page["next_offset"]
print(len(answers))const url = "https://getonym.com/api/v1/domains/acme.example/answers";
const H = { Authorization: "Bearer YOUR_API_KEY" };
let offset = 0;
const answers = [];
while (offset !== null) {
const page = await (await fetch(`${url}?limit=200&offset=${offset}`, { headers: H })).json();
answers.push(...page.answers);
offset = page.next_offset;
}
console.log(answers.length);Answers are sorted newest run first. New answers arriving mid-way can shift pages, so for a complete export, narrow range or page between runs.
List sizes
Other lists return everything in one response, with these caps:
| Endpoint | Returns |
|---|---|
/sources |
Up to 200 sites, each with its top 8 URLs |
/timeseries |
You and up to 8 competitors |
/competitors |
Every tracked competitor, plus the top 15 untracked brands |
/changes |
The latest limit runs (default 8, at most 50) |
Rate limits
Each key can make 600 requests a minute. MCP tool calls count toward the same limit. Every authenticated response tells you where you stand:
| Header | Meaning |
|---|---|
X-RateLimit-Limit |
Requests allowed per minute |
X-RateLimit-Remaining |
Requests left in the current minute |
X-RateLimit-Reset |
Seconds until the oldest request leaves the window |
Over the limit, the API returns 429 with code rate_limited and a Retry-After header in seconds. Wait that long, then retry.
Request IDs
Every response has an X-Request-Id, like req_3f9c2a1e6b7d4e8f. Log it with errors and include it when you contact us.