# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for OpenAI Projects API version: 1.0.0 extends: openapi/openai-projects-api-openapi.yml actions: - target: $.info update: x-apievangelist-phrasing: method: generated generated: '2026-09-26' generator: build-phrasing.py label: Generated by API Evangelist operations: 19 - target: $.paths['/organization/projects'].get update: x-apievangelist-phrasing: intent: List the projects in my organization effect: read questions: - Which projects exist in my OpenAI organization? - Can I include archived projects when listing everything in the org? - How do I page through all the projects in my organization? instructions: - text: List every project in my organization. - text: List projects including archived ones, {limit} at a time. slots: limit: query.limit - text: Show the next page of organization projects after {after}. slots: after: query.after method: generated generated: '2026-09-26' - target: $.paths['/organization/projects'].post update: x-apievangelist-phrasing: intent: Create a new project in the organization effect: write questions: - How do I set up a new project in my organization? - Can I pick a data residency geography when I create a project? - Is it possible to delete a project after I create it? instructions: - text: Create a new project called {name}. slots: name: requestBody.name - text: Create project {name} in the {geography} geography. slots: name: requestBody.name geography: requestBody.geography - text: Set up a project named {name} encrypted with external key {external_key_id}. slots: name: requestBody.name external_key_id: requestBody.external_key_id method: generated generated: '2026-09-26' - target: $.paths['/organization/projects/{project_id}'].get update: x-apievangelist-phrasing: intent: Get the details of one project effect: read questions: - What are the name and status of a specific project? - Can I check whether a particular project has been archived? instructions: - text: Show me project {project_id}. slots: project_id: path.project_id - text: Look up the status of project {project_id}. slots: project_id: path.project_id method: generated generated: '2026-09-26' - target: $.paths['/organization/projects/{project_id}'].post update: x-apievangelist-phrasing: intent: Rename or reconfigure an existing project effect: write questions: - How do I rename a project that already exists? - Can I change the encryption key used by an existing project? instructions: - text: Rename project {project_id} to {name}. slots: project_id: path.project_id name: requestBody.name - text: Switch project {project_id} to external key {external_key_id}. slots: project_id: path.project_id external_key_id: requestBody.external_key_id method: generated generated: '2026-09-26' - target: $.paths['/organization/projects/{project_id}/api_keys'].get update: x-apievangelist-phrasing: intent: List the API keys in a project effect: read questions: - Which API keys have been issued inside one of my projects? - Can I audit all the keys that exist for a single project? instructions: - text: List the API keys in project {project_id}. slots: project_id: path.project_id - text: Show {limit} API keys from project {project_id}. slots: limit: query.limit project_id: path.project_id method: generated generated: '2026-09-26' - target: $.paths['/organization/projects/{project_id}/api_keys/{api_key_id}'].get update: x-apievangelist-phrasing: intent: Get details of one project API key effect: read questions: - Who owns a particular API key in my project and when was it created? - Can I look up one project API key by its ID? instructions: - text: Show API key {api_key_id} in project {project_id}. slots: api_key_id: path.api_key_id project_id: path.project_id - text: Check who owns key {api_key_id} in project {project_id}. slots: api_key_id: path.api_key_id project_id: path.project_id method: generated generated: '2026-09-26' - target: $.paths['/organization/projects/{project_id}/api_keys/{api_key_id}'].delete update: x-apievangelist-phrasing: intent: Delete an API key from a project effect: destructive questions: - How do I revoke a leaked API key in one of my projects? - Why can't I delete a project key that belongs to a service account? instructions: - text: Delete API key {api_key_id} from project {project_id}. slots: api_key_id: path.api_key_id project_id: path.project_id - text: Revoke project {project_id}'s key {api_key_id} right away. slots: project_id: path.project_id api_key_id: path.api_key_id method: generated generated: '2026-09-26' - target: $.paths['/organization/projects/{project_id}/archive'].post update: x-apievangelist-phrasing: intent: Archive a project effect: destructive questions: - How do I retire a project I no longer use, since projects can't be deleted? - What happens to a project once it is archived? instructions: - text: Archive project {project_id}. slots: project_id: path.project_id - text: Retire project {project_id} so nobody can use it anymore. slots: project_id: path.project_id method: generated generated: '2026-09-26' - target: $.paths['/organization/projects/{project_id}/rate_limits'].get update: x-apievangelist-phrasing: intent: List per-model rate limits for a project effect: read questions: - What are the per-model rate limits for my project? - Can I see the tokens-per-minute cap each model has in a project? instructions: - text: List the model rate limits for project {project_id}. slots: project_id: path.project_id - text: Show the next page of rate limits for project {project_id} after {after}. slots: project_id: path.project_id after: query.after method: generated generated: '2026-09-26' - target: $.paths['/organization/projects/{project_id}/rate_limits/{rate_limit_id}'].post update: x-apievangelist-phrasing: intent: Change a project's rate limit for a model effect: write questions: - How do I lower the requests per minute a project can make to one model? - Can I cap the daily batch input tokens for a project? - Is it possible to limit image generations per minute at the project level? instructions: - text: Set rate limit {rate_limit_id} in project {project_id} to {max_requests_per_1_minute} requests per minute. slots: rate_limit_id: path.rate_limit_id project_id: path.project_id max_requests_per_1_minute: requestBody.max_requests_per_1_minute - text: Cap tokens per minute at {max_tokens_per_1_minute} for rate limit {rate_limit_id} in project {project_id}. slots: max_tokens_per_1_minute: requestBody.max_tokens_per_1_minute rate_limit_id: path.rate_limit_id project_id: path.project_id - text: Limit project {project_id} to {max_requests_per_1_day} requests a day on rate limit {rate_limit_id}. slots: project_id: path.project_id max_requests_per_1_day: requestBody.max_requests_per_1_day rate_limit_id: path.rate_limit_id method: generated generated: '2026-09-26' - target: $.paths['/organization/projects/{project_id}/service_accounts'].get update: x-apievangelist-phrasing: intent: List service accounts in a project effect: read questions: - Which service accounts exist in one of my projects? - Can I see all the bot accounts attached to a project? instructions: - text: List the service accounts in project {project_id}. slots: project_id: path.project_id - text: Show {limit} service accounts from project {project_id}. slots: limit: query.limit project_id: path.project_id method: generated generated: '2026-09-26' - target: $.paths['/organization/projects/{project_id}/service_accounts'].post update: x-apievangelist-phrasing: intent: Create a service account in a project effect: write questions: - How do I create a non-human account for a project that gets its own API key? - Does creating a service account return its API key in the clear? instructions: - text: Create a service account named {name} in project {project_id}. slots: name: requestBody.name project_id: path.project_id - text: Add a service account {name} to project {project_id} and give me its key. slots: name: requestBody.name project_id: path.project_id method: generated generated: '2026-09-26' - target: $.paths['/organization/projects/{project_id}/service_accounts/{service_account_id}'].get update: x-apievangelist-phrasing: intent: Get details of one project service account effect: read questions: - What role does a specific service account have in my project? - Can I look up a project service account by its ID? instructions: - text: Show service account {service_account_id} in project {project_id}. slots: service_account_id: path.service_account_id project_id: path.project_id - text: Check the role of service account {service_account_id} in project {project_id}. slots: service_account_id: path.service_account_id project_id: path.project_id method: generated generated: '2026-09-26' - target: $.paths['/organization/projects/{project_id}/service_accounts/{service_account_id}'].delete update: x-apievangelist-phrasing: intent: Delete a service account from a project effect: destructive questions: - How do I remove a service account from a project? - Why does deleting a service account fail on an archived project? instructions: - text: Delete service account {service_account_id} from project {project_id}. slots: service_account_id: path.service_account_id project_id: path.project_id - text: Remove bot account {service_account_id} from project {project_id}. slots: service_account_id: path.service_account_id project_id: path.project_id method: generated generated: '2026-09-26' - target: $.paths['/organization/projects/{project_id}/users'].get update: x-apievangelist-phrasing: intent: List the users in a project effect: read questions: - Who are the members of a particular project? - Can I page through every person who has access to a project? instructions: - text: List the users in project {project_id}. slots: project_id: path.project_id - text: Show the next page of project {project_id} members after {after}. slots: project_id: path.project_id after: query.after method: generated generated: '2026-09-26' - target: $.paths['/organization/projects/{project_id}/users'].post update: x-apievangelist-phrasing: intent: Add an organization member to a project effect: write questions: - How do I give a teammate access to one of my projects? - Does someone have to be in the organization before I add them to a project? instructions: - text: Add user {user_id} to project {project_id} as {role}. slots: user_id: requestBody.user_id project_id: path.project_id role: requestBody.role - text: Add {email} to project {project_id} with the {role} role. slots: email: requestBody.email project_id: path.project_id role: requestBody.role method: generated generated: '2026-09-26' - target: $.paths['/organization/projects/{project_id}/users/{user_id}'].get update: x-apievangelist-phrasing: intent: Get one user's membership in a project effect: read questions: - What role does a specific person have in my project? - Can I check whether a given user is a member of a project? instructions: - text: Show user {user_id} in project {project_id}. slots: user_id: path.user_id project_id: path.project_id - text: Check the project role of user {user_id} in project {project_id}. slots: user_id: path.user_id project_id: path.project_id method: generated generated: '2026-09-26' - target: $.paths['/organization/projects/{project_id}/users/{user_id}'].post update: x-apievangelist-phrasing: intent: Change a user's role in a project effect: write questions: - How do I promote a project member to project owner? - Can I downgrade someone's role within a single project? instructions: - text: Change user {user_id}'s role in project {project_id} to {role}. slots: user_id: path.user_id project_id: path.project_id role: requestBody.role - text: Make user {user_id} an owner of project {project_id}. slots: user_id: path.user_id project_id: path.project_id method: generated generated: '2026-09-26' - target: $.paths['/organization/projects/{project_id}/users/{user_id}'].delete update: x-apievangelist-phrasing: intent: Remove a user from a project effect: destructive questions: - How do I take away someone's access to a project without removing them from the org? - Why can't I remove users from an archived project? instructions: - text: Remove user {user_id} from project {project_id}. slots: user_id: path.user_id project_id: path.project_id - text: Revoke user {user_id}'s membership in project {project_id}. slots: user_id: path.user_id project_id: path.project_id method: generated generated: '2026-09-26'