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:
YAYIN - Path:
/api/v1/magic-ai - Auth:
X-API-Anahtarıya daAuthorization: Bearer <key> - Content type: form payload (
application/x-www-form-urlencodedya damultipart/form-data)
Kullanım
/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), orgörüntü(uploaded file), orimage_url(public image URL)
Recommended pagination fields for deterministic paging:
sayfa(start with0)scroll(empty string on first request; then send thescrollreturned by the previous response)
Optional filters
You can pass the same filters used in the Magic AI UI:
countries- comma-separated country codes orTümüfrom,to- start-date rangefromlastseen,tolastseen- last-seen date rangeminadspend,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.
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: