PeekPanda docs
Browse paid-ad shelves
Read paid ads as per-advertiser shelves, plus shelves for newly launched and long-running creatives.
Download Markdown ↓GET/v1/paid-ads/railsAuth
Bearer API credential or OAuth access tokenScope context:readMCP get_ads action railsRequest
Every filter is optional. This read serves stored ads and does not collect new ones.
curl --get 'https://api.peekpanda.com/v1/paid-ads/rails' \
--header "Authorization: Bearer $PEEKPANDA_TOKEN" \
--header 'x-genviral-tenancy: personal'Response
rails is empty when nothing is stored. totals uses the same counts as the ranking read.
{
"generatedAt": "2026-09-06T00:00:00.000Z",
"rails": [],
"totals": {
"ads": 0,
"liveAds": 0,
"advertisers": 0,
"liveAdvertisers": 0,
"newAdsLast7Days": 0,
"advertisersShippingLast7Days": 0,
"medianRunDays": null,
"longestRunDays": null,
"liveBeyond60Days": 0,
"reachDisclosedAds": 0,
"unlinkedAds": 0
}
}
MCP request
Call get_ads with action rails. Path fields go in params, filters in query, and a write body in body.
{
"name": "get_ads",
"arguments": {
"request": {
"action": "rails"
}
}
}
Parameters
NameInTypeRequiredDescription
categoryquerycategoryNoLimit shelves to one category.platformquerymeta | tiktokNoAdvertising platform.searchquerystring, max 120NoAdvertiser or creative text.sortquerymost_tested | longest_running | most_live | recently_trackedNoOrder of the advertiser shelves. Defaults to most_tested.railSizequeryinteger, 4-20NoCreatives on each shelf. Defaults to 10.advertiserLimitqueryinteger, 1-20NoAdvertiser shelves to return. Defaults to 8.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
Stored paid-ad observations. Rankings count creatives and how long they stay live. There is no spend or impression field.
Refresh
These reads do not collect new ads.