PeekPanda markpeekpandaDocumentationFor AI ↗Open app

PeekPanda docs

Import selected paid ads

Create an idempotent import linked to one exact iOS app.

Download Markdown ↓
POST/v1/admin/paid-ads/imports
Auth Bearer API credential or OAuth access tokenScope content:writeMCP admin_import_paid_ads

Request

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.