Docs menu

MCP tool · TikTok and Snapchat

get_platform_performance

One row per campaign, ad set (TikTok ad group, Snapchat ad squad) or ad, with its status, daily budget and metrics, sorted by spend by default. TikTok's Smart+ ads included.

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

What it does

TikTok or Snapchat: one row per campaign, ad set (TikTok ad group / Snapchat ad squad) or ad of an ad account over a date range, with its status, its daily budget and its metrics (spend, impressions, clicks, CTR, CPC, CPM, purchases, revenue, ROAS, CPA…), sorted (default by spend). Filters: campaign_id, adset_id, status, min_spend. TikTok ads: the standard ads and the Smart+ ads (smart_plus: true), not the variations TikTok generates. 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_campaigns / get_adsets / get_ads.

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}$

  • level string required

    campaign, adset (a TikTok ad group / a Snapchat ad squad) or 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 (level campaign), or its ad groups / ad squads / ads

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

  • adset_id string optional

    Only this ad group / ad squad (level adset), or its ads (level ad)

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

  • status string optional

    Only the active or only the paused ones

    One of active, paused

  • sort string optional

    Default spend. cpa, cpc and cpm: the lowest first; the others: the highest first

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

  • min_spend number optional

    Only the rows that spent at least this much (account currency)

    ≥ 0

  • limit integer optional

    Default 50

    1 to 200

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_performance",
    "arguments": {
      "platform": "tiktok",
      "ad_account_id": "7000000000000000001",
      "level": "campaign"
    }
  }
}

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_performance","arguments":{"platform":"tiktok","ad_account_id":"7000000000000000001","level":"campaign"}}}'

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.

In the REST API

The same thing for your own code, with an API key:

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