Authenticate a session token or session JWT and retrieve associated session data.
session_duration_minutes is included, update the lifetime of the session to be that many minutes from now.
All timestamps are formatted according to the RFC 3339 standard and are expressed in UTC, e.g. 2021-12-29T12:33:09Z.
This endpoint requires exactly one session_jwt or session_token as part of the request. If both are included, you will receive a too_many_session_arguments error.
You may provide a JWT that needs to be refreshed and is expired according to its exp claim. A new JWT will be returned if both the signature and the underlying Session are still valid. See our sessions guides for more information.Basic authentication header of the form Basic <encoded-value>, where <encoded-value> is the base64-encoded string username:password.
Request type
The session token to authenticate.
Set the session lifetime to be this many minutes from now; minimum of 5 and a maximum of 527040 minutes (366 days). Note that a successful authentication will continue to extend the session this many minutes.
The JWT to authenticate. You may provide a JWT that has expired according to its exp claim and needs to be refreshed. If the signature is valid and the underlying session is still active then Stytch will return a new JWT.
Add a custom claims map to the Session being authenticated. Claims are only created if a Session is initialized by providing a value in session_duration_minutes. Claims will be included on the Session object and in the JWT. To update a key in an existing Session, supply a new value. To delete a key, supply a null value.
Custom claims made with reserved claims ("iss", "sub", "aud", "exp", "nbf", "iat", "jti") will be ignored. Total custom claims size cannot exceed four kilobytes.
If an authorization_check object is passed in, this endpoint will also check if the User is
authorized to perform the given action on the given Resource. A User is authorized if they are assigned a Role with adequate permissions.
If the User is not authorized to perform the specified action on the specified Resource, a 403 error will be thrown. Otherwise, the response will contain a list of Roles that satisfied the authorization check.
Successful response
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.
If you initiate a Session, by including session_duration_minutes in your authenticate call, you'll receive a full Session object in the response.
See Session object for complete response fields.
A secret token for a given Stytch Session.
The JSON Web Token (JWT) for a given Stytch Session.
The user object affected by this API call. See the Get user endpoint for complete response field details.
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.
If an authorization_check is provided in the request and the check succeeds, this field will return
information about why the User was granted permission.