---
title: "Resume a ChatGPT Ads campaign"
method: POST
path: "/api/v1/tools/chatgpt_resume_campaign/execute"
tags: ["ChatGPT Ads"]
---

# Resume a ChatGPT Ads campaign

`POST /api/v1/tools/chatgpt_resume_campaign/execute`

## Request

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

Sets one campaign back to active so it can deliver again. Real money starts being spent as soon as the platform approves delivery.
Use when: the user has reviewed something paused — often a campaign this server created — and wants it live.
Do not resume without telling the user the spend limits first: resuming restarts the whole structure underneath, and the daily limit applies from that moment.
Do not assume "active" means "delivering". Check the read-back: an unapproved account, an unapproved ad or a serving issue will keep an active campaign at zero, and the serving issues in the read-back say which.
Returns the campaign read back from the platform, including its spend limits and any serving issue.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `arguments` object, required
    - `ad_account_id` string: ChatGPT Ads advertiser account id. One advertiser key belongs to one account, so this is only needed when the user has connected more than one key. Omit it to use the primary account.
    - `campaign_id` string, required: The campaign to act on, from chatgpt_list_campaigns.
    - `idempotency_key` string: Optional caller-supplied key; identical keys never execute twice.
    - `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)
