MCP tool · Campaigns, ad sets and ads
list_campaigns
The campaigns of an ad account: objective, CBO budget, status. Archived ones on request.
What it does
List the campaigns of an ad account (id, name, objective, CBO budget, status).
Parameters
-
ad_account_idstring requiredAd account id (list_ad_accounts)
-
platformstring optionalAd platform, default meta
-
searchstring optional -
include_archivedboolean optional
Example
Your assistant calls it for you when you ask in your own words. What it sends (MCP tools/call, JSON-RPC 2.0):
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_campaigns",
"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 -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_campaigns","arguments":{"ad_account_id":"act_1234567890"}}}' Access and cost
| Plans | Pro and Scale. |
|---|---|
| Scope | read: a connection or an API key without it does not see this tool (scopes). |
| Effect | Reads only: nothing is changed, in Apogee or on the ad account. |
| Credits | Free 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 limit | 600 MCP requests per 15 minutes on Pro, 1,200 on Scale (rate limits). |
| Daily cap | Counts 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:
- List campaigns:
GET /ad-accounts/{acc}/campaigns
Related tools
Campaigns, ad sets and ads: Names and ids, no metrics: to find where to launch and what to copy.
list_adsets: The ad sets (TikTok ad groups, Snapchat ad squads) of an ad account, or of one campaign.list_ads: The ads of an ad account, a campaign or an ad set (200 at most).get_latest_in_campaign: The newest ad set and ad of a campaign, by creation time: "copy the latest ad set and ad of campaign X". Their ids go in prepare_launchcopy_adset_fromandcopy_ad_from.get_templates: What a copy would take: from an ad set its targeting, event, bid and budget; from an ad its page, Instagram, texts, URL and call to action.list_launches: Your launches (the app's History), newest first: status, files, dates.