Docs menu

MCP tool · TikTok and Snapchat

list_tiktok_posts

TikTok Spark Ads: the existing posts a launch can run as ads, keeping their likes and comments. source: "account" (default): the video posts of one of the brand's TikTok accounts (the first one, or identity_id from the launch interview), a page at a time; source: "authorized": the posts creators authorized for this ad account. Each post says whether it can run and gives its spark_post for prepare_launch.

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

What it does

TikTok Spark Ads: existing TikTok posts a launch can run as ads, keeping their likes and comments (the post's caption is the ad text). source "account" (default): the video posts of one of the brand's TikTok accounts (identity_id / identity_type from get_launch_questions identity.choices; default: the first one), a page at a time (next_cursor). source "authorized": the posts creators authorized for this ad account with a code (bound in the Apogee app). Each post says whether it can run (usable, refusals, warnings) and gives its spark_post, to put in prepare_launch ads[].spark_post instead of files.

Parameters

  • ad_account_id string required

    A TikTok advertiser id (list_ad_accounts platform tiktok)

    Matches ^[\w-]{1,64}$

  • source string optional

    One of account, authorized

  • identity_id string optional

    source account: the TikTok account (get_launch_questions identity.choices.identities)

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

  • identity_type string optional

    One of TT_USER, BC_AUTH_TT

  • bc_id string optional

    BC_AUTH_TT: its Business Center

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

  • cursor string optional

    source account: next_cursor of the previous page

    up to 200 characters

  • page integer optional

    source authorized: the page

    1 to 100

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": "list_tiktok_posts",
    "arguments": {
      "ad_account_id": "act_1234567890"
    }
  }
}

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":"list_tiktok_posts","arguments":{"ad_account_id":"act_1234567890"}}}'

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