How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Descope Auth API

The Auth API from Descope — 52 operation(s) for auth.

Descope Auth API is one of 15 APIs that Descope publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include Authentication. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, and an API reference.

This API exposes 68 operations across 62 paths, and defines 82 schemas. It is described by OpenAPI 3.2.0, at version 0.0.1.

Requests are made against 2 base URLs: https://api.descope.com, {customUrl}.

68 operations 62 paths 82 schemas 12 GET56 POST

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.2.0
API Version
0.0.1
Base URL
https://api.descope.com
Authentication
HTTP Bearer, HTTP Bearer, HTTP Bearer, HTTP Bearer, HTTP Bearer, HTTP Bearer, HTTP Bearer, HTTP Bearer, HTTP Bearer, HTTP Bearer
Contact
Resource Areas
1

Authentication & Security 10

Descope Auth API declares 10 security schemes for authenticating requests. It accepts HTTP bearer tokens (Project ID) (Descope_Project_ID). It accepts HTTP bearer tokens (Project ID:Refresh JWT) (Descope_Project_ID_Refresh_JWT). It accepts HTTP bearer tokens (ProjectId:AccessKey) (Descope_Project_ID_Access_Key). It accepts HTTP bearer tokens (Project ID:Session JWT) (Descope_Project_ID_Session_JWT). It accepts HTTP bearer tokens (ProjectId:ManagementKey) (Descope_Project_ID_and_Management_Key). It accepts HTTP bearer tokens (Project ID) (Descope Project ID). It accepts HTTP bearer tokens (Project ID:Refresh JWT) (Descope Project ID:Refresh JWT). It accepts HTTP bearer tokens (Project ID:Session JWT) (Descope Project ID:Session JWT). It accepts HTTP bearer tokens (ProjectId:ManagementKey) (Descope Project ID and Management Key). It accepts HTTP bearer tokens (ProjectId:AccessKey) (Descope Project ID:Access Key). By default, every request must be authenticated.

  • Descope_Project_ID — Project ID as bearer token.
  • Descope_Project_ID_Refresh_JWT — Project ID:Refresh JWT as bearer token.
  • Descope_Project_ID_Access_Key — Project ID:Access Key as bearer token.
  • Descope_Project_ID_Session_JWT — Project ID:Session JWT as bearer token.
  • Descope_Project_ID_and_Management_Key — Project ID:Management Key as bearer token.
  • Descope Project ID — Project ID as bearer token.
  • Descope Project ID:Refresh JWT — Project ID:Refresh JWT as bearer token.
  • Descope Project ID:Session JWT — Project ID:Session JWT as bearer token.
  • Descope Project ID and Management Key — Project ID:Management Key as bearer token.
  • Descope Project ID:Access Key — Project ID:Access Key as bearer token.

Paths & Operations 68

Across 62 paths, the API surfaces 68 operations — 12 GET, 56 POST. Each is listed below with its method, path, parameters, and response codes.

