openapi: 3.0.0
info:
title: OpenAI Assistants Projects API
description: The Assistants API allows you to build AI assistants within your own applications. An Assistant has instructions and can leverage models, tools, and knowledge to respond to user queries. The Assistants API currently supports three types of tools - Code Interpreter, Retrieval, and Function calling. In the future, we plan to release more OpenAI-built tools, and allow you to provide your own tools on our platform.
version: 2.0.0
termsOfService: https://openai.com/policies/terms-of-use
contact:
name: OpenAI Support
url: https://help.openai.com/
license:
name: MIT
url: https://github.com/openai/openai-openapi/blob/master/LICENSE
servers:
- url: https://api.openai.com/v1
security:
- ApiKeyAuth: []
tags:
- name: Projects
paths:
/organization/projects:
get:
summary: Returns a list of projects.
operationId: list-projects
security:
- AdminApiKeyAuth: []
tags:
- Projects
parameters:
- name: limit
in: query
description: 'A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.
'
required: false
schema:
type: integer
default: 20
- name: after
in: query
description: '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.
'
required: false
schema:
type: string
- name: include_archived
in: query
schema:
type: boolean
default: false
description: If `true` returns all projects including those that have been `archived`. Archived projects are not included by default.
responses:
'200':
description: Projects listed successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/ProjectListResponse'
x-oaiMeta:
name: List projects
group: administration
examples:
request:
curl: "curl https://api.openai.com/v1/organization/projects?after=proj_abc&limit=20&include_archived=false \\\n -H \"Authorization: Bearer $OPENAI_ADMIN_KEY\" \\\n -H \"Content-Type: application/json\"\n"
node.js: "import OpenAI from 'openai';\n\nconst client = new OpenAI({\n adminAPIKey: process.env['OPENAI_ADMIN_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const project of client.admin.organization.projects.list()) {\n console.log(project.id);\n}"
python: "import os\nfrom openai import OpenAI\n\nclient = OpenAI(\n admin_api_key=os.environ.get(\"OPENAI_ADMIN_KEY\"), # This is the default and can be omitted\n)\npage = client.admin.organization.projects.list()\npage = page.data[0]\nprint(page.id)"
go: "package main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/openai/openai-go\"\n\t\"github.com/openai/openai-go/option\"\n)\n\nfunc main() {\n\tclient := openai.NewClient(\n\t\toption.WithAdminAPIKey(\"My Admin API Key\"),\n\t)\n\tpage, err := client.Admin.Organization.Projects.List(context.TODO(), openai.AdminOrganizationProjectListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf(\"%+v\\n\", page)\n}\n"
java: "package com.openai.example;\n\nimport com.openai.client.OpenAIClient;\nimport com.openai.client.okhttp.OpenAIOkHttpClient;\nimport com.openai.models.admin.organization.projects.ProjectListPage;\nimport com.openai.models.admin.organization.projects.ProjectListParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n OpenAIClient client = OpenAIOkHttpClient.fromEnv();\n\n ProjectListPage page = client.admin().organization().projects().list();\n }\n}"
ruby: 'require "openai"
openai = OpenAI::Client.new(admin_api_key: "My Admin API Key")
page = openai.admin.organization.projects.list
puts(page)'
response: "{\n \"object\": \"list\",\n \"data\": [\n {\n \"id\": \"proj_abc\",\n \"object\": \"organization.project\",\n \"name\": \"Project example\",\n \"created_at\": 1711471533,\n \"archived_at\": null,\n \"status\": \"active\"\n }\n ],\n \"first_id\": \"proj-abc\",\n \"last_id\": \"proj-xyz\",\n \"has_more\": false\n}\n"
post:
summary: Create a new project in the organization. Projects can be created and archived, but cannot be deleted.
operationId: create-project
security:
- AdminApiKeyAuth: []
tags:
- Projects
requestBody:
description: The project create request payload.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ProjectCreateRequest'
responses:
'200':
description: Project created successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/Project'
x-oaiMeta:
name: Create project
group: administration
examples:
request:
curl: "curl -X POST https://api.openai.com/v1/organization/projects \\\n -H \"Authorization: Bearer $OPENAI_ADMIN_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Project ABC\"\n }'\n"
node.js: "import OpenAI from 'openai';\n\nconst client = new OpenAI({\n adminAPIKey: process.env['OPENAI_ADMIN_KEY'], // This is the default and can be omitted\n});\n\nconst project = await client.admin.organization.projects.create({ name: 'name' });\n\nconsole.log(project.id);"
python: "import os\nfrom openai import OpenAI\n\nclient = OpenAI(\n admin_api_key=os.environ.get(\"OPENAI_ADMIN_KEY\"), # This is the default and can be omitted\n)\nproject = client.admin.organization.projects.create(\n name=\"name\",\n)\nprint(project.id)"
go: "package main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/openai/openai-go\"\n\t\"github.com/openai/openai-go/option\"\n)\n\nfunc main() {\n\tclient := openai.NewClient(\n\t\toption.WithAdminAPIKey(\"My Admin API Key\"),\n\t)\n\tproject, err := client.Admin.Organization.Projects.New(context.TODO(), openai.AdminOrganizationProjectNewParams{\n\t\tName: \"name\",\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf(\"%+v\\n\", project.ID)\n}\n"
java: "package com.openai.example;\n\nimport com.openai.client.OpenAIClient;\nimport com.openai.client.okhttp.OpenAIOkHttpClient;\nimport com.openai.models.admin.organization.projects.Project;\nimport com.openai.models.admin.organization.projects.ProjectCreateParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n OpenAIClient client = OpenAIOkHttpClient.fromEnv();\n\n ProjectCreateParams params = ProjectCreateParams.builder()\n .name(\"name\")\n .build();\n Project project = client.admin().organization().projects().create(params);\n }\n}"
ruby: 'require "openai"
openai = OpenAI::Client.new(admin_api_key: "My Admin API Key")
project = openai.admin.organization.projects.create(name: "name")
puts(project)'
response: "{\n \"id\": \"proj_abc\",\n \"object\": \"organization.project\",\n \"name\": \"Project ABC\",\n \"created_at\": 1711471533,\n \"archived_at\": null,\n \"status\": \"active\"\n}\n"
/organization/projects/{project_id}:
get:
summary: Retrieves a project.
operationId: retrieve-project
security:
- AdminApiKeyAuth: []
tags:
- Projects
parameters:
- name: project_id
in: path
description: The ID of the project.
required: true
schema:
type: string
responses:
'200':
description: Project retrieved successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/Project'
x-oaiMeta:
name: Retrieve project
group: administration
description: Retrieve a project.
examples:
request:
curl: "curl https://api.openai.com/v1/organization/projects/proj_abc \\\n -H \"Authorization: Bearer $OPENAI_ADMIN_KEY\" \\\n -H \"Content-Type: application/json\"\n"
node.js: "import OpenAI from 'openai';\n\nconst client = new OpenAI({\n adminAPIKey: process.env['OPENAI_ADMIN_KEY'], // This is the default and can be omitted\n});\n\nconst project = await client.admin.organization.projects.retrieve('project_id');\n\nconsole.log(project.id);"
python: "import os\nfrom openai import OpenAI\n\nclient = OpenAI(\n admin_api_key=os.environ.get(\"OPENAI_ADMIN_KEY\"), # This is the default and can be omitted\n)\nproject = client.admin.organization.projects.retrieve(\n \"project_id\",\n)\nprint(project.id)"
go: "package main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/openai/openai-go\"\n\t\"github.com/openai/openai-go/option\"\n)\n\nfunc main() {\n\tclient := openai.NewClient(\n\t\toption.WithAdminAPIKey(\"My Admin API Key\"),\n\t)\n\tproject, err := client.Admin.Organization.Projects.Get(context.TODO(), \"project_id\")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf(\"%+v\\n\", project.ID)\n}\n"
java: "package com.openai.example;\n\nimport com.openai.client.OpenAIClient;\nimport com.openai.client.okhttp.OpenAIOkHttpClient;\nimport com.openai.models.admin.organization.projects.Project;\nimport com.openai.models.admin.organization.projects.ProjectRetrieveParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n OpenAIClient client = OpenAIOkHttpClient.fromEnv();\n\n Project project = client.admin().organization().projects().retrieve(\"project_id\");\n }\n}"
ruby: 'require "openai"
openai = OpenAI::Client.new(admin_api_key: "My Admin API Key")
project = openai.admin.organization.projects.retrieve("project_id")
puts(project)'
response: "{\n \"id\": \"proj_abc\",\n \"object\": \"organization.project\",\n \"name\": \"Project example\",\n \"created_at\": 1711471533,\n \"archived_at\": null,\n \"status\": \"active\"\n}\n"
post:
summary: Modifies a project in the organization.
operationId: modify-project
security:
- AdminApiKeyAuth: []
tags:
- Projects
parameters:
- name: project_id
in: path
description: The ID of the project.
required: true
schema:
type: string
requestBody:
description: The project update request payload.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ProjectUpdateRequest'
responses:
'200':
description: Project updated successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/Project'
'400':
description: Error response when updating the default project.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
x-oaiMeta:
name: Modify project
group: administration
examples:
request:
curl: "curl -X POST https://api.openai.com/v1/organization/projects/proj_abc \\\n -H \"Authorization: Bearer $OPENAI_ADMIN_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"Project DEF\"\n }'\n"
node.js: "import OpenAI from 'openai';\n\nconst client = new OpenAI({\n adminAPIKey: process.env['OPENAI_ADMIN_KEY'], // This is the default and can be omitted\n});\n\nconst project = await client.admin.organization.projects.update('project_id');\n\nconsole.log(project.id);"
python: "import os\nfrom openai import OpenAI\n\nclient = OpenAI(\n admin_api_key=os.environ.get(\"OPENAI_ADMIN_KEY\"), # This is the default and can be omitted\n)\nproject = client.admin.organization.projects.update(\n project_id=\"project_id\",\n)\nprint(project.id)"
go: "package main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/openai/openai-go\"\n\t\"github.com/openai/openai-go/option\"\n)\n\nfunc main() {\n\tclient := openai.NewClient(\n\t\toption.WithAdminAPIKey(\"My Admin API Key\"),\n\t)\n\tproject, err := client.Admin.Organization.Projects.Update(\n\t\tcontext.TODO(),\n\t\t\"project_id\",\n\t\topenai.AdminOrganizationProjectUpdateParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf(\"%+v\\n\", project.ID)\n}\n"
java: "package com.openai.example;\n\nimport com.openai.client.OpenAIClient;\nimport com.openai.client.okhttp.OpenAIOkHttpClient;\nimport com.openai.models.admin.organization.projects.Project;\nimport com.openai.models.admin.organization.projects.ProjectUpdateParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n OpenAIClient client = OpenAIOkHttpClient.fromEnv();\n\n Project project = client.admin().organization().projects().update(\"project_id\");\n }\n}"
ruby: 'require "openai"
openai = OpenAI::Client.new(admin_api_key: "My Admin API Key")
project = openai.admin.organization.projects.update("project_id")
puts(project)'
response: ''
/organization/projects/{project_id}/api_keys:
get:
security:
- AdminApiKeyAuth: []
summary: Returns a list of API keys in the project.
operationId: list-project-api-keys
tags:
- Projects
parameters:
- name: project_id
in: path
description: The ID of the project.
required: true
schema:
type: string
- name: limit
in: query
description: 'A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.
'
required: false
schema:
type: integer
default: 20
- name: after
in: query
description: '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.
'
required: false
schema:
type: string
responses:
'200':
description: Project API keys listed successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/ProjectApiKeyListResponse'
x-oaiMeta:
name: List project API keys
group: administration
examples:
request:
curl: "curl https://api.openai.com/v1/organization/projects/proj_abc/api_keys?after=key_abc&limit=20 \\\n -H \"Authorization: Bearer $OPENAI_ADMIN_KEY\" \\\n -H \"Content-Type: application/json\"\n"
node.js: "import OpenAI from 'openai';\n\nconst client = new OpenAI({\n adminAPIKey: process.env['OPENAI_ADMIN_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const projectAPIKey of client.admin.organization.projects.apiKeys.list('project_id')) {\n console.log(projectAPIKey.id);\n}"
python: "import os\nfrom openai import OpenAI\n\nclient = OpenAI(\n admin_api_key=os.environ.get(\"OPENAI_ADMIN_KEY\"), # This is the default and can be omitted\n)\npage = client.admin.organization.projects.api_keys.list(\n project_id=\"project_id\",\n)\npage = page.data[0]\nprint(page.id)"
go: "package main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/openai/openai-go\"\n\t\"github.com/openai/openai-go/option\"\n)\n\nfunc main() {\n\tclient := openai.NewClient(\n\t\toption.WithAdminAPIKey(\"My Admin API Key\"),\n\t)\n\tpage, err := client.Admin.Organization.Projects.APIKeys.List(\n\t\tcontext.TODO(),\n\t\t\"project_id\",\n\t\topenai.AdminOrganizationProjectAPIKeyListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf(\"%+v\\n\", page)\n}\n"
java: "package com.openai.example;\n\nimport com.openai.client.OpenAIClient;\nimport com.openai.client.okhttp.OpenAIOkHttpClient;\nimport com.openai.models.admin.organization.projects.apikeys.ApiKeyListPage;\nimport com.openai.models.admin.organization.projects.apikeys.ApiKeyListParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n OpenAIClient client = OpenAIOkHttpClient.fromEnv();\n\n ApiKeyListPage page = client.admin().organization().projects().apiKeys().list(\"project_id\");\n }\n}"
ruby: 'require "openai"
openai = OpenAI::Client.new(admin_api_key: "My Admin API Key")
page = openai.admin.organization.projects.api_keys.list("project_id")
puts(page)'
response: "{\n \"object\": \"list\",\n \"data\": [\n {\n \"object\": \"organization.project.api_key\",\n \"redacted_value\": \"sk-abc...def\",\n \"name\": \"My API Key\",\n \"created_at\": 1711471533,\n \"last_used_at\": 1711471534,\n \"id\": \"key_abc\",\n \"owner\": {\n \"type\": \"user\",\n \"user\": {\n \"id\": \"user_abc\",\n \"name\": \"First Last\",\n \"email\": \"user@example.com\",\n \"role\": \"owner\",\n \"created_at\": 1711471533\n }\n }\n }\n ],\n \"first_id\": \"key_abc\",\n \"last_id\": \"key_xyz\",\n \"has_more\": false\n}\n"
/organization/projects/{project_id}/api_keys/{api_key_id}:
get:
security:
- AdminApiKeyAuth: []
summary: Retrieves an API key in the project.
operationId: retrieve-project-api-key
tags:
- Projects
parameters:
- name: project_id
in: path
description: The ID of the project.
required: true
schema:
type: string
- name: api_key_id
in: path
description: The ID of the API key.
required: true
schema:
type: string
responses:
'200':
description: Project API key retrieved successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/ProjectApiKey'
x-oaiMeta:
name: Retrieve project API key
group: administration
examples:
request:
curl: "curl https://api.openai.com/v1/organization/projects/proj_abc/api_keys/key_abc \\\n -H \"Authorization: Bearer $OPENAI_ADMIN_KEY\" \\\n -H \"Content-Type: application/json\"\n"
node.js: "import OpenAI from 'openai';\n\nconst client = new OpenAI({\n adminAPIKey: process.env['OPENAI_ADMIN_KEY'], // This is the default and can be omitted\n});\n\nconst projectAPIKey = await client.admin.organization.projects.apiKeys.retrieve('api_key_id', {\n project_id: 'project_id',\n});\n\nconsole.log(projectAPIKey.id);"
python: "import os\nfrom openai import OpenAI\n\nclient = OpenAI(\n admin_api_key=os.environ.get(\"OPENAI_ADMIN_KEY\"), # This is the default and can be omitted\n)\nproject_api_key = client.admin.organization.projects.api_keys.retrieve(\n api_key_id=\"api_key_id\",\n project_id=\"project_id\",\n)\nprint(project_api_key.id)"
go: "package main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/openai/openai-go\"\n\t\"github.com/openai/openai-go/option\"\n)\n\nfunc main() {\n\tclient := openai.NewClient(\n\t\toption.WithAdminAPIKey(\"My Admin API Key\"),\n\t)\n\tprojectAPIKey, err := client.Admin.Organization.Projects.APIKeys.Get(\n\t\tcontext.TODO(),\n\t\t\"project_id\",\n\t\t\"api_key_id\",\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf(\"%+v\\n\", projectAPIKey.ID)\n}\n"
java: "package com.openai.example;\n\nimport com.openai.client.OpenAIClient;\nimport com.openai.client.okhttp.OpenAIOkHttpClient;\nimport com.openai.models.admin.organization.projects.apikeys.ApiKeyRetrieveParams;\nimport com.openai.models.admin.organization.projects.apikeys.ProjectApiKey;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n OpenAIClient client = OpenAIOkHttpClient.fromEnv();\n\n ApiKeyRetrieveParams params = ApiKeyRetrieveParams.builder()\n .projectId(\"project_id\")\n .apiKeyId(\"api_key_id\")\n .build();\n ProjectApiKey projectApiKey = client.admin().organization().projects().apiKeys().retrieve(params);\n }\n}"
ruby: 'require "openai"
openai = OpenAI::Client.new(admin_api_key: "My Admin API Key")
project_api_key = openai.admin.organization.projects.api_keys.retrieve("api_key_id", project_id: "project_id")
puts(project_api_key)'
response: "{\n \"object\": \"organization.project.api_key\",\n \"redacted_value\": \"sk-abc...def\",\n \"name\": \"My API Key\",\n \"created_at\": 1711471533,\n \"last_used_at\": 1711471534,\n \"id\": \"key_abc\",\n \"owner\": {\n \"type\": \"user\",\n \"user\": {\n \"id\": \"user_abc\",\n \"name\": \"First Last\",\n \"email\": \"user@example.com\",\n \"role\": \"owner\",\n \"created_at\": 1711471533\n }\n }\n}\n"
delete:
security:
- AdminApiKeyAuth: []
summary: 'Deletes an API key from the project.
Returns confirmation of the key deletion, or an error if the key belonged to
a service account.
'
operationId: delete-project-api-key
tags:
- Projects
parameters:
- name: project_id
in: path
description: The ID of the project.
required: true
schema:
type: string
- name: api_key_id
in: path
description: The ID of the API key.
required: true
schema:
type: string
responses:
'200':
description: Project API key deleted successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/ProjectApiKeyDeleteResponse'
'400':
description: Error response for various conditions.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
x-oaiMeta:
name: Delete project API key
group: administration
examples:
request:
curl: "curl -X DELETE https://api.openai.com/v1/organization/projects/proj_abc/api_keys/key_abc \\\n -H \"Authorization: Bearer $OPENAI_ADMIN_KEY\" \\\n -H \"Content-Type: application/json\"\n"
node.js: "import OpenAI from 'openai';\n\nconst client = new OpenAI({\n adminAPIKey: process.env['OPENAI_ADMIN_KEY'], // This is the default and can be omitted\n});\n\nconst apiKey = await client.admin.organization.projects.apiKeys.delete('api_key_id', {\n project_id: 'project_id',\n});\n\nconsole.log(apiKey.id);"
python: "import os\nfrom openai import OpenAI\n\nclient = OpenAI(\n admin_api_key=os.environ.get(\"OPENAI_ADMIN_KEY\"), # This is the default and can be omitted\n)\napi_key = client.admin.organization.projects.api_keys.delete(\n api_key_id=\"api_key_id\",\n project_id=\"project_id\",\n)\nprint(api_key.id)"
go: "package main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/openai/openai-go\"\n\t\"github.com/openai/openai-go/option\"\n)\n\nfunc main() {\n\tclient := openai.NewClient(\n\t\toption.WithAdminAPIKey(\"My Admin API Key\"),\n\t)\n\tapiKey, err := client.Admin.Organization.Projects.APIKeys.Delete(\n\t\tcontext.TODO(),\n\t\t\"project_id\",\n\t\t\"api_key_id\",\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf(\"%+v\\n\", apiKey.ID)\n}\n"
java: "package com.openai.example;\n\nimport com.openai.client.OpenAIClient;\nimport com.openai.client.okhttp.OpenAIOkHttpClient;\nimport com.openai.models.admin.organization.projects.apikeys.ApiKeyDeleteParams;\nimport com.openai.models.admin.organization.projects.apikeys.ApiKeyDeleteResponse;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n OpenAIClient client = OpenAIOkHttpClient.fromEnv();\n\n ApiKeyDeleteParams params = ApiKeyDeleteParams.builder()\n .projectId(\"project_id\")\n .apiKeyId(\"api_key_id\")\n .build();\n ApiKeyDeleteResponse apiKey = client.admin().organization().projects().apiKeys().delete(params);\n }\n}"
ruby: 'require "openai"
openai = OpenAI::Client.new(admin_api_key: "My Admin API Key")
api_key = openai.admin.organization.projects.api_keys.delete("api_key_id", project_id: "project_id")
puts(api_key)'
response: "{\n \"object\": \"organization.project.api_key.deleted\",\n \"id\": \"key_abc\",\n \"deleted\": true\n}\n"
/organization/projects/{project_id}/archive:
post:
summary: Archives a project in the organization. Archived projects cannot be used or updated.
operationId: archive-project
security:
- AdminApiKeyAuth: []
tags:
- Projects
parameters:
- name: project_id
in: path
description: The ID of the project.
required: true
schema:
type: string
responses:
'200':
description: Project archived successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/Project'
x-oaiMeta:
name: Archive project
group: administration
examples:
request:
curl: "curl -X POST https://api.openai.com/v1/organization/projects/proj_abc/archive \\\n -H \"Authorization: Bearer $OPENAI_ADMIN_KEY\" \\\n -H \"Content-Type: application/json\"\n"
node.js: "import OpenAI from 'openai';\n\nconst client = new OpenAI({\n adminAPIKey: process.env['OPENAI_ADMIN_KEY'], // This is the default and can be omitted\n});\n\nconst project = await client.admin.organization.projects.archive('project_id');\n\nconsole.log(project.id);"
python: "import os\nfrom openai import OpenAI\n\nclient = OpenAI(\n admin_api_key=os.environ.get(\"OPENAI_ADMIN_KEY\"), # This is the default and can be omitted\n)\nproject = client.admin.organization.projects.archive(\n \"project_id\",\n)\nprint(project.id)"
go: "package main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/openai/openai-go\"\n\t\"github.com/openai/openai-go/option\"\n)\n\nfunc main() {\n\tclient := openai.NewClient(\n\t\toption.WithAdminAPIKey(\"My Admin API Key\"),\n\t)\n\tproject, err := client.Admin.Organization.Projects.Archive(context.TODO(), \"project_id\")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf(\"%+v\\n\", project.ID)\n}\n"
java: "package com.openai.example;\n\nimport com.openai.client.OpenAIClient;\nimport com.openai.client.okhttp.OpenAIOkHttpClient;\nimport com.openai.models.admin.organization.projects.Project;\nimport com.openai.models.admin.organization.projects.ProjectArchiveParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n OpenAIClient client = OpenAIOkHttpClient.fromEnv();\n\n Project project = client.admin().organization().projects().archive(\"project_id\");\n }\n}"
ruby: 'require "openai"
openai = OpenAI::Client.new(admin_api_key: "My Admin API Key")
project = openai.admin.organization.projects.archive("project_id")
puts(project)'
response: "{\n \"id\": \"proj_abc\",\n \"object\": \"organization.project\",\n \"name\": \"Project DEF\",\n \"created_at\": 1711471533,\n \"archived_at\": 1711471533,\n \"status\": \"archived\"\n}\n"
/organization/projects/{project_id}/rate_limits:
get:
security:
- AdminApiKeyAuth: []
summary: Returns the rate limits per model for a project.
operationId: list-project-rate-limits
tags:
- Projects
parameters:
- name: project_id
in: path
description: The ID of the project.
required: true
schema:
type: string
- name: limit
in: query
description: 'A limit on the number of objects to be returned. The default is 100.
'
required: false
schema:
type: integer
default: 100
- name: after
in: query
description: '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.
'
required: false
schema:
type: string
- name: before
in: query
description: '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, beginning with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list.
'
required: false
schema:
type: string
responses:
'200':
description: Project rate limits listed successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/ProjectRateLimitListResponse'
x-oaiMeta:
name: List project rate limits
group: administration
examples:
request:
curl: "curl https://api.openai.com/v1/organization/projects/proj_abc/rate_limits?after=rl_xxx&limit=20 \\\n -H \"Authorization: Bearer $OPENAI_ADMIN_KEY\" \\\n -H \"Content-Type: application/json\"\n"
node.js: "import OpenAI from 'openai';\n\nconst client = new OpenAI({\n adminAPIKey: process.env['OPENAI_ADMIN_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const projectRateLimit of client.admin.organization.projects.rateLimits.listRateLimits(\n 'project_id',\n)) {\n console.log(projectRateLimit.id);\n}"
python: "import os\nfrom openai import OpenAI\n\nclient = OpenAI(\n admin_api_key=os.environ.get(\"OPENAI_ADMIN_KEY\"), # This is the default and can be omitted\n)\npage = client.admin.organization.projects.rate_limits.list_rate_limits(\n project_id=\"project_id\",\n)\npage = page.data[0]\nprint(page.id)"
go: "package main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/openai/openai-go\"\n\t\"github.com/openai/openai-go/option\"\n)\n\nfunc main() {\n\tclient := openai.NewClient(\n\t\toption.WithAdminAPIKey(\"My Admin API Key\"),\n\t)\n\tpage, err := client.Admin.Organization.Projects.RateLimits.ListRateLimits(\n\t\tcontext.TODO(),\n\t\t\"project_id\",\n\t\topenai.AdminOrganizationProjectRateLimitListRateLimitsParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf(\"%+v\\n\", page)\n}\n"
java: "package com.openai.example;\n\nimport com.openai.client.OpenAIClient;\nimport com.openai.client.okhttp.OpenAIOkHttpClient;\nimport com.openai.models.admin.organization.projects.ratelimits.RateLimitListRateLimitsPage;\nimport com.openai.models.admin.organization.projects.ratelimits.RateLimitListRateLimitsParams;\n\npublic final class Main {\n private Main() {}\n\n public static void main(String[] args) {\n
# --- truncated at 32 KB (97 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/openai/refs/heads/main/openapi/openai-projects-api-openapi.yml