---
title: "Check responsive search ad copy against the RSA limits"
method: POST
path: "/api/v1/tools/google_validate_ad_copy/execute"
tags: ["Google Ads"]
---

# Check responsive search ad copy against the RSA limits

`POST /api/v1/tools/google_validate_ad_copy/execute`

## Request

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

Checks headlines, descriptions and display paths against the responsive search ad rules before anything is sent to Google: at most 15 headlines of 30 characters, at most 4 descriptions of 90, display paths of 15, at least 3 headlines and 2 descriptions, no duplicates, no shouting in capitals and no repeated or excessive punctuation.
Use when: you have drafted ad copy, or the user pasted copy and wants to know whether it will be accepted.
Do not use when: the question is about policy topics (medical claims, trademarks) — this tool only checks format and style, not eligibility.
Runs entirely inside Adako: no Google call, no cost, no connection required. Fix every error before calling google_create_search_campaign, which applies exactly the same rules and will refuse the whole campaign otherwise. Warnings are advice, not blockers.
If you are unsure which account, campaign or period the user means, ask them — do not guess ids or dates.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `arguments` object, required
    - `headlines` string[], required: Headline texts, in the order you would submit them.
    - `descriptions` string[], required: Description texts.
    - `path1` string: First display path segment shown after the domain.
    - `path2` string: Second display path segment. Only valid with path1.
    - `final_url` string: Landing page URL, including https://.

## 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)
