Skip to content
Primary navigation

Projects

List projects
$ openai admin:organization:projects list
GET/organization/projects
Create project
$ openai admin:organization:projects create
POST/organization/projects
Retrieve project
$ openai admin:organization:projects retrieve
GET/organization/projects/{project_id}
Modify project
$ openai admin:organization:projects update
POST/organization/projects/{project_id}
Archive project
$ openai admin:organization:projects archive
POST/organization/projects/{project_id}/archive
ModelsExpand Collapse
project: object { id, created_at, object, 4 more }

Represents an individual project.

id: string

The identifier, which can be referenced in API endpoints

created_at: number

The Unix timestamp (in seconds) of when the project was created.

object: "organization.project"

The object type, which is always organization.project

archived_at: optional number

The Unix timestamp (in seconds) of when the project was archived or null.

external_key_id: optional string

The external key associated with the project.

name: optional string

The name of the project. This appears in reporting.

status: optional string

active or archived

ProjectsUsers

List project users
$ openai admin:organization:projects:users list
GET/organization/projects/{project_id}/users
Create project user
$ openai admin:organization:projects:users create
POST/organization/projects/{project_id}/users
Retrieve project user
$ openai admin:organization:projects:users retrieve
GET/organization/projects/{project_id}/users/{user_id}
Modify project user
$ openai admin:organization:projects:users update
POST/organization/projects/{project_id}/users/{user_id}
Delete project user
$ openai admin:organization:projects:users delete
DELETE/organization/projects/{project_id}/users/{user_id}
ModelsExpand Collapse
project_user: object { id, added_at, object, 3 more }

Represents an individual user in a project.

id: string

The identifier, which can be referenced in API endpoints

added_at: number

The Unix timestamp (in seconds) of when the project was added.

object: "organization.project.user"

The object type, which is always organization.project.user

role: string

owner or member

email: optional string

The email address of the user

name: optional string

The name of the user

ProjectsUsersRoles

List project user role assignments
$ openai admin:organization:projects:users:roles list
GET/projects/{project_id}/users/{user_id}/roles
Assign project role to user
$ openai admin:organization:projects:users:roles create
POST/projects/{project_id}/users/{user_id}/roles
Retrieve project user role
$ openai admin:organization:projects:users:roles retrieve
GET/projects/{project_id}/users/{user_id}/roles/{role_id}
Unassign project role from user
$ openai admin:organization:projects:users:roles delete
DELETE/projects/{project_id}/users/{user_id}/roles/{role_id}

ProjectsService Accounts

List project service accounts
$ openai admin:organization:projects:service-accounts list
GET/organization/projects/{project_id}/service_accounts
Create project service account
$ openai admin:organization:projects:service-accounts create
POST/organization/projects/{project_id}/service_accounts
Retrieve project service account
$ openai admin:organization:projects:service-accounts retrieve
GET/organization/projects/{project_id}/service_accounts/{service_account_id}
Update project service account
$ openai admin:organization:projects:service-accounts update
POST/organization/projects/{project_id}/service_accounts/{service_account_id}
Delete project service account
$ openai admin:organization:projects:service-accounts delete
DELETE/organization/projects/{project_id}/service_accounts/{service_account_id}
ModelsExpand Collapse
project_service_account: object { id, created_at, name, 2 more }

Represents an individual service account in a project.

id: string

The identifier, which can be referenced in API endpoints

created_at: number

The Unix timestamp (in seconds) of when the service account was created

name: string

The name of the service account

object: "organization.project.service_account"

The object type, which is always organization.project.service_account

role: "owner" or "member"

owner or member

"owner"
"member"

ProjectsAPI Keys

List project API keys
$ openai admin:organization:projects:api-keys list
GET/organization/projects/{project_id}/api_keys
Retrieve project API key
$ openai admin:organization:projects:api-keys retrieve
GET/organization/projects/{project_id}/api_keys/{api_key_id}
Delete project API key
$ openai admin:organization:projects:api-keys delete
DELETE/organization/projects/{project_id}/api_keys/{api_key_id}
ModelsExpand Collapse
project_api_key: object { id, created_at, last_used_at, 4 more }

Represents an individual API key in a project.

id: string

The identifier, which can be referenced in API endpoints

created_at: number

The Unix timestamp (in seconds) of when the API key was created

last_used_at: number

The Unix timestamp (in seconds) of when the API key was last used.

name: string

The name of the API key

object: "organization.project.api_key"

The object type, which is always organization.project.api_key

