PeekPanda docs
Get competitor media
Read stored organic matches and paid-ad observations for one listing.
Download Markdown ↓GET/v1/competitors/{platform}/{storeId}/mediaAuth
Bearer API credential or OAuth access tokenScope context:readMCP get_competitor_mediaRequest
Identify the listing. This GET does not invent paid-ad rows when none are stored.
curl --get 'https://api.peekpanda.com/v1/competitors/ios/0000000000/media' \
--header "Authorization: Bearer $PEEKPANDA_TOKEN" \
--header 'x-genviral-tenancy: personal'Response
organic uses the organic-match page. paidAds stays empty when no ads are stored.
{
"organic": {
"data": [
{
"sourceId": "organic-post-example",
"productName": "Example Calorie Tracker",
"caption": "A stored organic clip",
"link": "https://www.tiktok.com/@example/video/1",
"match": {
"status": "suggested",
"evidence": "normalized_product_name",
"score": 0.91
}
}
],
"candidateLimitReached": false
},
"paidAds": {
"items": [],
"nextCursor": null,
"hasMore": false,
"total": 0,
"reportedReachCount": 0
}
}
Parameters
NameInTypeRequiredDescription
platformpathiosYesThe preview supports iOS only.storeIdpathnumeric stringYesApple App Store identifier.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.Source
Copied public organic corpus; name-match suggestions, not verified ownership.
Refresh
No provider call on GET.