OpenAI · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for OpenAI Projects API

20 actions 20 updates phrasing extends openapi/openai-projects-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for OpenAI's API. It is a proposal applied on top of the contract, not a document OpenAI publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 20 · first 16 shown; the file carries all of them

$.info
$.paths['/organization/projects'].get
$.paths['/organization/projects'].post
$.paths['/organization/projects/{project_id}'].get
$.paths['/organization/projects/{project_id}'].post
$.paths['/organization/projects/{project_id}/api_keys'].get
$.paths['/organization/projects/{project_id}/api_keys/{api_key_id}'].get
$.paths['/organization/projects/{project_id}/api_keys/{api_key_id}'].delete
$.paths['/organization/projects/{project_id}/archive'].post
$.paths['/organization/projects/{project_id}/rate_limits'].get
$.paths['/organization/projects/{project_id}/rate_limits/{rate_limit_id}'].post
$.paths['/organization/projects/{project_id}/service_accounts'].get
$.paths['/organization/projects/{project_id}/service_accounts'].post
$.paths['/organization/projects/{project_id}/service_accounts/{service_account_id}'].get
$.paths['/organization/projects/{project_id}/service_accounts/{service_account_id}'].delete
$.paths['/organization/projects/{project_id}/users'].get

OpenAPI Overlay

Raw ↑
# 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'

Work with this as data

Every overlay here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for openapi overlays

4 MCP tools reach this
  • find_overlaysBrowse and filter every overlay in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This overlay
curl "https://apis.io/api/v1/overlays/openai-projects-api-phrasing-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.