API ReferenceInbound Apps (OAuth)
POST
/oauth2/v1/apps/token

Request Body

application/json

grant_type?string
code?string
client_id?string
client_secret?string
code_verifier?string
scope?string
refresh_token?string
tenantId?string
resource?string

RFC 8707 - OAuth 2.0 Resource Indicators - Token Endpoint only supports receiving a single resource

audience?string
assertion?string
client_assertion_type?string

jwt-spiffe (draft-ietf-oauth-spiffe-client-auth) is accepted only from workloadIdentity apps; the service enforces that.

client_assertion?string
device_code?string
project_id?string
mcp_server_id?string
subject_token?string
subject_token_type?string
auth_req_id?string
requested_token_type?string

RFC 8693 requested_token_type. Empty/access_token => access token (default). id-jag => issue a Cross-App Access Identity Assertion Authorization Grant.

authorization_details?string
session_id?string

Poppy Session to continue; only for the code, device code and refresh token grants

redirect_uri?string

Exchange authorization codes, refresh tokens, client credentials, JWT bearer assertions, and RFC 8693 token-exchange requests for Inbound App access tokens.

Supported grant_type values and examples are documented in Authorization server endpoints and Using Inbound Apps.

curl -X POST "https://api.descope.com/oauth2/v1/apps/token" \  -H "Content-Type: application/json" \  -d '{}'
{  "access_token": "string",  "token_type": "string",  "refresh_token": "string",  "id_token": "string",  "expires_in": 0,  "scope": "string",  "error": "string",  "description": "string",  "issued_token_type": "string",  "authorization_details": {    "values": [      null    ]  },  "session_id": "string",  "signed_in": true,  "refresh_token_expires_in": 0}
export interface Response {access_token?: stringtoken_type?: stringrefresh_token?: stringid_token?: stringexpires_in?: numberscope?: string/** * Those fields are in use just in case of error of device flow scenario (where device polling on the specific error response) */error?: stringdescription?: stringissued_token_type?: stringauthorization_details?: GoogleProtobuf/** * Poppy Session this token belongs to; absent when the request did not use a Poppy Session */session_id?: string/** * Whether the Poppy Session is signed in to an account; absent when the request did not use a Poppy Session */signed_in?: boolean/** * Lifetime in seconds of the refresh token born from a Poppy Session sign-in */refresh_token_expires_in?: number}/** * `ListValue` is a wrapper around a repeated field of values. *  *  The JSON representation for `ListValue` is JSON array. */export interface GoogleProtobuf {/** * Repeated field of dynamically typed values. */values?: {[k: string]: unknown}[]}
Was this helpful?