Auth 68
GET
/v1/auth/saml/idp/initiate
SAML IDP Initiate Redirect
SAMLIDPInitiateHTTPRedirectBinding 6 params → 200
POST
/v1/auth/saml/idp/initiate
SAML IDP Initiate POST
SAMLIDPInitiateHTTPPostBinding body → 200
GET
/v1/auth/saml/idp/sso
SAML IDP Redirect Binding
SAMLIDPHTTPRedirectBinding 8 params → 200
POST
/v1/auth/saml/idp/sso
SAML IDP POST Binding
SAMLIDPHTTPPostBinding 1 param body → 200
POST
/v1/auth/saml/idp/sso-finish
SAML IDP Finish
SAMLIDPFinishEndpoint body → 200
GET
/v1/auth/wsfed/idp/initiate
WS-Fed IDP Initiate
WSFedIDPInitiateGet 3 params → 200
POST
/v1/auth/wsfed/idp/initiate
WS-Fed IDP Initiate
WSFedIDPInitiatePost body → 200
GET
/v1/auth/wsfed/idp/sso
WS-Fed IDP Passive
WSFedIDPPassiveGet 8 params → 200
POST
/v1/auth/wsfed/idp/sso
WS-Fed IDP Passive
WSFedIDPPassivePost body → 200
POST
/v1/auth/wsfed/idp/sso-finish
WS-Fed IDP Finish
WSFedIDPFinishEndpoint body → 200
POST
/v1/auth/accesskey/exchange
Exchange Key
ExchangeAccessKey body → 200
POST
/v1/auth/enchantedlink/signup/email
Sign-Up
SignUpEnchantedLink body → 200
POST
/v1/auth/enchantedlink/signin/email
Sign-In
SignInEnchantedLinkEmail body → 200
POST
/v1/auth/enchantedlink/signup-in/email
Sign-In with Auto Sign-Up
SignUpOrInEnchantedLinkEmail body → 200
POST
/v1/auth/enchantedlink/verify
Verify Token
VerifyEnchantedLink body → 200
POST
/v1/auth/enchantedlink/pending-session
Poll Session
GetEnchantedLinkSession body → 200
POST
/v1/auth/enchantedlink/update/email
Update Email
UpdateUserEmailEnchantedLink body → 200
POST
/v1/auth/refresh
Refresh Session
RefreshSession body → 200
POST
/v1/auth/try-refresh
Try Refresh Session
TryRefreshSession body → 200
GET
/v1/auth/me
My Details
Me → 200
GET
/v1/auth/me/history
Get Session History
MeAuthHistory → 200
POST
/v1/auth/tenant/select
Select an active tenant
SelectTenant body → 200
GET
/v1/auth/idp/sso/logout
Logout
IDPSSOLogoutGet 1 param → 200
POST
/v1/auth/idp/sso/logout
Logout
IDPSSOLogoutPost body → 200
POST
/v1/auth/logout
Sign-Out
Logout body → 200
POST
/v1/auth/logoutall
Sign-Out All Active Sessions
LogoutAllDevices body → 200
POST
/v1/auth/validate
Validate Session
ValidateSession body → 200
POST
/v1/auth/notp/{provider}/signup
Sign-Up
SignUpNOTP 1 param body → 200
POST
/v1/auth/notp/{provider}/signin
Sign-In
SignInNOTP 1 param body → 200
POST
/v1/auth/notp/{provider}/signup-in
Sign-In with Auto Sign-Up
SignUpOrInNOTP 1 param body → 200
POST
/v1/auth/notp/{provider}/update
Update User NOTP
UpdateUserNOTP 1 param body → 200
POST
/v1/auth/notp/pending-session
Get NoTP Pending Session
GetNOTPSession body → 200
POST
/v1/auth/oauth/authorize
Sign-Up / Sign-In
AuthorizeOAuth 7 params body → 200
POST
/v1/auth/oauth/authorize/signin
Create Redirect URI for Sign-In Request
CreateOAuthRedirectURISignin 7 params body → 200
POST
/v1/auth/oauth/authorize/signup
Create Redirect URI for Sign-Up Request
CreateOAuthRedirectURISignup 7 params body → 200
POST
/v1/auth/oauth/authorize/update
Creating OAuth redirect URI for update user request
CreateOAuthRedirectURIUpdateUser 6 params body → 200
POST
/v1/auth/oauth/native/start
Starts a full OAuth flow using native APIs
OAuthNativeStart body → 200
POST
/v1/auth/oauth/exchange
Exchange Code
ExchangeCodeoauth body → 200
POST
/v1/auth/oauth/native/finish
Finishes a full OAuth flow using native APIs
OAuthNativeFinish body → 200
POST
/v1/auth/onetap/idtoken/exchange
Exchanges one tap id token for a JWT
ExchangeOneTapIDToken body → 200
POST
/v1/auth/onetap/idtoken/verify
Verifies one tap id token for a code
VerifyOneTapIDToken body → 200
GET
/v1/auth/onetap/clientid/{provider}
Get Google One Tap Client ID Configuration
GetOneTapClientID 1 param → 200
POST
/v1/auth/password/signup
Sign-Up User
SignUpPassword body → 200
POST
/v1/auth/password/signin
Sign-In User
SignInPassword body → 200
POST
/v1/auth/password/replace
Replace Password
ReplaceUserPassword body → 200
POST
/v1/auth/password/update
Update Password
UpdateUserPassword body → 200
GET
/v1/auth/password/policy
Get Password Policy
GetPasswordPolicy → 200
POST
/v1/auth/recovery-codes
Generate recovery codes for a user
GenerateUserRecoveryCodes body → 200
POST
/v1/auth/recovery-codes/signin
Sign in a user using a recovery code
SignInRecoveryCode body → 200
POST
/v1/auth/saml/authorize
Creating SAML redirect URI
CreateSAMLRedirect 84 params body → 200
POST
/v1/auth/saml/exchange
Finalize SAML authentication
ExchangeToken body → 200
GET
/v1/auth/saml/idp/metadata
IDP Metadata URL for external SAML services
SAMLIDPMetadata 1 param → 200
POST
/v1/auth/security-questions/setup
Sets up security questions for a user
SetupUserSecurityQuestions body → 200
GET
/v1/auth/security-questions/verify
Get the security questions for a user to verify
GetUserSecurityVerifyQuestions → 200
POST
/v1/auth/security-questions/verify
Verifies the security questions for a user
VerifyUserSecurityQuestions body → 200
POST
/v1/auth/sso/authorize
Start SSO
AuthorizeSAML 84 params body → 200
POST
/v1/auth/sso/exchange
Exchange SSO Code
ExchangeCodesso body → 200
POST
/v1/auth/totp/signup
Sign-Up
SignUpTOTP body → 200
POST
/v1/auth/totp/verify
Sign-In / Verify
VerifyCodeTOTP body → 200
POST
/v1/auth/totp/update
Add / Update Key
UpdateUserTOTP body → 200
POST
/v1/auth/webauthn/signup/start
User Sign-Up
WebAuthnSignupStart body → 200
POST
/v1/auth/webauthn/signup/finish
Finalize Sign-Up
WebAuthnSignupFinish body → 200
POST
/v1/auth/webauthn/signin/start
User Sign-In
WebAuthnSigninStart body → 200
POST
/v1/auth/webauthn/signin/finish
Finalize Sign-In
WebAuthnSigninFinish body → 200
POST
/v1/auth/webauthn/signup-in/start
User Sign-In with Auto Sign-Up
WebAuthnSignUpInStart body → 200
POST
/v1/auth/webauthn/update/start
Add WebAuthn Device
WebAuthnDeviceAddStart body → 200
POST
/v1/auth/webauthn/update/finish
Finalize Add WebAuthn
WebAuthnDeviceAddFinish body → 200
GET
/v1/auth/wsfed/idp/metadata
WS-Fed IDP Metadata
WSFedIDPMetadata 1 param → 200

