---
title: "List Meta campaigns"
method: POST
path: "/api/v1/tools/meta_list_campaigns/execute"
tags: ["Meta Ads"]
---

# List Meta campaigns

`POST /api/v1/tools/meta_list_campaigns/execute`

## Request

- Base URL: `https://adako.ai`
- URL: `https://adako.ai/api/v1/tools/meta_list_campaigns/execute`
- Auth: HTTP bearer

Lists the campaigns in a Meta ad account with objective, delivery status, budget (as a decimal in the account currency), bid strategy and any Advantage+ state the account exposes.
Use when: you need campaign ids before reading performance or changing anything, or the user asks what is running.
Do not use to compare results — that is meta_get_campaign_performance; this call returns configuration only, no spend or conversions.
Returns one row per campaign plus the campaign id you must pass to other tools. Budgets set at campaign level mean the campaign uses campaign budget optimisation and its ad sets have no budgets of their own.
If unsure which account: call list_connected_accounts first rather than guessing an id.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `arguments` object
    - `ad_account_id` string: Meta ad account id such as act_1234567890. Omit it to use the primary account; if several accounts are active and none is primary the call fails and lists the valid ids.
    - `status` string: Comma-separated effective_status filter, e.g. "ACTIVE" or "ACTIVE,PAUSED". Omit (or pass ALL) for everything except deleted and archived. Archived objects never appear in a listing: read one by id if you need it.
    - `objective` string: Filter to one objective, e.g. OUTCOME_SALES.
    - `limit` integer: Maximum campaigns to return (default 100).
    - `raw_data` boolean: Return compact JSON only (no markdown). Use when you will compute on the result.

## Response `200`

The tool ran. A write returns proposal_id and approve_url while the change waits for approval.

- SuccessEnvelope
  - `success` unknown, required
  - `tool` string, required
  - `data` object, required: Machine-readable result.
  - `markdown` string, required: The same result written for a person or a model.
  - `quota` Quota: Task usage for the current billing period.
    - `plan` string
    - `used` integer
    - `limit` integer
    - `period_end` string
    - `upgrade_url` string
  - `proposal_id` string: Present for writes. Nothing changes on the ad platform until it is approved.
  - `approve_url` string: Where a person approves the proposal.
  - `request_id` string, required

## Other responses

- `400`: Invalid arguments, or the ad account could not be resolved.
- `401`: Missing, invalid, revoked or expired API key.
- `402`: Monthly task quota used up, or the plan does not include this tool.
- `403`: The connected ad account lacks the access level this tool needs.
- `404`: Unknown tool name.
- `409`: Not connected, reconnect needed, confirmation required, a proposal already pending or no longer pending, an identical create that failed earlier today (proposal_failed_before), a create that duplicates an approved one (duplicate_create), the ad-account limit of the plan reached (account_limit), or an Idempotency-Key reused with different arguments.
- `429`: Rate limited by Adako or by the ad platform. See Retry-After.
- `500`: Unexpected error inside Adako.
- `502`: The ad platform returned an error.

---

[API](https://skmtc.dev/adako/apis/adako-rest-api.md) · [All operations](https://skmtc.dev/adako/apis/adako-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/adako/apis/adako-rest-api/revisions/59ee60d48a56?raw)
