PeekPanda docs
Import selected paid ads
Create an idempotent import linked to one exact iOS app.
Download Markdown ↓POST/v1/admin/paid-ads/importsAuth
Bearer API credential or OAuth access tokenScope content:writeMCP admin_import_paid_adsRequest
Select 1–50 unique archive IDs. The canonical run is created before already-imported ads are linked. Do not retry an uncertain command with a changed idempotency key; read the run first.
curl --request POST 'https://api.peekpanda.com/v1/admin/paid-ads/imports' \
--header "Authorization: Bearer $PEEKPANDA_TOKEN" \
--header 'x-genviral-tenancy: personal' \
--header 'content-type: application/json' \
--data '{"source":{"kind":"company","pageId":"123","label":"Example Labs"},"selectedArchiveIds":["meta-ad-123"],"appStoreId":"6447582581","idempotencyKey":"44444444-4444-4444-8444-444444444444"}'Response
Excerpt of the canonical ingestion run; the real response is PaidAdIngestionRunResponse.
{
"id": "33333333-3333-4333-8333-333333333333",
"state": "queued"
}
Parameters
NameInTypeRequiredDescription
sourcebodyobjectYesSelected source.selectedArchiveIdsbodystring[]YesSelected provider archive ids.appStoreIdbodystringYesRequired iOS App Store ID.idempotencyKeybodyuuidYesStable command key.Known errors
400invalid_request for an invalid filter, identity or limit.401authentication_required for a missing or invalid credential.402subscription_required when access is not entitled.403authorization_required for a missing scope or unavailable preview access.404not_found when the record is outside the accessible catalogue.429rate_limited; honor Retry-After when present.409conflict when the write would duplicate an exclusive row.Source
Provider observations retain advertiser, lifecycle, creative and original public-ad-library URL as provenance.
Refresh
Candidate discovery is bounded and cached for review. Import status is durable run state; polling it never starts provider work.