owner: object { service_account, type, user }
service_account: optional object { id, created_at, name, role }

The service account that owns a project API key.

id: string

The identifier, which can be referenced in API endpoints

created_at: number

The Unix timestamp (in seconds) of when the service account was created.

name: string

The name of the service account.

role: string

The service account’s project role.

type: optional "user" or "service_account"

user or service_account

"user"
"service_account"
user: optional object { id, created_at, email, 2 more }

The user that owns a project API key.

id: string

The identifier, which can be referenced in API endpoints

created_at: number

The Unix timestamp (in seconds) of when the user was created.

email: string

The email address of the user.

name: string

The name of the user.

role: string

The user’s project role.

redacted_value: string

The redacted value of the API key

ProjectsRate Limits

List project rate limits
$ openai admin:organization:projects:rate-limits list-rate-limits
GET/organization/projects/{project_id}/rate_limits
Modify project rate limit
$ openai admin:organization:projects:rate-limits update-rate-limit
POST/organization/projects/{project_id}/rate_limits/{rate_limit_id}
ModelsExpand Collapse
project_rate_limit: object { id, max_requests_per_1_minute, max_tokens_per_1_minute, 6 more }

Represents a project rate limit config.

id: string

The identifier, which can be referenced in API endpoints.

max_requests_per_1_minute: number

The maximum requests per minute.

max_tokens_per_1_minute: number

The maximum tokens per minute.

model: string

The model this rate limit applies to.

object: "project.rate_limit"

The object type, which is always project.rate_limit

batch_1_day_max_input_tokens: optional number

The maximum batch input tokens per day. Only present for relevant models.

max_audio_megabytes_per_1_minute: optional number

The maximum audio megabytes per minute. Only present for relevant models.

max_images_per_1_minute: optional number

The maximum images per minute. Only present for relevant models.

max_requests_per_1_day: optional number

The maximum requests per day. Only present for relevant models.

ProjectsModel Permissions

Retrieve project model permissions
$ openai admin:organization:projects:model-permissions retrieve
GET/organization/projects/{project_id}/model_permissions
Modify project model permissions
$ openai admin:organization:projects:model-permissions update
POST/organization/projects/{project_id}/model_permissions
Delete project model permissions
$ openai admin:organization:projects:model-permissions delete
DELETE/organization/projects/{project_id}/model_permissions
ModelsExpand Collapse
project_model_permissions: object { mode, model_ids, object }

Represents the model allowlist or denylist policy for a project.

mode: "allow_list" or "deny_list"

Whether the project uses an allowlist or a denylist.

"allow_list"
"deny_list"
model_ids: array of string

The model IDs included in the model permissions policy.

object: "project.model_permissions"

The object type, which is always project.model_permissions.

project_model_permissions_deleted: object { deleted, object }

Confirmation payload returned after deleting project model permissions.

deleted: boolean

Whether the project model permissions were deleted.

object: "project.model_permissions.deleted"

The object type, which is always project.model_permissions.deleted.

ProjectsHosted Tool Permissions

Retrieve project hosted tool permissions
$ openai admin:organization:projects:hosted-tool-permissions retrieve
GET/organization/projects/{project_id}/hosted_tool_permissions
Modify project hosted tool permissions
$ openai admin:organization:projects:hosted-tool-permissions update
POST/organization/projects/{project_id}/hosted_tool_permissions
ModelsExpand Collapse
project_hosted_tool_permissions: object { code_interpreter, file_search, image_generation, 2 more }

Represents hosted tool permissions for a project.

code_interpreter: object { enabled }

Permission state for a single hosted tool on a project.

enabled: boolean

Whether the hosted tool is enabled for the project.

image_generation: object { enabled }

Permission state for a single hosted tool on a project.

enabled: boolean

Whether the hosted tool is enabled for the project.

mcp: object { enabled }

Permission state for a single hosted tool on a project.

enabled: boolean

Whether the hosted tool is enabled for the project.

ProjectsGroups

List project groups
$ openai admin:organization:projects:groups list
GET/organization/projects/{project_id}/groups
Add project group
$ openai admin:organization:projects:groups create
POST/organization/projects/{project_id}/groups
Retrieve project group
$ openai admin:organization:projects:groups retrieve
GET/organization/projects/{project_id}/groups/{group_id}
Remove project group
$ openai admin:organization:projects:groups delete
DELETE/organization/projects/{project_id}/groups/{group_id}
ModelsExpand Collapse
project_group: object { created_at, group_id, group_name, 3 more }

