GET
GET /organization/audit_logs — OpenAI API
OpenAI admin key (required); https://api.openai.com/v1
OpenAI APIList audit logs
- Base URL
- https://api.openai.com/v1
- Auth
- Authorization: Bearer <OPENAI_API_KEY>
- Last verified
- 2026-10-20 · upstream hash matched
Actions Try in browser→
Agents: curl -H "Accept: text/markdown" this URL
→ 370 tokens · Vary: Accept
→ 370 tokens · Vary: Accept
Critical gotchas
The Responses API is the primary interface for new text and tool workflows; Chat Completions remains a separate compatibility API.
Audio transcription uploads use multipart form data rather than a JSON request body.
cURL
curl -X GET 'https://api.openai.com/v1/organization/audit_logs?effective_at=example-effective-at&project_ids%5B%5D=example&event_types%5B%5D=example&actor_ids%5B%5D=example&actor_emails%5B%5D=example&resource_ids%5B%5D=example&tenant_only=false&limit=20&after=example-after&before=example-before' \ -H "Authorization: Bearer $OPENAI_ADMIN_KEY"
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| effective_at | query | object | No | Return only events whose `effective_at` (Unix seconds) is in this range. |
| project_ids[] | query | string[] | No | Return only events for these projects. |
| event_types[] | query | string[] | No | Return only events with a `type` in one of these values. For example, `project.created`. For all options, see the documentation for the [audit log object](https://developers.openai.com/api/reference/resources/admin/subresources/organization/subresources/audit_logs). |
| actor_ids[] | query | string[] | No | Return only events performed by these actors. Can be a user ID, a service account ID, or an api key tracking ID. |
| actor_emails[] | query | string[] | No | Return only events performed by users with these emails. |
| resource_ids[] | query | string[] | No | Return only events performed on these targets. For example, a project ID updated. For ChatGPT connector role events, use the workspace connector resource ID shown in `details.id`, such as `<workspace_id>__<connector_id>`. |
| tenant_only | query | boolean | No | Return only tenant-scoped events associated with this organization. Required for tenant-scoped events such as `role.bound_to_resource` and `role.unbound_from_resource`. When `true`, all supplied event types must be tenant-scoped. |
| limit | query | integer | No | A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20. |
| after | query | string | No | A cursor for use in pagination. `after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list. |
| before | query | string | No | A cursor for use in pagination. `before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list. |
Response 200 OK
{
"object": "list",
"data": [
{
"id": "string",
"type": "api_key.created",
"effective_at": 0,
"project": {
"id": "string",
"name": "string"
},
"actor": {
"type": "session",
"session": {
"user": {
"id": "[recursive or deeply nested schema]",
"email": "[recursive or deeply nested schema]"
},
"ip_address": "string"
},
"api_key": {
"id": "string",
"type": "user",
"user": {
"id": "[recursive or deeply nested schema]",
"email": "[recursive or deeply nested schema]"
},
"service_account": {
"id": "[recursive or deeply nested schema]"
}
}
},
"api_key.created": {
"id": "string",
"data": {
"scopes": [
"[recursive or deeply nested schema]"
]
}
},
"api_key.updated": {
"id": "string",
"changes_requested": {
"scopes": [
"[recursive or deeply nested schema]"
]
}
},
"api_key.deleted": {
"id": "string"
},
"checkpoint.permission.created": {
"id": "string",
"data": {
"project_id": "string",
"fine_tuned_model_checkpoint": "string"
}
},
"checkpoint.permission.deleted": {
"id": "string"
},
"external_key.registered": {
"id": "string",
"data": {}
},
"external_key.removed": {
"id": "string"
},
"external_storage.registered": {
"id": "string",
"data": {
"provider": {
"type": "[recursive or deeply nested schema]",
"account_id": "[recursive or deeply nested schema]",
"region": "[recursive or deeply nested schema]",
"bucket": "[recursive or deeply nested schema]",
"role_arn": "[recursive or deeply nested schema]",
"external_id": "[recursive or deeply nested schema]"
},
"geography": "string"
}
},
"external_storage.removed": {
"id": "string"
},
"group.created": {
"id": "string",
"data": {
"group_name": "string"
}
},
"group.updated": {
"id": "string",
"changes_requested": {
"group_name": "string"
}
},
"group.deleted": {
"id": "string"
},
"scim.enabled": {
"id": "string"
},
"scim.disabled": {
"id": "string"
},
"invite.sent": {
"id": "string",
"data": {
"email": "string",
"role": "string"
}
},
"invite.accepted": {
"id": "string"
},
"invite.deleted": {
"id": "string"
},
"ip_allowlist.created": {
"id": "string",
"name": "string",
"allowed_ips": [
"string"
]
},
"ip_allowlist.updated": {
"id": "string",
"allowed_ips": [
"string"
]
},
"ip_allowlist.deleted": {
"id": "string",
"name": "string",
"allowed_ips": [
"string"
]
},
"ip_allowlist.config.activated": {
"configs": [
{
"id": "[recursive or deeply nested schema]",
"name": "[recursive or deeply nested schema]"
}
]
},
"ip_allowlist.config.deactivated": {
"configs": [
{
"id": "[recursive or deeply nested schema]",
"name": "[recursive or deeply nested schema]"
}
]
},
"login.succeeded": {},
"login.failed": {
"error_code": "string",
"error_message": "string"
},
"logout.succeeded": {},
"logout.failed": {
"error_code": "string",
"error_message": "string"
},
"organization.updated": {
"id": "string",
"changes_requested": {
"title": "string",
"description": "string",
"name": "string",
"threads_ui_visibility": "string",
"usage_dashboard_visibility": "string",
"api_call_logging": "string",
"api_call_logging_project_ids": "string"
}
},
"project.created": {
"id": "string",
"data": {
"name": "string",
"title": "string"
}
},
"project.updated": {
"id": "string",
"changes_requested": {
"title": "string"
}
},
"project.archived": {
"id": "string"
},
"project.deleted": {
"id": "string"
},
"rate_limit.updated": {
"id": "string",
"changes_requested": {
"max_requests_per_1_minute": 0,
"max_tokens_per_1_minute": 0,
"max_images_per_1_minute": 0,
"max_audio_megabytes_per_1_minute": 0,
"max_requests_per_1_day": 0,
"batch_1_day_max_input_tokens": 0
}
},
"rate_limit.deleted": {
"id": "string"
},
"role.created": {
"id": "string",
"role_name": "string",
"permissions": [
"string"
],
"resource_type": "string",
"resource_id": "string"
},
"role.updated": {
"id": "string",
"changes_requested": {
"role_name": "string",
"resource_id": "string",
"resource_type": "string",
"permissions_added": [
"[recursive or deeply nested schema]"
],
"permissions_removed": [
"[recursive or deeply nested schema]"
],
"description": "string",
"metadata": {}
}
},
"role.deleted": {
"id": "string"
},
"role.assignment.created": {
"id": "string",
"principal_id": "string",
"principal_type": "string",
"resource_id": "string",
"resource_type": "string"
},
"role.assignment.deleted": {
"id": "string",
"principal_id": "string",
"principal_type": "string",
"resource_id": "string",
"resource_type": "string"
},
"role.bound_to_resource": {
"id": "string",
"role_id": "string",
"resource_id": "string",
"resource_type": "string",
"permissions": [
"string"
],
"workspace_id": "string",
"connector_id": "string",
"connector_name": "string",
"enabled": true,
"source": "role_toggle"
},
"role.unbound_from_resource": {
"id": "string",
"role_id": "string",
"resource_id": "string",
"resource_type": "string",
"permissions": [
"string"
],
"workspace_id": "string",
"connector_id": "string",
"connector_name": "string",
"enabled": true,
"source": "role_toggle"
},
"service_account.created": {
"id": "string",
"data": {
"role": "string"
}
},
"service_account.updated": {
"id": "string",
"changes_requested": {
"role": "string"
}
},
"service_account.deleted": {
"id": "string"
},
"workload_identity_provider.created": {
"id": "string",
"data": {}
},
"workload_identity_provider.updated": {
"id": "string",
"changes_requested": {}
},
"workload_identity_provider.deleted": {
"id": "string",
"name": "string"
},
"workload_identity_provider_mapping.created": {
"id": "string",
"identity_provider_id": "string",
"data": {}
},
"workload_identity_provider_mapping.updated": {
"id": "string",
"identity_provider_id": "string",
"changes_requested": {}
},
"workload_identity_provider_mapping.deleted": {
"id": "string",
"identity_provider_id": "string",
"project_id": "string",
"service_account_id": "string"
},
"user.added": {
"id": "string",
"data": {
"role": "string"
}
},
"user.updated": {
"id": "string",
"changes_requested": {
"role": "string"
}
},
"user.deleted": {
"id": "string"
},
"certificate.created": {
"id": "string",
"name": "string"
},
"certificate.updated": {
"id": "string",
"name": "string"
},
"certificate.deleted": {
"id": "string",
"name": "string",
"certificate": "string"
},
"certificates.activated": {
"certificates": [
{
"id": "[recursive or deeply nested schema]",
"name": "[recursive or deeply nested schema]"
}
]
},
"certificates.deactivated": {
"certificates": [
{
"id": "[recursive or deeply nested schema]",
"name": "[recursive or deeply nested schema]"
}
]
}
}
],
"first_id": "audit_log-defb456h8dks",
"last_id": "audit_log-hnbkd8s93s",
"has_more": true
} Get a free OpenAI API key → sponsored Affiliate link - we may earn a commission, at no extra cost to you.