Get a board
Read one board: tracked apps with stored evidence, saved ads, the weekly and monthly pulse, activity and similar advertisers.
Download Markdown ↓GEThttps://api.peekpanda.com/v1/boards/{boardId}
Request
Render saved ad creatives with `GET /v1/paid-ads?savedToBoardId=`. `trackedAppId` is the app in the tenancy ASO workstation; `stopsTrackingOnRemove` is true when no other board in the tenancy holds the app.
Parameters
boardIdpathuuidYesBoard id.Response
`adsFreshness` is `never` until a collection has finished for the app and `stale` once `adsLastCollectedAt` is older than two days, so zero ads never means an app runs no ads. The pulse counts ads whose run started in each UTC week (Monday first, last 8) and month (last 6); the last bucket is the current one. `similarAdvertisers` lists up to 6 apps not on the board that are similar to its apps and have collected paid ads, most live ads first, each with the board app it is most similar to (`similarTo`) and when its paid counts were built. Counts are collected ads, never spend. The list is empty until similar apps have been computed for the board apps.
Response fields
idstringnamestringcolorstringscopestringworkspaceIdnullownerUserIdstringappCountnumberadCountnumbercreatedAtstringupdatedAtstringapps[].idstringapps[].kindstringapps[].storeIdstringapps[].namestringapps[].iconUrlnullapps[].notenullapps[].addedByUserIdstringapps[].createdAtstringapps[].trackedAppIdstringapps[].stopsTrackingOnRemovebooleanapps[].evidence.liveAdsnumberapps[].evidence.newAdsThisWeeknumberapps[].evidence.savedAdsOnBoardnumberapps[].evidence.inCataloguebooleanapps[].evidence.adsLastCollectedAtstringapps[].evidence.adsFreshnessstringads[].idstringads[].kindstringads[].platformstringads[].archiveIdstringads[].storeIdstringads[].advertiserNamestringads[].notestringads[].addedByUserIdstringads[].createdAtstringpulse.appsnumberpulse.savedAdsnumberpulse.liveAdsnumberpulse.newAdsThisWeeknumberpulse.newAdsByWeek[].weekStartstringpulse.newAdsByWeek[].newAdsnumberpulse.newAdsByMonth[].monthstringpulse.newAdsByMonth[].newAdsnumberactivity[].kindstringactivity[].datestringactivity[].storeIdstringactivity[].appNamestringactivity[].countnumbertrackedAppAllowance.usednumbertrackedAppAllowance.limitnumbertrackedAppAllowance.planstringsimilarAdvertisers[].storeIdstringsimilarAdvertisers[].namestringsimilarAdvertisers[].iconUrlnullsimilarAdvertisers[].matchReasonstringsimilarAdvertisers[].sharedSearchesnumbersimilarAdvertisers[].similarTo.storeIdstringsimilarAdvertisers[].similarTo.namestringsimilarAdvertisers[].liveAdsnumbersimilarAdvertisers[].totalAdsnumbersimilarAdvertisers[].paidEvidenceBuiltAtstringAuthentication
Requires Bearer API credential or OAuth access token. Scope context:read. MCP calls boards with action get.
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.MCP request
Call boards with action get. Path fields go in params, filters in query, and a write body in body.
{
"name": "boards",
"arguments": {
"request": {
"action": "get",
"params": {
"boardId": "<boardId>"
}
}
}
}
Source
Boards are the caller's own organization, stored in PeekPanda. Apps carry the listing name and icon as added; evidence counts are stored paid-ad observations.
Refresh
Board reads never call a provider or start collection. An app on any board in a space is tracked there, and tracking collects its paid ads, organic posts, keywords and chart position.
AI agent or LLM? Read this page as markdown