ChatGPT
Antenna tracks ChatGPT spend across your entire workspace — not just developers — by pulling cost records and spend limits from the ChatGPT Admin API. Use it to see who is using ChatGPT, what it costs, and how that spend tracks against the limits you have set.
ChatGPT and Codex are two surfaces of the same OpenAI integration, and you connect them separately:
| Surface | What Antenna collects |
|---|---|
| ChatGPT | Organization-wide cost data and spend limits, for everyone in the workspace |
| Codex | Developer usage analytics — threads, turns, credits, and tokens |
The ChatGPT Admin API endpoints Antenna uses are available to ChatGPT Enterprise workspaces. Business, Edu, Team, and Plus plans do not expose the cost and spend limit scopes.
Prerequisites
- A ChatGPT Enterprise workspace
- Workspace owner or admin access to the ChatGPT Admin console
- Your API Platform organization ID and your ChatGPT workspace ID
Which API key you need
ChatGPT cost data comes from the Compliance API, and spend limits come from the Spend Controls API. Both are read with an Admin key created in the ChatGPT Admin console — not an API Platform project key.
| Scope | Grants access to | Required |
|---|---|---|
chatgpt.enterprise.compliance_logs_platform.costs.read | Per-user cost records | Yes |
chatgpt.enterprise.usage_limit.read | Workspace, group, and user spend limits | Optional |
If your workspace cannot grant both scopes on a single key, create a second key with only the spend limit scope and paste it into the optional Spend Limits API Key field when connecting.
Setup
Create an Admin key
- Sign in to the ChatGPT Admin console as a workspace owner or admin, and open Access tokens.
- Create a new token named something descriptive, such as
Antenna ChatGPT Costs. - Choose Custom permissions and enable Read for the compliance logs costs scope and, if you want spend limit reporting, the usage limit scope.
- Copy the key and store it securely — you can only view it once.
Find your organization and workspace IDs
- Organization ID — copy the
org-…ID from your API Platform organization settings . Cost records are read at the API Platform organization level. - Workspace ID — copy the Workspace ID from your workspace settings in the ChatGPT Admin console . Spend limits are read at the workspace level.
Connect in Antenna
- In Antenna, go to Settings > Sources > Add source.
- Find OpenAI and select ChatGPT.
- Paste your Admin key, organization ID, and workspace ID.
- Click Connect.
The organization ID and workspace ID cannot be changed after connecting. To point Antenna at a different organization or workspace, disconnect the source and connect it again.
Data collected
| Purpose | Endpoint |
|---|---|
| Per-user cost records | GET /v1/compliance/organizations/{organization_id}/logs?event_type=COSTS |
| Workspace, group, and user spend limits | GET /v1/manage/workspaces/{workspace_id}/usage_limits |
Cost records include one row per user per hour, with the product, surface, client, and model, token counts, and the cost in credits or USD. Spend limits include the limit amount, its unit, and whether it is limited or unlimited.
Antenna does not collect ChatGPT conversations, prompts, or completions — only cost and limit metadata.
Cost records reach the Compliance API three to five hours after the activity occurs, so the most recent hours of spend appear with a delay.
Spend limits
ChatGPT and Codex draw from the same OpenAI workspace spend limit, so Antenna reports a single OpenAI budget covering both surfaces rather than a separate limit per tool.
If your key is missing the usage limit scope, the connection still succeeds and cost data continues to flow — Antenna flags the source as having limited access until you add a key with that scope.
OpenAI documentation
| Topic | OpenAI documentation |
|---|---|
| Cost records | Costs API reference |
| Spend limits | Spend Controls API reference |
| Compliance API overview and plan availability | Compliance API |
| Who can administer workspace credentials | Roles and workspace permissions |
| Developer usage analytics, which the Compliance API does not provide | Analytics API |