# POST /organization/projects/{project_id}/api_keys/{api_key_id} (OpenAI API)
Base URL: https://api.openai.com/v1
Auth: Authorization; OpenAI admin key; required.
Request formats: application/json.
Last verified: 2026-10-20

> Update project API key

## 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 wi... |
| scopes | body | string[] | No | Replace the API key scope restrictions. Omit to leave scopes unchanged. An em... |

## Response example
{"object":"organization.project.api_key","redacted_value":"string"}

---
Need an API key? Get one at https://platform.openai.com/api-keys