Request competitor data
Record deduplicated demand for one missing competitor-intelligence kind.
Download Markdown ↓POSThttps://api.peekpanda.com/v1/competitors/{platform}/{storeId}/data-requests
Request
Send one kind. paid_ads gives the app top priority in the daily paid-ad collection run while the request stands; nothing is collected on the spot, so read new ads later with GET /v1/paid-ads and storeIds. organic asks PeekPanda to search for an iOS app's organic posts, unless PeekPanda already set up a search for the app (even a paused one): read the progress in the search field of GET /v1/competitors/{platform}/{storeId}/organic, and the posts there once reviewed. You can file 20 new organic requests per UTC day; past that the request answers 429 organic_request_daily_limit with limit and retryAfterSeconds (the wait until 00:00 UTC) and nothing is recorded. Repeating a request you already filed is always accepted and never counts. Other kinds record demand only; use the ASO refresh command to start ASO collection.
Parameters
platformpathiosYesThe preview supports iOS only.storeIdpathnumeric stringYesApple App Store identifier.kindbodyrevenue | downloads | paid_ads | organic | aso | historyYesThe missing-metric kind to record.Response
The persisted request object, including its id and requestedAt.
Response fields
idstringkindstringstatusstringrequestedAtstringAuthentication
Requires Bearer API credential or OAuth access token. Scope content:write. MCP calls request_data with action request.
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.403workspace_not_accessible when x-genviral-tenancy names a workspace the credential cannot reach.404not_found when the record is outside the accessible catalogue.429rate_limited; honor Retry-After when present.429daily_call_limit; the plan's daily API and MCP calls are used until 00:00 UTC.409conflict when the write would duplicate an exclusive row.MCP request
Call request_data with action request. Path fields go in params, filters in query, and a write body in body.
{
"name": "request_data",
"arguments": {
"request": {
"action": "request",
"params": {
"platform": "<platform>",
"storeId": "<storeId>"
}
}
}
}
Source
Account-scoped requests for missing competitor intelligence.
Refresh
Records demand. A paid_ads request gives the app top priority in the daily paid-ad collection run; an organic request asks PeekPanda to search for an iOS app's organic posts; ASO requests may begin an asynchronous collection.
AI agent or LLM? Read this page as markdown