Guide

OpenAI Ads Manager versus the Ads API: what each can do

Published 14 September 2026 · Based on the OpenAI Ads API documentation

The OpenAI Ads Manager is where an account is created and run by hand. The API is how software runs it. They overlap on the basics and differ on everything around them: capabilities that only a partner can enable, limits, and what is missing from both. This guide lays it out.

Key facts
  • Ads Manager lives at ads.openai.com. API keys are self-issued in Settings, one key per ad account.
  • The API covers campaigns, ad groups, ads, bulk mutations, insights, conversions, feeds and geo lookup. Updates are POST calls; nothing is deleted by verb.
  • Capabilities enabled per account by an OpenAI partner rep: conversion pixels, Conversions API keys, conversion-optimised bidding, product feeds, spend limit windows, CPM bidding, conversion event stream, zero-impression reporting and brand updates.
  • Rate limits: 600 requests per minute per endpoint, 1,200 per minute overall, per ad account and per IP.
  • Not in the API: webhooks, sandbox, an official server SDK, account creation, seats, billing, target CPA or ROAS, dayparting, A/B tests, drafts, duplication.

What is the OpenAI Ads Manager?

The Ads Manager at ads.openai.com is the self-serve interface for an OpenAI Ads account. It is where the account exists, where billing and payment are handled, where reviews are visible, and where an advertiser can build campaigns by hand. It is also where API keys are issued, under Settings.

Some things only appear there. View-through conversions, counted over a fixed one-day window, are shown in the Ads Manager and are not available through the API; they are for reporting, not optimisation. Account creation, adding users and seats, and anything to do with invoices happen only in the Ads Manager, because the API has no endpoints for them. Read how ads in ChatGPT work for the platform mechanics that both share.

What can you do with the Ads API?

Everything needed to run an account programmatically: create and update campaigns, ad groups and ads; set budgets, bids, hints, locations and platforms; activate, pause and archive; run bulk mutation jobs; read insights; manage conversion settings and read recent events; register feeds; and look up geo targets. Software talks to it with an API key over HTTPS.

The API has a particular shape. Updates are POST calls to the resource, not PATCH. There is no DELETE verb; removal is its own POST action, and archiving is irreversible. Every object is created paused. Create calls accept an idempotency key so that a retried request does not create a duplicate, and bulk jobs can create a campaign, its ad groups and its ads in one submission with forward references between them, at a limit of ten job submissions per ten seconds.

Reads are equally deliberate. The insights endpoint is synchronous and cursor-paged, up to 2,000 rows a call, with one segment per query. Get and list calls can include serving issues and bid-too-low diagnostics. An ad preview can be rendered, valid for 24 hours. A tracking template can be set at any level to append campaign and ad identifiers to landing pages.

What can only a partner enable?

A set of capabilities are gated per account and switched on by an OpenAI partner representative rather than in a settings screen: brand updates, conversion pixels, Conversions API keys, conversion-optimised bidding, product feeds, spend limit windows, CPM bidding, the conversion event stream and zero-impression product reporting. An account without them can run impression and click campaigns with chat cards, and not much more.

This is the practical reason a partner sits between many advertisers and the platform. The partner path is documented: a partner key adds an ad account header to each request, so one integration can manage many client accounts without holding each client's key. Adsonomy operates on either model. You can issue your own key and keep full control of the account, or Adsonomy can manage the account under its partner key, and the capabilities above are requested as part of onboarding.

OAuth scopes appear in the documentation, but no OAuth flow is described, so any integration today plans on API keys.

What does the API not do?

Four gaps define the integration work. No webhooks or event push of any kind, so every state change has to be polled. No sandbox or test mode, so every call runs against the live account. No official server SDK, so clients are generated from the OpenAPI description. And no endpoints for account creation, user management or billing.

The optimisation gaps sit alongside them. There is no target CPA, no target ROAS, no bid cap on the maximise strategies, no dayparting, no frequency capping, no pacing control, no A/B test, no campaign duplication and no draft state. Custom audiences exist but are not available for EEA or Swiss targeting. Product feeds have no documented list endpoint. Reporting has no prompt-level data, no impression share and no reach or frequency.

NeedAds ManagerAPIManagement layer
Build and edit campaignsYesYesYes, with drafts and approvals
Billing, seats, account creationYesNoNo
View-through conversionsReport onlyNoNo
Target CPA or ROASNoNoController on fixed bids
Dayparting, pacingNoNoRules on bids and budgets
A/B tests, duplicationNoNoPaired experiments, clones
Change notificationsNoNo webhooksPolling and a change log
Test before going liveNoNo sandboxShadow mode

What are the rate limits?

600 requests per minute per endpoint and 1,200 requests per minute overall, counted per ad account and per IP address. Bulk mutation jobs are limited to ten submissions per ten seconds per account. The Conversions API accepts events with a timestamp within the last seven days.

The limits are generous for one account and tight for a partner polling many. Without webhooks, a manager that wants to know when a review finishes, when a budget runs out or when conversions have settled has to schedule its reads carefully: hourly insights for the accounts that are active, daily for the rest, and bulk jobs rather than one call per ad when a change touches many objects.

Why does a management layer exist?

Because the platform gives you campaigns, bids and a report, and stops there. Everything an advertiser is used to from mature ad platforms, from target CPA to dayparting to a test before going live, has to be built outside and applied through the API in small, logged steps. That is what Adsonomy is.

Three examples. A target cost per order becomes a controller that reads yesterday's conversions, compares them with the goal, and nudges fixed bids and budgets within a ceiling. A test mode becomes a shadow mode that records every change the manager would have made for 48 hours before any of them go live. Change notifications become a polling schedule and a change log that names the source of every change, whether a person, a rule or the AI. The guardrails guide explains how that layer is kept accountable, and the shop guide and service guide show what it connects to.

Frequently asked questions

Do I still need the Ads Manager if I use Adsonomy?

Yes, for the things the API does not cover: creating the account, billing and payment methods, users and seats, and view-through reporting. Day-to-day campaign work happens in Adsonomy, and every change it makes is visible in the Ads Manager too, since both act on the same account.

Who owns the API key?

You do, if you issue it in your Ads Manager settings and enter it in Adsonomy. One key maps to one ad account, and you can revoke it at any time. If you prefer, Adsonomy manages the account under its partner key and you never handle a key at all.

Is there a way to test without spending?

Not on the platform; there is no sandbox. Adsonomy's shadow mode records what it would have changed for 48 hours without touching the account, and everything on the platform is created paused, so nothing serves until it is activated on purpose.

Adsonomy runs ads inside ChatGPT for shops and service businesses. Control edition: you run it with rules. Autopilot: the AI manager runs it inside your guardrails. Launching 1 October 2026.

Join the waitlist