Section 3 — The Advertiser API · Last verified: MAY 2026

The Ad Account Resource

Chapter 14 — The Ad Account Resource

GET /ad_account returns metadata for the ad account scoped to the current API key. It takes no body and no query parameters.

Request

curl -X GET "https://api.ads.openai.com/v1/ad_account" 
  -H "Authorization: Bearer $OPENAI_ADS_API_KEY"

Response

{
  "id": "act_123",
  "name": "Acme Ads",
  "url": "https://www.acme.example",
  "preview_url": "https://preview.acme.example",
  "timezone": "UTC",
  "currency_code": "USD"
}

Field reference

FieldNotes
idAd account identifier.
nameDisplay name.
urlPrimary destination URL.
preview_urlOptional preview destination.
timezoneAccount timezone. All time-bound parameters (campaign start/end, insights buckets) respect this.
currency_codeAccount currency. All *_micros fields are denominated in this currency.

When to use it

This endpoint is the standard “is my key working?” check. Use it as the first call in any new integration. If it returns 200, your key is provisioned and scoped correctly. If it returns 401, the key is invalid or the bearer header is malformed. If it returns 403, the key is valid but the account is suspended or unauthorised.

The response is also the source of truth for two pieces of state every other call depends on:

  1. timezone — when you build campaigns with start_time and end_time, those Unix timestamps are interpreted in this zone. Insights buckets (readable_time, start_time, end_time) come back in this zone.
  2. currency_code — every *_micros field in the API is denominated here. A lifetime_spend_limit_micros of 25000000 is $25 in a USD account, €25 in a EUR account, £25 in a GBP account.

Cache the response at integration startup. There’s no reason to call it on every request.

Account-scope insights

The same path also exposes account-level insights at GET /ad_account/insights — see Chapter 19 for the query parameters and response shape.

Multi-account integrations

A single API key is scoped to one ad account. Agencies and tools managing multiple advertisers need a separate key per account, with the integration storing them keyed by id (returned here). OpenAI offers a contact path at openai.com/advertisers/ for advertisers needing a different model.