List campaigns (adsap_list_campaigns)
Platform: Meta · Read or write: Read · Plan: All plans · Consumes a task: No · Preview supported: No
What it does
Lists the campaigns in a Meta ad account with status, objective, budget and any special ad category. You can filter by status or objective and page through long lists. In assistants that support interactive cards, the list renders as a card where you tick the campaigns you want to work with next.
When to use it
- Use it to find a campaign and its ID before you list its ad sets with
adsap_list_ad_sets. - It reads Adsap’s campaign cache, not Meta directly.
last_synced_atshows when each campaign was last synced. - Narrow the list with
status_filter, or withobjective_filter, a list of Meta objectives such asOUTCOME_SALES. - Without
ad_account_id, it lists campaigns from every ad account in your workspace. - It returns no spend or results. For those, use
adsap_get_insights.
Worked example
You ask
“List the active campaigns in act_1234567890 with their budgets.”
The assistant calls adsap_list_campaigns
{
"ad_account_id": "act_1234567890",
"status_filter": "ACTIVE"
}Adsap returns
The field names are the ones Adsap returns. The values are examples.
{
"ok": true,
"data": [
{
"id": "120210000000002",
"ad_account_id": "act_1234567890",
"name": "Spring sale",
"display_name": "Spring sale (120210000000002)",
"objective": "OUTCOME_SALES",
"status": "ACTIVE",
"effective_status": null,
"daily_budget": 5000,
"lifetime_budget": null,
"budget_type": "CBO",
"start_time": null,
"stop_time": null,
"special_ad_categories": null,
"special_ad_category_country": null,
"last_synced_at": "2026-03-02T08:15:00+00:00"
}
],
"meta": {
"last_refreshed_at": "2026-03-02T08:15:00+00:00",
"next_cursor": null,
"total_count": 1,
"ad_account_id": "act_1234567890"
}
}How to read it
daily_budget and lifetime_budget are in cents, so 5000 is 50.00 in the account currency. budget_type is CBO when the campaign holds the budget. It is Ad Set Budget when each ad set holds its own, and both budget fields are then null.
The cache does not store effective_status, start_time or stop_time, so they come back as null. When next_cursor is not null, the assistant passes it as cursor to get the next page. To pause a campaign or switch it on, the assistant can use adsap_set_entity_status.
Parameters
Descriptions are shortened from the tool schema. Your assistant sees the full text.
| Name | Type | Required | Description |
|---|---|---|---|
ad_account_id | string | No | |
status_filter | one of ACTIVE, PAUSED, DELETED, ARCHIVED, ALL | No | |
objective_filter | array of string | No | |
limit | number | No | |
cursor | string | No |
Example prompts
- “List the active campaigns in my ad account.”
- “Show me every paused sales campaign.”
- “Which campaigns are running right now, and what is each one’s budget?”
Related tools
adsap_create_campaign: Create Meta campaign.adsap_get_campaign: Read ONE campaign in full, live from Meta: effective_status, objective, buying_type, bid strategy, budgets (campaign budget present =…adsap_list_apps: List the apps an ad account can promote: use to pick application_id + object_store_url for App promotion (OUTCOME_APP_PROMOTION)…
Guide
Read Creating a campaign for the workflow around this tool, and the Tool reference for every tool.
The Meta Ads MCP server page shows how to connect Meta Ads to Claude, ChatGPT or Perplexity.