Offer Manager API¶
The Offer Manager API is the enterprise management surface for defining and targeting your own inventory: ad units, line items, and creatives, with the targeting rules and reporting that back them. It is what the Offer Manager console calls, and it is not needed to serve in-chat ads.
Management API, not the dataplane
This is a management API — you use it to configure what serves, not to serve. The runtime that returns ads to your bot is the separate Ad Fetch API.
Authentication¶
Management requests authenticate with an Auth0 bearer token (the same
sign-in the Console and ads-cli
use), not a fetch key:
Every request is scoped to one org, and your role in that org is enforced server-side: viewers can read; editors and up can mutate.
Resources¶
The API exposes standard REST collections for the Offer Manager objects. Using the standard vocabulary (the enterprise console shows the alias names in parentheses):
| Collection | Path | What it manages |
|---|---|---|
| Ad units (Moments) | /system/offer-manager/adunit |
Named placements a fetch can fill. |
| Line items (Rules) | /system/offer-manager/lineItem |
Targeting + scheduling that tie creatives to an ad unit. |
| Creatives (Offers) | /system/offer-manager/creative |
The rendered ads themselves (cards, carousels, flows). |
| Targeting suggestions | /system/offer-manager/suggest |
Suggested targeting keys for an ad unit. |
Each collection supports the usual GET (list / fetch one), POST (create),
PATCH/PUT (update), and DELETE. New ad units and line items are created
disabled by default — nothing serves until you enable it.
Deprecated flat paths
The older flat management paths (/system/adunit, /system/lineItem,
/system/creative, …) still work but are deprecated in favor of the
purpose-named /system/offer-manager/* routes above.
Operating it from an agent¶
The management MCP server projects this same API as tools, so you can list, create, and tune Offer Manager objects from Claude with your own sign-in.