OpenAI Platform integration
Last updated: October 28, 2026
The OpenAI Platform integration brings your OpenAI API usage and spend into Span. You can see who is using the OpenAI API, which models they use, and what it costs, next to your other AI tools.
Is this the right integration for you?
Use OpenAI Platform if your company pays for the OpenAI API through an organization on platform.openai.com. That covers API keys used by apps, scripts and internal tools, and Codex CLI or the Codex IDE extension when people sign in with an API key.
Use the ChatGPT & Codex Workspace integration instead if your company has a ChatGPT Enterprise workspace and people sign in to ChatGPT or Codex with their ChatGPT account.
Many companies have both. You can connect both, and they don't count the same usage twice: API-key usage is only in OpenAI Platform, and usage from ChatGPT sign-ins is only in the workspace.
Before you start
You need:
An organization owner on the OpenAI Platform. Only owners can create Admin keys.
An Admin API key. It starts with
sk-admin-. Regular project API keys can't read usage, and the connection fails with one.API spend in the last 180 days. Span identifies your organization from its cost data. A brand-new organization with no spend yet can't be connected until it has some.
Connect OpenAI Platform
In OpenAI, go to Settings → Organization → Admin keys and create a new Admin key. Copy it.
In Span, go to Settings → Integrations and choose OpenAI Platform. Paste the Admin API key and save.
Span checks the key and reads your organization's name and ID. You don't need to enter them.
If your company has more than one OpenAI organization, add a connection for each one. Each organization can only be connected once. You can replace the key later without losing data, because the connection is tied to the organization, not the key.
What we sync
Span only reads data. It doesn't read prompts, completions or any other content, and it doesn't change anything in your OpenAI organization.
Entity | What it includes |
Users | Members of the organization and their email addresses |
Projects | Projects, including archived ones, so older usage can still be attributed |
Project API keys | API keys in active projects and who owns each one (a user or a service account) |
Token usage | Daily input, cached input, cache write and output tokens, and request counts, per user, API key, project and model |
Costs | Daily cost in USD per user, API key, project and line item (model and usage type) |
Costs cover everything OpenAI bills on the organization, including embeddings, images and audio. Token counts cover text completions only.
How we match usage to people
Span matches OpenAI usage to people by email address. For each day's usage and cost, Span uses the first email it finds:
The user OpenAI recorded on the usage.
That user's email from your organization's member list.
The email of the person who owns the API key.
The email must match the work email of an active person in Span. Matching isn't case-sensitive.
Some spend can't be matched to a person:
Usage on service account keys, which don't belong to a person.
Usage on deleted keys, or keys in archived projects. OpenAI no longer lists those keys, so their owner is unknown.
Usage by someone whose OpenAI email doesn't match their email in Span.
See why AI tool or spend data might be missing for a person.
Where the data shows up
AI Spend
OpenAI Platform spend appears as OpenAI API. Spend is the cost OpenAI reports, in USD, per person, day and model. You can break it down by tool and by model, and filter it by team or person. All OpenAI Platform spend is usage-based, so it appears as overage spend. There is no subscription or seat cost for the API.
The spend Span shows comes from OpenAI's usage reporting, not from your invoice. Small differences from your bill are expected, for example from credits, discounts or taxes.
Tool utilization
A person counts as an active OpenAI API user on any day they made at least one model request or had any cost. OpenAI doesn't report lines of code, so OpenAI API usage doesn't add to accepted lines of code.
How often data updates
Span syncs from OpenAI about every 2 hours.
Every sync re-reads the previous 2 days, because OpenAI keeps updating recent usage and costs. The last couple of days can change slightly as a result. Today's numbers are partial until the day is over.
Reports refresh within a few hours of each sync.
After you first connect, allow a few hours for data to appear.
Troubleshooting
"OpenAI rejected the key." The key isn't an Admin key, or it was revoked. Create a new Admin key (`sk-admin-...`) as an organization owner.
"OpenAI reported no costs in the last 180 days." Span can't identify an organization with no recent spend. Connect again once the organization has API usage.
Spend shows but some people are missing. Check that their OpenAI email matches their work email in Span, and that their usage isn't on a service account or deleted key.