---
title: "Modifies a project in the organization."
method: POST
path: "/organization/projects/{project_id}"
tags: ["Projects"]
---

# Modifies a project in the organization.

`POST /organization/projects/{project_id}`

## Path parameters

- `project_id` string, required

## Request body

- ProjectUpdateRequest
  - `name` string, nullable — The updated name of the project, this name appears in reports.
  - `external_key_id` string, nullable — External key ID to associate with the project.
  - `geography` string, nullable — Geography for the project. Deprecated: use `residency` when creating a project to configure data residency. This field is retained for backward compatibility.

## Response `200`

Project updated successfully.

- Project — Represents an individual project.
  - `id` string, required — The identifier, which can be referenced in API endpoints
  - `object` 'organization.project', required — The object type, which is always `organization.project`
  - `name` string, nullable — The name of the project. This appears in reporting.
  - `created_at` integer, required — The Unix timestamp (in seconds) of when the project was created.
  - `archived_at` integer, nullable — The Unix timestamp (in seconds) of when the project was archived or `null`.
  - `status` string, nullable — `active` or `archived`
  - `external_key_id` string, nullable — The external key associated with the project.
  - `residency` 'GLOBAL' | 'US_STORAGE_PROCESSING' | 'EU_STORAGE_PROCESSING' | 'JP_STORAGE' | 'KR_STORAGE' | 'CA_STORAGE' | 'SG_STORAGE' | 'IN_STORAGE' | 'AU_STORAGE' | 'GB_STORAGE' | 'AE_STORAGE' | 'AE_STORAGE_PROCESSING'

## Other responses

- `400` — Error response when updating the default project.

## Changes

> 82 revisions in range; 34 could not be searched.

- **2026-05-13** `74cbcf73838f` — 7 breaking, 8 info
  - the response property `name` became optional for the status `200`
  - the response property `status` became optional for the status `200`
  - response property `archived_at` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `error/code` list-of-types was widened by adding types `null` to media type `application/json` of response `400`
  - …11 more
- **2024-10-17** `cc9f99ba40bc` — 1 breaking
  - added the new path request parameter `project_id`
- **2024-09-26** `548c762fe616` — 4 warning
  - removed the request property `app_use_case`
  - removed the request property `business_website`
  - removed the optional property `app_use_case` from the response with the `200` status
  - removed the optional property `business_website` from the response with the `200` status
- **2024-09-13** `4c9e3967c707` — 4 info
  - added the new optional request property `app_use_case`
  - added the new optional request property `business_website`
  - added the optional property `app_use_case` to the response with the `200` status
  - added the optional property `business_website` to the response with the `200` status
- **2024-08-06** `8eca3b09b705` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/openai/apis/openapi/changes/organization/projects/:project_id/post.md)

---

[API](https://skmtc.dev/openai/apis/openapi.md) · [All operations](https://skmtc.dev/openai/apis/openapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/openai/openapi/revisions/959ef977e135/schema)
