docs/openai.md
CodexBar's OpenAI API provider targets the API Platform organization dashboard, not ChatGPT/Codex subscription limits.
OPENAI_ADMIN_KEY or configured key with Admin API access.
GET https://api.openai.com/v1/organization/costsGET https://api.openai.com/v1/organization/usage/completionsbucket_width=1d, costs are grouped by line_item, and completion usage is grouped by model.OPENAI_PROJECT_ID or providers[].workspaceID for openai.
Project-scoped requests add project_ids=<project> to both Admin API endpoints.GET https://api.openai.com/v1/dashboard/billing/credit_grants for older user API
keys that cannot access organization usage. This endpoint is not part of OpenAI's current public API reference.Store a key in the shared app/CLI config:
printf '%s' "$OPENAI_ADMIN_KEY" | codexbar config set-api-key --provider openai --stdin
Settings → Providers → OpenAI writes the same ~/.codexbar/config.json field. OPENAI_ADMIN_KEY is preferred over
OPENAI_API_KEY because it unlocks organization costs and usage; a normal API key only supports the legacy balance
fallback.
Project service-account keys are project-scoped credentials for API workloads. They are not organization Admin API keys, so they cannot read the organization usage and cost endpoints used by CodexBar. Configure an organization Admin API key instead; CodexBar reports this distinction when a project or service-account key is rejected.
To scope Admin API usage to a project, set the OpenAI Project ID field in Settings or add workspaceID to the openai
provider config:
{
"id": "openai",
"apiKey": "<OPENAI_ADMIN_KEY>",
"workspaceID": "proj_..."
}
Project scoping is tied to the configured Admin API key. Selected OpenAI token accounts intentionally scrub
OPENAI_PROJECT_ID/workspaceID so one account cannot inherit another account's project filter. Project-scoped Admin
API failures do not fall back to the legacy billing endpoint, because that endpoint is not project-filtered.
Admin API: <project> and the organization line as
Project: <project>.