Skip to main content
const stytch = require('stytch');

const client = new stytch.B2BClient({
  project_id: '${projectId}',
  secret: '${secret}',
  custom_base_url: '${projectDomain}',
});

const params = {
  token: 'eyJ...',
  client_id: '${exampleConnectedAppClientID}',
  client_secret: '${exampleConnectedAppClientSecret}',
  token_type_hint: 'access_token',
};

const options = {
  authorization_check: {
    organization_id: '${organizationId}',
    resource_id: 'documents',
    action: 'create',
  },
};

client.idp
  .introspectTokenNetwork(params, options)
  .then((resp) => {
    console.log(resp);
  })
  .catch((err) => {
    console.log(err);
  });

{
  "active": true,
  "aud": ["PROJECT_ID"],
  "client_id": "connected-app-test-d731954d-dab3-4a2b-bdee-07f3ad1be888",
  "exp": 1738848103,
  "iat": 1738844503,
  "iss": "https://${projectDomain}",
  "scope": "openid email profile",
  "sub": "member-test-32fc5024-9c09-4da3-bd2e-c9ce4da9375f",
  "token_type": "access_token",
  "request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
  "status_code": 200
}
POST
https://${projectdomain}
/
v1
/
oauth2
/
introspect
const stytch = require('stytch');

const client = new stytch.B2BClient({
  project_id: '${projectId}',
  secret: '${secret}',
  custom_base_url: '${projectDomain}',
});

const params = {
  token: 'eyJ...',
  client_id: '${exampleConnectedAppClientID}',
  client_secret: '${exampleConnectedAppClientSecret}',
  token_type_hint: 'access_token',
};

const options = {
  authorization_check: {
    organization_id: '${organizationId}',
    resource_id: 'documents',
    action: 'create',
  },
};

client.idp
  .introspectTokenNetwork(params, options)
  .then((resp) => {
    console.log(resp);
  })
  .catch((err) => {
    console.log(err);
  });

{
  "active": true,
  "aud": ["PROJECT_ID"],
  "client_id": "connected-app-test-d731954d-dab3-4a2b-bdee-07f3ad1be888",
  "exp": 1738848103,
  "iat": 1738844503,
  "iss": "https://${projectDomain}",
  "scope": "openid email profile",
  "sub": "member-test-32fc5024-9c09-4da3-bd2e-c9ce4da9375f",
  "token_type": "access_token",
  "request_id": "request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141",
  "status_code": 200
}
Examine and introspect a token for the given Connected Apps client. All standard OIDC claims, as well as custom claims, will be returned. The active status can be used to determine if the token is active. This endpoint supports both access tokens and refresh tokens. This endpoint is an RFC-7662 compliant token introspection endpoint.
  • This endpoint supports passing the client_id and client_secret within the request body as well as within a HTTP-Basic Auth header.
  • This endpoint supports the application/x-www-form-urlencoded content type.
We recommend using the Custom Domain whenever possible. For backwards compatibility reasons, this endpoint is also available at https://test.stytch.com/v1/public/${projectId}/oauth2/introspect.

Body

token
string
required
The token to introspect.
token_type_hint
string
required
A hint for the type of the token. Possible values are access_token and refresh_token.
client_id
string
required
The ID of the Connected App client.
client_secret
string
The secret of the Connected App client. Required for confidential clients

Response

active
boolean
Whether the token is active.
scope
string
The scopes granted to the token.
client_id
string
The ID of the Connected App client.
token_type
string
The type of the token. Possible values are access_token and refresh_token.
exp
number
The expiration time of the token, expressed as a Unix timestamp.
iat
number
The time at which the token was issued, expressed as a Unix timestamp.
sub
string
The subject of the token. This is a unique identifier for the user.
iss
string
The issuer of the token. This is the domain of your project, e.g. https://$ by default, or stytch.com/PROJECT_ID if the token was retrieved using the stytch.com domain. See the Custom Domain guide for more information.
aud
string
The audience (client_id) that the token is intended for. Additional custom audiences can be defined for the token by setting the access_token_custom_audience parameter on the client object.
request_id
string
Globally unique UUID that is returned with every API call. This value is important to log for debugging purposes; we may ask for this value to help identify a specific API call when helping you debug an issue.
status_code
number
The HTTP status code of the response. Stytch follows standard HTTP response status code patterns, e.g. 2XX values equate to success, 3XX values are redirects, 4XX are client errors, and 5XX are server errors.