---
title: "Check chat card copy and image before building an ad"
method: POST
path: "/api/v1/tools/chatgpt_validate_chat_card/execute"
tags: ["ChatGPT Ads"]
---

# Check chat card copy and image before building an ad

`POST /api/v1/tools/chatgpt_validate_chat_card/execute`

## Request

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

Checks a chat card against the rules before anything is created: the headline is 3–50 characters, the body at most 100, the destination an https URL of at most 2048 characters, and the image square, at least 400 px a side, under 10 MB and one of image/jpeg, image/png, image/webp.
Use when: you have drafted copy, or the user pasted copy or an image URL, always before chatgpt_create_ad or chatgpt_launch_ad. Call it with no arguments at all to get the limits themselves.
Do not use it for policy questions — it checks lengths, formats and reachability, never whether the claim in the copy is allowed. Do not use it to check a live ad: read that with chatgpt_list_ads.
Returns every problem at once, split into things that will be refused and advice. Fix the refusals before creating anything; the writers apply exactly these rules and will refuse the whole call otherwise.
Calls no ad platform, needs no connection and costs nothing, so run it as often as it helps. If the copy is too long, say so and ask the user how to shorten it — never rewrite their wording to fit.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `arguments` object
    - `title` string: Headline to check.
    - `body` string: Body copy to check.
    - `target_url` string: Destination URL a click goes to.
    - `image_url` string: The card image. Only its header bytes are read. Adako hosts no files: the platform downloads this URL itself, from its own servers and often hours later, so it must be a public link straight to the file — not a file on the computer, not a Drive, Dropbox or design-tool share page, not a link that expires or asks for a login. Call check_media first: it repairs the usual share links, checks the file against this platform, and says where to put a file that has no link yet.
    - `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)
