Using with AI
Drop one of these into any AI tool or agent alongside your API key:Authentication
All endpoints require an API key passed in thex-api-key header.
Rate limits
Each request costs 1 credit, except Get usage and changes that change nothing (saving something already saved, adding it to a board it’s already on, creating a board you already have, following a brand you already follow, or adding one to a group it’s already in), which are free. Every endpoint’s page shows what it costs. Requests turned away by the rate limit, or for a missing or invalid key, don’t use a credit; one that fails after your key is accepted, such as a
404, does (except changes, which only use a credit when they change something). Exceeding either limit returns a 429 response:
- Rate limit: the
Retry-Afterheader says how many seconds to wait. Every response also carriesRateLimit-Limit,RateLimit-RemainingandRateLimit-Resetheaders. - Quota: your quota resets at the start of each billing period. The
resets_atfield in the429response tells you exactly when.
403.
Changes have their own limits on top of these, per person and shared across all their keys and MCP connections:
- Saving creatives and adding them to boards: 30 a minute, counting both.
- Creating boards: 10 a minute.
- Following brands and adding them to groups: 30 a minute, counting both.
429 with a Retry-After header. Changes only cost a credit when they change something: anything already there (a saved creative, a creative on a board, a board with that name, a followed brand, a brand in a group) is free.
Searching inside ads
Get creatives and Get brand creatives take aq parameter that searches inside the creatives: their ad copy, video transcripts, on-screen text and landing page URLs. It matches the exact phrase and works alongside every other filter.
search_in to look in just one of copy, transcript, on_screen_text or landing_page. Results keep the order_by order rather than being ranked by relevance.
To find the brands selling a product or in a niche, search their ads this way: each creative includes its brand_id and brand_name. Search brands only matches brand names and domains.
To find a style of ad rather than words in it, such as talking-head videos, unboxings or memes, use visual_format instead. It takes one of the formats in the app’s Visual format filter, and works on every creative feed.
Dates
start_date and end_date both filter on when a creative was first seen, so together they are the window the creatives started running in. A bare date covers the whole day, and times without an offset are UTC. To find creatives that have stopped running, use is_active=false.
Workspaces
Your followed brands, groups and boards each belong to a workspace, such as one per client. Get workspaces lists yours. Anything not in one of those is in your default workspace, which shows up asworkspace_id: null.
Get followed brands, Get groups and Get user boards cover all your workspaces unless you pass workspace_id; pass workspace_id=default for the default workspace. To see what the brands are running, Get followed brands’ creatives and Get group creatives return them as one feed, with the same filters as Get creatives.
Workspaces used to be called spaces.
/v1/spaces and the space_id
parameter on boards still work, but use the workspace names for anything new.Pagination
Paginated endpoints use cursor-based pagination. Creative endpoints return 12 creatives per page. When more results are available, the response includes anext_cursor value. Pass it as the cursor query parameter to fetch the next page.