Docs menu

MCP tool · TikTok and Snapchat

get_platform_top_performers

The best and the worst ads, ad sets or campaigns by a metric, among those that spent: what to scale, what to cut. For Meta: get_top_performers.

Read only Scope: read Pro and Scale plans Credits: Free*

What it does

TikTok or Snapchat: the best and the worst ads (or campaigns / ad sets: level) by a metric over a date range, among those that spent: "what is working", "what should I scale or cut". Money in the ad account's currency, days in its time zone; one platform at a time (never add TikTok and Snapchat up). For Meta: get_top_performers.

Parameters

  • platform string required

    tiktok or snapchat (Meta has its own reads and actions)

    One of tiktok, snapchat

  • ad_account_id string required

    The ad account, from list_ad_accounts with the same platform: a TikTok advertiser id (digits), a Snapchat ad account id (a UUID)

    Matches ^[A-Za-z0-9][A-Za-z0-9-]{0,63}$

  • metric string required

    What ranks them: roas, cpa, ctr, spend, purchases, revenue, cpc, cpm, clicks or impressions (cpa, cpc, cpm: the lowest is the best)

    One of spend, revenue, roas, purchases, ctr, clicks, impressions, cpa, cpc, cpm

  • level string optional

    Default ad

    One of campaign, adset, ad

  • date_preset string optional

    Default last_7d (the 7 days before today, today left out), in the ad account's time zone

    One of today, yesterday, last_7d, last_14d, last_30d, last_90d, this_month, last_month

  • since string optional

    YYYY-MM-DD, with until (both included), instead of date_preset

    Matches ^\d{4}-\d{2}-\d{2}$

  • until string optional

    YYYY-MM-DD, with since

    Matches ^\d{4}-\d{2}-\d{2}$

  • campaign_id string optional

    Only this campaign's

    Matches ^[A-Za-z0-9][A-Za-z0-9-]{0,63}$

  • adset_id string optional

    Only this ad group / ad squad's ads

    Matches ^[A-Za-z0-9][A-Za-z0-9-]{0,63}$

  • min_spend number optional

    Only those that spent at least this much (account currency); those that spent nothing are always left out

    ≥ 0

  • limit integer optional

    How many best and worst, default 10

    1 to 50

Example

Your assistant calls it for you when you ask in your own words. What it sends (MCP tools/call, JSON-RPC 2.0):

tools/call
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_platform_top_performers",
    "arguments": {
      "platform": "tiktok",
      "ad_account_id": "7000000000000000001",
      "metric": "spend"
    }
  }
}

The same call over HTTP with an API key, for an MCP client of your own (an assistant that signs in sends its OAuth token instead):

curl
curl -X POST https://app.apogee.ad/mcp \
  -H "Authorization: Bearer $APOGEE_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_platform_top_performers","arguments":{"platform":"tiktok","ad_account_id":"7000000000000000001","metric":"spend"}}}'

Access and cost

PlansPro and Scale.
Scoperead: a connection or an API key without it does not see this tool (scopes).
EffectReads only: nothing is changed, in Apogee or on the ad account.
CreditsFree up to the daily free reads (5,000 a day on Pro, 10,000 on Scale), then 1 credit per read. A call that fails costs nothing (credits).
Rate limit600 MCP requests per 15 minutes on Pro, 1,200 on Scale (rate limits).
Daily capCounts 1 unit toward the 2,000 units one API key or assistant connection can use in 24 hours.

TikTok and Snapchat: list_ad_accounts, list_campaigns, list_adsets, list_ads, get_launch_questions and prepare_launch take platform: "tiktok" or "snapchat" (default "meta"); launch and launch_status follow the plan whatever its platform: the same interview, the same recap, the same explicit yes. The tools below read their numbers and change their status and budgets, one platform at a time: money in the ad account's currency, days in its time zone, TikTok and Snapchat never added up.

Last updated on . The parameters, limits, credits and error codes of these pages are generated from the code of the Apogee API (contract 2026-10-06).

A question, something missing? Write to hello@apogee.ad.

Book a demo

Pick the time that suits you.

Open in a new tab

Loading the calendar…

Talk to Founder