The Advertiser API lets you manage ad campaigns, ad groups, ads, files, and reporting from one API. It supports CRUD-like functions with standard JSON content types.
Authentication
Issue an API key in the Settings tab of Ads Manager. Each key is scoped to one ad account.
Pass the key as a bearer token on every request:
Authorization: Bearer $OPENAI_ADS_API_KEY
By default, the Advertiser API works in the context of a single Ad Account. If you need to manage multiple Ad Accounts with the API, please contact us.
Endpoints
| Resource | Use for |
|---|---|
| Campaigns | Create, list, retrieve, update, and change campaign state. |
| Ad Groups | Create, list, retrieve, update, and change ad group state. |
| Ads | Create, list, retrieve, update, and change ad state. |
| Files | Upload creative assets for use in ads. |
| Insights | Retrieve performance data across ad account, campaign, ad group, and ad scopes. |
All resources live inside a single Ad Account.
Use the Quickstart for a minimal end-to-end workflow, or go directly to the API reference.
Object Statuses
For an ad to show to users, the ad, and its parent ad group and campaign all have to be enabled. Further, the Ad has to be reviewed. Reviews typically only take a few minutes, you can monitor with the review_status field.
Rate limits
The Advertiser API enforces limits by both ad account and IP address:
| Scope | Limit |
|---|---|
| Per endpoint | 600 requests per minute |
| Overall | 1,200 requests per minute |
Requests must stay within both the ad-account and IP-address limits.
OpenAPI spec
Download the OpenAPI specChangelog
| Release | Change |
|---|---|
| v1 | Published the initial API version |