Skip to content

OpenAI Audit, Quick Start

monsys.ai OpenAI Audit pulls users, projects, API keys and audit log from the OpenAI Platform admin API and bundles everything monthly into an Ed25519-signed evidence pack.

Separate module from Copilot Audit. For customers who have OpenAI Platform or ChatGPT Team/Enterprise and need to prove which users + API keys exist, who changed what, and which keys are orphan (leak risk).

In platform.openai.com → Settings → Organization → Admin Keys → Create:

  • Permission: Read-only
  • Expiration: 90 days recommended

Not to be confused with a user-key (sk-proj-… or sk-… without “admin”). Only an Organization Admin Key (sk-admin-…) has access to /v1/organization/* endpoints.

Dashboard → OpenAI Audit → + Connect org

  • Org ID: org-... as shown in your OpenAI dashboard
  • Display name: optional
  • Admin Key: paste, shown once, then AES-256-GCM encrypted

Test call via GET /v1/organization/users?limit=1. On fail:

  • 401/403 → key lacks admin scope, or typo
  • 429 → OpenAI rate-limit

Worker pulls every hour:

  • GET /v1/organization/users (paginated)
  • GET /v1/organization/projects (incl. archived)
  • Per active project: GET /v1/organization/projects/{id}/api_keys
  • GET /v1/organization/audit_logs (cursor since last_event_id)

Results in Dashboard → OpenAI Audit:

  • KPI strip: connected orgs, users, active projects, API keys, stale keys (>90d unused)
  • Users table: email prefix, role, added date
  • Projects table: status (active/archived), created date
  • API keys table: redacted value, type, owner, last_used (red if >90d)
  • Audit events table: everything in OpenAI’s audit_logs
Terminal window
POST /api/v1/openai/evidence-packs
{
"period_start": "2026-04-01T00:00:00Z",
"period_end": "2026-04-30T23:59:59Z"
}

Produces tarball:

pack-N.tar.gz
├── manifest.json — schema_version: 2, module: "openai_admin"
├── manifest.sig — Ed25519 over manifest.json
├── users.jsonl
├── projects.jsonl
├── api_keys.jsonl
└── events.jsonl

Verify (same tool as AI observability + Copilot):

Terminal window
python3 tools/evidence-pack-verify.py pack-N.tar.gz \
--expected-pubkey <your pinned monsys signing key>
  • €1 per user per month (averaged over the month)
  • €5 per project per month (averaged over the month)

Example: 25 users + 3 active projects → 25 × €1 + 3 × €5 = €40/month. Tenant with no connected org pays nothing.