Magic AI API (/api/v1/magic-ai)
This page documents the programmatic Magic AI endpoint. Use it with an API key to run the same competitor-discovery flow used by the dashboard.
Endpoint
- Method:
POST - Path:
/api/v1/magic-ai - Auth:
X-API-KeyofAuthorization: Bearer <key> - Content type: form payload (
application/x-www-form-urlencodedofmultipart/form-data)
Gebruik
/api/v1/magic-aifor API-key integrations.
/api/magic-aiis the dashboard session route used by the web app.
Minimum request body
Send at least one search input:
text(free-text prompt), orafbeelding(uploaded file), orafbeelding_url(public image URL)
Recommended pagination fields:
pagina(start with0, increment on each continuation)scroll(empty on first request; then send thescrollreturned by the previous response)limit(optional page size; default 20, max 50 on first request; stored inscrollfor continuations)
API pagination: scroll is an opaque server token (1 hour TTL). Repeat the same search inputs and filters on each continuation request. No browser cookies are required.
Optional filters
You can pass the same filters used in the Magic AI UI:
landen- comma-separated country codes orAllefrom,to- start-date rangefromlastseen,tolastseen- last-seen date rangeactivefilter=active- restricts results to ads last seen within the past 4 daysminadspend,maxadspend- ad spend rangemindays,maxdays- days-running rangeadscorefilter- ad score preset
If a filter is omitted, default behavior follows the product defaults.
Example: text search
curl -sS \
-H "X-API-Key: $WH_API_KEY" \
-H "Content-Type: application/x-www-form-urlencoded; charset=UTF-8" \
-X POST "{origin}/api/v1/magic-ai" \
--data-urlencode "text=Find winning beauty products for US women 25-34" \
--data-urlencode "countries=US" \
--data-urlencode "page=0" \
--data-urlencode "scroll="
Example: continue pagination
curl -sS \
-H "X-API-Key: $WH_API_KEY" \
-H "Content-Type: application/x-www-form-urlencoded; charset=UTF-8" \
-X POST "{origin}/api/v1/magic-ai" \
--data-urlencode "text=Find winning beauty products for US women 25-34" \
--data-urlencode "countries=US" \
--data-urlencode "page=1" \
--data-urlencode "scroll=<scroll_token_from_previous_response>"
Response shape
Typical success response:
{
"data": [
{
"id": "...",
"ad_creative_body": "...",
"ad_snapshot_url": "...",
"image_url": "...",
"country": "US"
}
],
"scroll": "..."
}
datais an array of matched ads.scrollis the cursor for the next page. If no more data exists, it can be empty ornull.
Each page returns up to 20 ads.
Errors and limits
This endpoint follows the same API-key auth and metering rules as the rest of the Standard API surface:
401invalid/missing API key403account does not include API access429rate limit or monthly credits exhausted
See: