POST
POST /organization/projects/{project_id}/api_keys/{api_key_id} — OpenAI API
OpenAI admin key (required); https://api.openai.com/v1
OpenAI APIUpdate project API key
- 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
→ 262 tokens · Vary: Accept
→ 262 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 POST 'https://api.openai.com/v1/organization/projects/project-id/api_keys/api-key-id' \ -H "Authorization: Bearer $OPENAI_ADMIN_KEY" \ -H 'Content-Type: application/json' \ -d '{ "scopes": [ "api.all.read" ]}'
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| project_id | path | string | Yes | The ID of the project. |
| api_key_id | path | string | Yes | The ID of the API key. |
| expires_in_seconds | body | integer | No | Number of seconds from this request until the API key expires. Must comply with the organization and project expiry policies. Expired keys cannot be updated. Retrying resets the expiry relative to the new request. Omit to keep the current expiration. |
| scopes | body | string[] | No | Replace the API key scope restrictions. Omit to leave scopes unchanged. An empty array removes key restrictions (All permissions), subject to the owner's effective permissions. Use ["api.all.read"] for read-only access. Scopes do not change the owner's roles or grant administrative permissions. |
Response 200 OK
{
"object": "organization.project.api_key",
"redacted_value": "string",
"name": "string",
"created_at": 0,
"expires_at": 0,
"last_used_at": 0,
"id": "string",
"owner_project_access": "active",
"owner": {
"type": "user",
"user": {
"id": "string",
"email": "string",
"name": "string",
"created_at": 0,
"role": "string"
},
"service_account": {
"id": "string",
"name": "string",
"created_at": 0,
"role": "string"
}
}
} Get a free OpenAI API key → sponsored Affiliate link - we may earn a commission, at no extra cost to you.