# openai_ads_upload_image

> Upload verified PNG/JPEG/WebP bytes to the selected ChatGPT Ads account after saved preview and confirmation.

[Documentation](https://www.getmcpads.com/docs) / [Sources](https://www.getmcpads.com/docs/sources) / [ChatGPT Ads](https://www.getmcpads.com/docs/sources/chatgpt-ads)

Upload verified PNG/JPEG/WebP bytes to the selected ChatGPT Ads account after saved preview and confirmation. Minimum 640 × 640, maximum 5 MiB. Returns native file_id for a chat_card. Never changes the account favicon.

> **Note** Connect with the Ads Management API key from Ads Manager Settings, then select the verified advertising account. Native account permissions and feature eligibility apply.

> **Warning** This tool changes the account. It is absent from the tool list on the Free plan, and it previews by default: without `confirm: true` it describes the change and applies nothing.

|  |  |
| --- | --- |
| Source | [ChatGPT Ads](https://www.getmcpads.com/docs/sources/chatgpt-ads) |
| Kind | Write |
| Discovery | Reachable through `search_tools` and `run_tool` |
| Account parameter | `adAccountId` |
| Endpoint | https://mcp.getmcpads.com/openai-ads/mcp |

## Parameters

| Name | Type | Required | Notes |
| --- | --- | --- | --- |
| `adAccountId` | string | Required | Exact verified and selected ChatGPT Ads account ID; the token is scoped to this account. |
| `bytesBase64` | string | Required | Actual supplied image bytes, base64 encoded; never transcribe bytes from a screenshot. |
| `mimeType` | string | Required | Verified MIME type of these image bytes. One of: `image/png`, `image/jpeg`, `image/webp`. |
| `filename` | string | Required | Stable plain image filename without a path; keep it unchanged for this request. |
| `requestId` | string | Required | Stable UUID for this exact logical change. Reuse to retrieve its receipt; never replace after an uncertain outcome. |
| `confirm` | boolean | Optional | False returns a saved preview. True applies only the exact preview explicitly approved by the person. Default: `false`. |
| `confirmationToken` | string | Optional | Exact saved preview token returned for these arguments, account, actor and workspace. |

## Calling it

Through run_tool, since it is not announced

```json
{
  "name": "run_tool",
  "arguments": {
    "name": "openai_ads_upload_image",
    "args": {
      "adAccountId": "<string>",
      "bytesBase64": "<string>",
      "mimeType": "image/png",
      "filename": "<string>",
      "requestId": "<string>"
    }
  }
}
```

- [ChatGPT Ads metrics](https://www.getmcpads.com/docs/sources/chatgpt-ads/metrics): What you can ask for.
- [ChatGPT Ads dimensions](https://www.getmcpads.com/docs/sources/chatgpt-ads/dimensions): How you can break it down.

---

This page as HTML: https://www.getmcpads.com/docs/sources/chatgpt-ads/tools/openai_ads_upload_image
Every page under /docs is available as Markdown: append `.md`, or send `Accept: text/markdown`.