Schemas 82

The contract defines 82 schemas that model the data the API accepts and returns. The most detailed are ResponseUser (34 properties), JWTResponse (19 properties), OptionalJWTResponse (15 properties), UpdateUserNOTPRequest (11 properties). Each schema is shown below with its type and property counts.

SetupUserSecurityQuestionsRequest
object
Setup Questions
2 properties
ExchangeOneTapIDTokenRequest
object
4 properties
OAuthRedirectResponse
object
2 properties
GenerateUserRecoveryCodesRequest
object
1 property
ExchangeAccessKeyRequest
object
1 property
VerifyUserSecurityQuestionsRequest
object
Verify Questions
3 properties
SAMLIDPMetadataResponse
object
1 property
VerifyEnchantedLinkRequest
object
2 properties
WebauthnAddDeviceFinishResponse
object
NOTPSignInRequest
object
6 properties
SAMLRedirectResponse
object
1 property
GetOneTapClientIDResponse
object
1 property
EnchantedLinkSignInRequest
object
6 properties
WebauthnSignUpOrInStartRequest
object
5 properties
GetUserSecurityVerifyQuestionsResponse
object
1 property
WSFedIDPMetadataResponse
object
1 property
SecurityQuestion
object
Same as service service's SecurityQuestion, but we don't want to depend on project service
2 properties
WebauthnSignUpStartRequest
object
5 properties
TOTPUpdateRequest
object
1 property
PasswordSignInRequest
object
4 properties
WSFedIDPInitiateRequest
object
3 properties
SetupUserSecurityQuestionsResponse
object
PasskeyOptions_WebauthnAuthenticatorSelectionCriteria
object
5 properties
SecurityQuestionAnswer
object
2 properties
MeAuthHistoryResponse
object
1 property
SAMLIDPSSORequestPOSTData
object
7 properties
OAuthNativeStartRequest
object
4 properties
RecoveryCode
object
1 property
SAMLIDPFinishEndpointRequest
object
3 properties
LogoutRequest
object
1 property
SAMLIDPFinishEndpointResponse
object
4 properties
WebauthnSignInStartRequest
object
4 properties
PasskeyOptions
object
4 properties
NOTPLinkResponse
object
3 properties
ExchangeAccessKeyResponse
object
2 properties
JWTResponse
object
NOTE: if you add a new field to this message, also add it to the OptionalJWTResponse message
19 properties
GetNOTPSessionRequest
object
1 property
WSFedIDPPassiveRequest
object
8 properties
WebauthnSignInFinishRequest
object
2 properties
OAuthNativeFinishRequest
object
5 properties
ExportedAuthHistory
object
6 properties
WSFedIDPFinishEndpointResponse
object
4 properties
OAuthNativeStartResponse
object
5 properties
UpdateUserEmailEnchantedLinkRequest
object
9 properties
IDPSSOLogoutRequest
object
1 property
WebauthnStartResponse
object
3 properties
NOTPTemplateIDs
object
NOTP Requests & Responses
3 properties
VerifyEnchantedLinkResponse
object
NOTPSignUpRequest
object
8 properties
RefreshSessionRequest
object
1 property
AccessKeyLoginOptions
object
2 properties
WebauthnAddDeviceFinishRequest
object
2 properties
WebauthnSignUpFinishRequest
object
2 properties
ExchangeTokenRequest
object
1 property
UserTenants
object
4 properties
SAMLIDPInitiateRequestPOST
object
6 properties
TOTPVerifyCodeRequest
object
3 properties
SignInRecoveryCodeRequest
object
3 properties
OptionalJWTResponse
object
This is a copy of JWTResponse with all fields optional This is used so in case an empty response is returned, it won't send zero values
15 properties
WebauthnAddDeviceStartRequest
object
3 properties
PasswordSignUpRequest
object
4 properties
SelectTenantRequest
object
1 property
TOTPResponse
object
3 properties
ValidateSessionRequest
object
LoginOptions
object
10 properties
VerifyOneTapIDTokenResponse
object
1 property
ValidateSessionResponse
object
1 property
PasswordReplaceRequest
object
5 properties
WSFedIDPFinishEndpointRequest
object
2 properties
UpdateUserNOTPRequest
object
11 properties
SignupLoginOptions
object
5 properties
TOTPSignUpRequest
object
3 properties
PasswordPolicyResponse
object
7 properties
ResponseUser
object
34 properties
SignUpUser
object
9 properties
EnchantedLinkResponse
object
3 properties
EnchantedLinkSignUpEmailRequest
object
6 properties
GenerateUserRecoveryCodesResponse
object
1 property
PasswordUpdateRequest
object
2 properties
GetEnchantedLinkSessionRequest
object
1 property
OperationResponse
object
IDPResponse
object
9 properties

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

descope-auth-api-openapi.yml Raw ↑

Other APIs Descope publishes across the network.

Descope Apps API
Descope Custom Attributes API
Descope Email API
Descope Embedded Link API
Descope Fedcm API
Descope Instant Message (IM) API
Descope Keys API
Descope Mgmt API
Descope Scim API
Descope Text Message (SMS) API
Descope Verification API
Descope Voice Message (Phone) API
Where this information came from

This is an independent, third-party profile of Descope Auth API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.