Pulumi OAuthTokenExchange API

The OAuthTokenExchange API from Pulumi — 1 operation(s) for oauthtokenexchange.

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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 API
curl "https://apis.io/api/v1/apis/pulumi-oauthtokenexchange-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

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

Get an API key

Free tier, no email required.

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

OpenAPI Specification

pulumi-oauthtokenexchange-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  description: APIs and Definitions for the Pulumi Cloud product.
  title: Pulumi APIs AccessTokens OAuthTokenExchange API
  version: 1.0.0
tags:
- name: OAuthTokenExchange
paths:
  /api/oauth/token:
    post:
      description: 'Exchanges an external identity provider token for a Pulumi access token using the OAuth 2.0 Token Exchange flow (RFC 8693).


        The request body must include:

        - `audience`: a URN identifying the target org (e.g., `urn:pulumi:org:{ORG_NAME}`)

        - `grant_type`: must be `urn:ietf:params:oauth:grant-type:token-exchange`

        - `subject_token`: the OIDC identity token from the external provider

        - `subject_token_type`: must be `urn:ietf:params:oauth:token-type:id_token`

        - `requested_token_type`: one of `urn:pulumi:token-type:access_token:organization`, `...team`, `...personal`, or `...runner`


        Optional parameters:

        - `scope`: depends on the requested token type. For `organization`, must be empty or `admin`. For `team`, must be `team:TEAM_NAME`. For `personal`, must be `user:USER_LOGIN`. For `runner`, must be `runner:RUNNER_NAME`.

        - `expiration`: token lifetime in seconds


        The response includes `access_token`, `issued_token_type`, `token_type`, `expires_in`, `scope`, and `refresh_token`.'
      operationId: Token
      requestBody:
        content:
          application/json:
            schema:
              additionalProperties:
                type: object
              type: object
        x-originalParamName: body
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenExchangeGrantResponse'
          description: OK
      summary: Token
      tags:
      - OAuthTokenExchange
components:
  schemas:
    TokenExchangeGrantResponse:
      description: https://datatracker.ietf.org/doc/html/rfc8693#section-2.2.1
      properties:
        access_token:
          description: The security token issued by the authorization server.
          type: string
          x-order: 1
        expires_in:
          description: The lifetime in seconds of the access token.
          format: int64
          type: integer
          x-order: 4
        issued_token_type:
          description: The type of the issued token.
          type: string
          x-order: 2
        refresh_token:
          description: The refresh token, if issued.
          type: string
          x-order: 6
        scope:
          description: The scope of the access token.
          type: string
          x-order: 5
        token_type:
          description: The token type (e.g., Bearer).
          type: string
          x-order: 3
      required:
      - access_token
      - expires_in
      - issued_token_type
      - scope
      - token_type
      type: object