Every list endpoint follows the same conventions.
Top-level page and page_size query params:
On most list endpoints — prompts, citations, ads, advertisers — page_size
defaults to 25 and caps at 100; list_brands defaults to 50. A
value above the cap is clamped, not rejected, so asking for 1,000 quietly
gives you the maximum. The meta block tells you where you actually are:
page + page_size is the only pagination contract — limit, offset,
skip, and per_page are not accepted.
Sorting
sort takes a comma-separated list of keys; prefix a key with - for
descending. Unknown keys are ignored and the endpoint falls back to its
documented default — a typo silently gives you the default order rather than
an error, so check the key names.
Each endpoint whitelists its own keys; the reference page lists them. The
common ones:
Filtering
Filters live under filter[…] bracket notation:
- List filters end in
_ids and are plural — repeat the key or pass a CSV:
- Enum lists are plural too:
?filter[page_types][]=article
- Single-value filters are scalar:
?filter[citation_domain]=example.com
- Free-text search is always
?filter[query]=… (never ?search=)
- Date ranges are
?filter[ran_at_start]=…&filter[ran_at_end]=…, ISO 8601
date or datetime
Filters AND together: filter[topic_ids] + filter[provider_ids] narrows to
prompts that match both.
Filters worth knowing
Time windows
Metric endpoints return an aggregate_metrics block for the whole window plus
time_based_metrics, one entry per bucket. diff on each row compares
against the previous equal-length period — request 7 days and you’re
comparing to the 7 days before that.
See Metrics & units for what the numbers mean.