Details about a group’s membership in a project.

created_at: number

Unix timestamp (in seconds) when the group was granted project access.

group_id: string

Identifier of the group that has access to the project.

group_name: string

Display name of the group.

group_type: "group" or "tenant_group"

The type of the group.

"group"
"tenant_group"
object: "project.group"

Always project.group.

project_id: string

Identifier of the project.

ProjectsGroupsRoles

List project group role assignments
$ openai admin:organization:projects:groups:roles list
GET/projects/{project_id}/groups/{group_id}/roles
Assign project role to group
$ openai admin:organization:projects:groups:roles create
POST/projects/{project_id}/groups/{group_id}/roles
Retrieve project group role
$ openai admin:organization:projects:groups:roles retrieve
GET/projects/{project_id}/groups/{group_id}/roles/{role_id}
Unassign project role from group
$ openai admin:organization:projects:groups:roles delete
DELETE/projects/{project_id}/groups/{group_id}/roles/{role_id}

ProjectsRoles

List project roles
$ openai admin:organization:projects:roles list
GET/projects/{project_id}/roles
Create project role
$ openai admin:organization:projects:roles create
POST/projects/{project_id}/roles
Retrieve project role
$ openai admin:organization:projects:roles retrieve
GET/projects/{project_id}/roles/{role_id}
Update project role
$ openai admin:organization:projects:roles update
POST/projects/{project_id}/roles/{role_id}
Delete project role
$ openai admin:organization:projects:roles delete
DELETE/projects/{project_id}/roles/{role_id}

ProjectsData Retention

Retrieve project data retention
$ openai admin:organization:projects:data-retention retrieve
GET/organization/projects/{project_id}/data_retention
Update project data retention
$ openai admin:organization:projects:data-retention update
POST/organization/projects/{project_id}/data_retention
ModelsExpand Collapse
project_data_retention: object { object, type }

Represents a project’s data retention control setting.

object: "project.data_retention"

The object type, which is always project.data_retention.

type: "organization_default" or "none" or "zero_data_retention" or 3 more

The configured project data retention type.

"organization_default"
"none"
"zero_data_retention"
"modified_abuse_monitoring"
"enhanced_zero_data_retention"
"enhanced_modified_abuse_monitoring"

ProjectsSpend Alerts

List project spend alerts
$ openai admin:organization:projects:spend-alerts list
GET/organization/projects/{project_id}/spend_alerts
Create project spend alert
$ openai admin:organization:projects:spend-alerts create
POST/organization/projects/{project_id}/spend_alerts
Retrieve project spend alert
$ openai admin:organization:projects:spend-alerts retrieve
GET/organization/projects/{project_id}/spend_alerts/{alert_id}
Update project spend alert
$ openai admin:organization:projects:spend-alerts update
POST/organization/projects/{project_id}/spend_alerts/{alert_id}
Delete project spend alert
$ openai admin:organization:projects:spend-alerts delete
DELETE/organization/projects/{project_id}/spend_alerts/{alert_id}
ModelsExpand Collapse
project_spend_alert: object { id, currency, interval, 3 more }

Represents a spend alert configured at the project level.

id: string

The identifier, which can be referenced in API endpoints.

currency: "USD"

The currency for the threshold amount.

"USD"
interval: "month"

The time interval for evaluating spend against the threshold.

"month"
notification_channel: object { recipients, type, subject_prefix }

Email notification settings for a spend alert.

recipients: array of string

Email addresses that receive the spend alert notification.

type: "email"

The notification channel type. Currently only email is supported.

subject_prefix: optional string

Optional subject prefix for alert emails.

object: "project.spend_alert"

The object type, which is always project.spend_alert.

threshold_amount: number

The alert threshold amount, in cents.

project_spend_alert_deleted: object { id, deleted, object }

Confirmation payload returned after deleting a project spend alert.

id: string

The deleted spend alert ID.

deleted: boolean

Whether the spend alert was deleted.

object: "project.spend_alert.deleted"

Always project.spend_alert.deleted.

ProjectsCertificates

List project certificates
$ openai admin:organization:projects:certificates list
GET/organization/projects/{project_id}/certificates
Activate certificates for project
$ openai admin:organization:projects:certificates activate
POST/organization/projects/{project_id}/certificates/activate
Deactivate certificates for project
$ openai admin:organization:projects:certificates deactivate
POST/organization/projects/{project_id}/certificates/deactivate