Create an OAuth login configuration for a specific provider. With
type: personal (the default) this is the classic social-login
config, at most one per provider. With type: enterprise it creates a
new OIDC SSO connection (returning a generated connection_id) and
requires the enterprise block.
personal is the classic social-login config (at most one per
provider, addressed as …/oauth/{provider}). enterprise is a
per-connection OIDC SSO config (any number per provider, addressed as
…/oauth/{provider}/{connectionID}). Defaults to personal.
Prelude session scopes attached to the session when a login completes through this social provider (for example prld:pwd:write). Distinct from scopes, which are requested from the IdP.
Required when type is enterprise, rejected otherwise. Its
email_domain_allowlist must be non-empty and must not overlap
another connection's, and the provider must be one of okta,
google, or microsoft.
{
"code": "invalid_request",
"status": "bad_request",
"message": "The request body is invalid."
}
{
"code": "app_not_found",
"status": "not_found",
"message": "The application was not found."
}
{
"code": "oauth_provider_already_configured",
"status": "conflict",
"message": "An OAuth configuration already exists for this provider."
}
{"docsConfig":{"theme":"maple","$schema":"https://mintlify.com/docs.json","name":"Prelude Docs","colors":{"primary":"#3D16FF","light":"#83dd05","dark":"#3a5ccc"},"logo":{"light":"https://mintcdn.com/ding/Oh9xTmLZLfeVDwbL/images/logo/light.svg?fit=max\u0026auto=format\u0026n=Oh9xTmLZLfeVDwbL\u0026q=85\u0026s=592853f53e252f58d8ca969053ecde2c","dark":"https://mintcdn.com/ding/Oh9xTmLZLfeVDwbL/images/logo/dark.svg?fit=max\u0026auto=format\u0026n=Oh9xTmLZLfeVDwbL\u0026q=85\u0026s=b353ee028ccba0ef11d98646ada1d585"},"favicon":"https://mintcdn.com/ding/mO4m5aLNuvukvWgO/favicon.png?fit=max\u0026auto=format\u0026n=mO4m5aLNuvukvWgO\u0026q=85\u0026s=31138ef6929c5da3b6fbe480c91d653f","appearance":{"default":"system","strict":false},"background":{"decoration":"gradient","color":{"light":"#fff","dark":"#060A06"}},"navbar":{"links":[{"href":"https://prelude.so/contact","label":"Book a demo"}],"primary":{"type":"button","label":"Get started","href":"https://app.prelude.so"}},"footer":{"socials":{"x":"https://x.com/@UsePrelude","github":"https://github.com/prelude-so","linkedin":"https://www.linkedin.com/company/prelude-so"},"links":[{"header":"Pricing","items":[{"label":"Check all prices","href":"https://prelude.so/countries"},{"label":"US Prices","href":"https://prelude.so/countries/us"},{"label":"France Prices","href":"https://prelude.so/countries/fr"},{"label":"UK Prices","href":"https://prelude.so/countries/gb"},{"label":"Germany Prices","href":"https://prelude.so/countries/de"}]},{"header":"About Us","items":[{"label":"Blog","href":"https://prelude.so/blog"},{"label":"Customer Story","href":"https://prelude.so/customer-stories"},{"label":"Careers","href":"https://jobs.ashbyhq.com/Prelude"}]},{"header":"Resources","items":[{"label":"Status Page","href":"https://status.prelude.so"},{"label":"Trust Center","href":"https://trust.prelude.so/"}]}]},"seo":{"indexing":"all"},"fonts":{"family":"Inter"},"integrations":{"ga4":{"measurementId":"G-CQ4YD24X1M"},"cookies":{"key":"mint_prldc","value":"true"}},"contextual":{"options":["copy","cursor","chatgpt","claude","mcp"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"ding","hasAudioNarration":false,"actualSubdomain":"ding","customDomains":["docs.prelude.so"],"gitSource":{"type":"github","owner":"ding-live","repo":"monorepo","deployBranch":"master","contentDirectory":"doc","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6adb708f29f87a0e412d6555","collectionId":"12bafa73-2071-46e4-bf3b-f9dbccc8903a","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adb708f29f87a0e412d6555"},"feedback":{"thumbs":false,"edits":false,"issues":false},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6adb708f29f87a0e412d6555","clientVersion":"0.0.3966","searchFilterCounts":[{"language":"default","tag":"Auth","count":185},{"language":"default","tag":"API Reference","count":151},{"language":"default","tag":"Management","count":105},{"language":"default","tag":"Documentation","count":100},{"language":"default","tag":"Frontend","count":38},{"language":"default","tag":"Verify","count":33},{"language":"default","tag":"Integration Guide","count":26},{"language":"default","tag":"Watch","count":23},{"language":"default","tag":"Notify","count":22},{"language":"default","tag":"Frontend SDKs","count":19}]},"assistantConfig":{"enableAskAiButton":true,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"support@prelude.so","showHelpButton":true}},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"privacy":{"consentBanner":{"enabled":true}},"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":".update-container ul{list-style:none!important;padding-left:0!important}.update-container ul li::marker{content:none}"}],"page":{"pagePath":"auth/api-reference/management/config/login-oauth/create-login-oauth-config","slug":"/auth/api-reference/management/config/login-oauth/create-login-oauth-config","pageMetadata":{"openapi":"post /v2/session/apps/{appID}/config/login/oauth/{provider}","title":"Create OAuth login config","description":"Create an OAuth login configuration for a specific provider. With\n`type: personal` (the default) this is the classic social-login\nconfig, at most one per provider. With `type: enterprise` it creates a\nnew OIDC SSO connection (returning a generated `connection_id`) and\nrequires the `enterprise` block.\n","href":"/auth/api-reference/management/config/login-oauth/create-login-oauth-config"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Create an OAuth login configuration for a specific provider. With\\n\", _jsx(_components.code, {\n children: \"type: personal\"\n }), \" (the default) this is the classic social-login\\nconfig, at most one per provider. With \", _jsx(_components.code, {\n children: \"type: enterprise\"\n }), \" it creates a\\nnew OIDC SSO connection (returning a generated \", _jsx(_components.code, {\n children: \"connection_id\"\n }), \") and\\nrequires the \", _jsx(_components.code, {\n children: \"enterprise\"\n }), \" block.\"]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"openapi":"post /v2/session/apps/{appID}/config/login/oauth/{provider}","title":"Create OAuth login config","description":"Create an OAuth login configuration for a specific provider. With\n`type: personal` (the default) this is the classic social-login\nconfig, at most one per provider. With `type: enterprise` it creates a\nnew OIDC SSO connection (returning a generated `connection_id`) and\nrequires the `enterprise` block.\n","href":"/auth/api-reference/management/config/login-oauth/create-login-oauth-config"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Config - Login OAuth"],"summary":"Create OAuth login config","description":"Create an OAuth login configuration for a specific provider. With\n`type: personal` (the default) this is the classic social-login\nconfig, at most one per provider. With `type: enterprise` it creates a\nnew OIDC SSO connection (returning a generated `connection_id`) and\nrequires the `enterprise` block.\n","operationId":"createLoginOauthConfig","requestBody":"2a4257cd-c89b-42e1-9f37-d4a222ad724e","responses":{"201":"921291c6-f2d1-4114-b579-a4e183646c51","400":"2b238ccd-d5f4-4d3c-8fd7-1874a0cde0e0","404":"5c70765a-d23f-4be3-9d5a-b97f6a2fc15e","409":"985f180f-53a3-4080-9ecb-fe5944534e4a"},"method":"post","type":"path","servers":["8edc468c-fadb-4403-ae46-16c6245b57c4"],"security":["87c2bddb-7f41-4f58-8f37-5313f4059fa9"],"path":"/v2/session/apps/{appID}/config/login/oauth/{provider}","baseUrlOptions":["https://api.prelude.dev"],"title":"Create OAuth login config","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"54d1722f-03b1-4d36-8dd3-245f988c52f2":{"in":"path","name":"appID","required":true,"description":"The id of the app the request refers to.","schema":{"type":"string","description":"The id of the app the request refers to.\nAn application's unique identifier.","examples":["54e9ujn","fvua38g"],"isRequired":true,"uniqueKey":"","typeLabel":"string"}},"4c3aca1d-8603-4f1c-8da6-7b9a0d923600":{"in":"path","name":"provider","required":true,"description":"The OAuth provider identifier.","schema":{"type":"string","examples":["google","apple","github","microsoft","okta","facebook","linkedin"],"isRequired":true,"description":"The OAuth provider identifier.","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"client_id":{"type":"string","examples":["123456789.apps.googleusercontent.com"],"isRequired":true,"uniqueKey":"client_id","typeLabel":"string"},"client_secret":{"type":"string","examples":["GOCSPX-abc123def456"],"isRequired":true,"uniqueKey":"client_secret","typeLabel":"string"},"type":{"type":"string","enum":["personal","enterprise"],"default":"personal","description":"`personal` is the classic social-login config (at most one per\nprovider, addressed as `…/oauth/{provider}`). `enterprise` is a\nper-connection OIDC SSO config (any number per provider, addressed as\n`…/oauth/{provider}/{connectionID}`). Defaults to `personal`.\n","examples":["enterprise"],"uniqueKey":"type","typeLabel":"enum\u003cstring>"},"enabled":{"type":"boolean","examples":[true],"uniqueKey":"enabled","typeLabel":"boolean"},"scopes":{"type":"array","items":{"type":"string","examples":["openid","email","profile"],"uniqueKey":"scopes.items.[INDEX]","typeLabel":"string"},"description":"Scopes requested from the OAuth provider (IdP).","uniqueKey":"scopes","typeLabel":"string[]"},"granted_scopes":{"type":"array","items":{"type":"string","uniqueKey":"granted_scopes.items.[INDEX]","typeLabel":"string"},"description":"Prelude session scopes attached to the session when a login completes through this social provider (for example `prld:pwd:write`). Distinct from `scopes`, which are requested from the IdP.","examples":[["prld:pwd:write"]],"uniqueKey":"granted_scopes","typeLabel":"string[]"},"options":{"type":"object","properties":{"use_email_as_identifier":{"type":"boolean","examples":[true],"description":"When `true`, creates an email identifier on new OAuth users\nwhose email is verified by the IdP (or via the `verify_email`\nOTP flow).\n","uniqueKey":"options.use_email_as_identifier","typeLabel":"boolean"},"allow_email_account_merge":{"type":"boolean","examples":[false],"description":"When `true`, links the OAuth identifier to an existing user\nthat already owns the same email address (verified by the IdP\nor via `verify_email`). Without this flag, an email collision\nwith an existing account is rejected with `email_in_use`.\n","uniqueKey":"options.allow_email_account_merge","typeLabel":"boolean"},"verify_email":{"type":"boolean","examples":[false],"description":"When `true`, kicks in only if the IdP returns an unverified\nemail. The OAuth callback redirects with\n`status=otp_required` and the `challenge_token` query\nparameter; the SDK sends an OTP to the email and the user\nmust validate ownership before the OAuth identifier is\nattached to (or creates) an account. Requires\n`use_email_as_identifier=true` and at least one email OTP\nlogin config — these preconditions are checked at write\ntime. When `verify_email=true` but `use_email_as_identifier`\nis later disabled, the OTP step is skipped at runtime and\nthe account is created with only the OAuth identifier.\n","uniqueKey":"options.verify_email","typeLabel":"boolean"}},"uniqueKey":"options","typeLabel":"object"},"apple":{"type":"object","properties":{"team_id":{"type":"string","examples":["ABCDEF1234"],"uniqueKey":"apple.team_id","typeLabel":"string"},"key_id":{"type":"string","examples":["KEY123456"],"uniqueKey":"apple.key_id","typeLabel":"string"},"p8_key":{"type":"string","examples":["-----BEGIN PRIVATE KEY-----\nMIGT...base64...==\n-----END PRIVATE KEY-----"],"uniqueKey":"apple.p8_key","typeLabel":"string"}},"uniqueKey":"apple","typeLabel":"object"},"okta":{"type":"object","properties":{"issuer_url":{"type":"string","format":"uri","examples":["https://dev-123456.okta.com/oauth2/default"],"uniqueKey":"okta.issuer_url","typeLabel":"string\u003curi>"}},"uniqueKey":"okta","typeLabel":"object"},"enterprise":{"type":"object","description":"Required when `type` is `enterprise`, rejected otherwise. Its\n`email_domain_allowlist` must be non-empty and must not overlap\nanother connection's, and the provider must be one of `okta`,\n`google`, or `microsoft`.\n","required":["issuer_url","email_domain_allowlist"],"properties":{"issuer_url":{"type":"string","format":"uri","description":"The IdP's OIDC issuer (https). For Okta, the authorization server URL.","examples":["https://acme.okta.com/oauth2/default"],"isRequired":true,"uniqueKey":"enterprise.issuer_url","typeLabel":"string\u003curi>"},"email_domain_allowlist":{"type":"array","items":{"type":"string","uniqueKey":"enterprise.email_domain_allowlist.items.[INDEX]","typeLabel":"string"},"description":"Email domains this connection covers. Required and non-empty for\nenterprise configs. It is the domain→connection binding used for\nemail-resolved login, and every login's IdP-asserted email must\nfall within it.\n","examples":[["acme.com"]],"isRequired":true,"uniqueKey":"enterprise.email_domain_allowlist","typeLabel":"string[]"},"jit_provisioning":{"type":"boolean","description":"When `true`, just-in-time provisions a new user on first login.","examples":[true],"uniqueKey":"enterprise.jit_provisioning","typeLabel":"boolean"},"allow_email_account_merge":{"type":"boolean","description":"When `true`, links the OIDC identifier to an existing user that owns the same email.","examples":[true],"uniqueKey":"enterprise.allow_email_account_merge","typeLabel":"boolean"},"enforce_login":{"type":"boolean","description":"Reserved for future parity with SAML SSO enforcement.","examples":[false],"uniqueKey":"enterprise.enforce_login","typeLabel":"boolean"},"sync_profile_on_login":{"type":"boolean","description":"When `true`, refreshes name, given_name, family_name, and picture from the IdP on every login.","examples":[true],"uniqueKey":"enterprise.sync_profile_on_login","typeLabel":"boolean"},"default_redirect_uri":{"type":"string","description":"Redirect URI used when a login flow omits `redirect_uri`. Must be allowlisted for the app.","examples":["https://acme.yourapp.com/callback"],"uniqueKey":"enterprise.default_redirect_uri","typeLabel":"string"},"claim_mapping":{"type":"object","description":"Overrides for the id_token claim names used to read profile fields.","properties":{"email":{"type":"string","examples":["email"],"uniqueKey":"enterprise.claim_mapping.email","typeLabel":"string"},"given_name":{"type":"string","examples":["given_name"],"uniqueKey":"enterprise.claim_mapping.given_name","typeLabel":"string"},"family_name":{"type":"string","examples":["family_name"],"uniqueKey":"enterprise.claim_mapping.family_name","typeLabel":"string"},"custom":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"enterprise.claim_mapping.custom.additionalProperties","typeLabel":"string"},"description":"Maps logical profile keys to arbitrary id_token claim names.","uniqueKey":"enterprise.claim_mapping.custom","typeLabel":"object"}},"uniqueKey":"enterprise.claim_mapping","typeLabel":"object"}},"uniqueKey":"enterprise","typeLabel":"object"}},"required":["client_id","client_secret"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"client_id":"123456789.apps.googleusercontent.com","client_secret":"GOCSPX-abc123def456","type":"enterprise","enabled":true,"scopes":["openid"],"granted_scopes":["prld:pwd:write"],"options":{"use_email_as_identifier":true,"allow_email_account_merge":false,"verify_email":false},"apple":{"team_id":"ABCDEF1234","key_id":"KEY123456","p8_key":"-----BEGIN PRIVATE KEY-----\nMIGT...base64...==\n-----END PRIVATE KEY-----"},"okta":{"issuer_url":"https://dev-123456.okta.com/oauth2/default"}}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"921291c6-f2d1-4114-b579-a4e183646c51":{"description":"Created","content":{"application/json":{"schema":{"type":"object","properties":{"config":{"type":"object","properties":{"provider_id":{"type":"string","examples":["google"],"isRequired":true,"uniqueKey":"config.provider_id","typeLabel":"string"},"type":{"type":"string","enum":["personal","enterprise"],"default":"personal","description":"`personal` is the classic social-login config (at most one per\nprovider, addressed as `…/oauth/{provider}`). `enterprise` is a\nper-connection OIDC SSO config (any number per provider, addressed as\n`…/oauth/{provider}/{connectionID}`). Defaults to `personal`.\n","examples":["enterprise"],"isRequired":true,"uniqueKey":"config.type","typeLabel":"enum\u003cstring>"},"client_id":{"type":"string","examples":["123456789.apps.googleusercontent.com"],"isRequired":true,"uniqueKey":"config.client_id","typeLabel":"string"},"enabled":{"type":"boolean","examples":[true],"isRequired":true,"uniqueKey":"config.enabled","typeLabel":"boolean"},"scopes":{"type":"array","items":{"type":"string","examples":["openid","email","profile"],"uniqueKey":"config.scopes.items.[INDEX]","typeLabel":"string"},"description":"Scopes requested from the OAuth provider (IdP).","isRequired":true,"uniqueKey":"config.scopes","typeLabel":"string[]"},"options":{"type":"object","properties":{"use_email_as_identifier":{"type":"boolean","examples":[true],"description":"When `true`, creates an email identifier on new OAuth users\nwhose email is verified by the IdP (or via the `verify_email`\nOTP flow).\n","uniqueKey":"config.options.use_email_as_identifier","typeLabel":"boolean"},"allow_email_account_merge":{"type":"boolean","examples":[false],"description":"When `true`, links the OAuth identifier to an existing user\nthat already owns the same email address (verified by the IdP\nor via `verify_email`). Without this flag, an email collision\nwith an existing account is rejected with `email_in_use`.\n","uniqueKey":"config.options.allow_email_account_merge","typeLabel":"boolean"},"verify_email":{"type":"boolean","examples":[false],"description":"When `true`, kicks in only if the IdP returns an unverified\nemail. The OAuth callback redirects with\n`status=otp_required` and the `challenge_token` query\nparameter; the SDK sends an OTP to the email and the user\nmust validate ownership before the OAuth identifier is\nattached to (or creates) an account. Requires\n`use_email_as_identifier=true` and at least one email OTP\nlogin config — these preconditions are checked at write\ntime. When `verify_email=true` but `use_email_as_identifier`\nis later disabled, the OTP step is skipped at runtime and\nthe account is created with only the OAuth identifier.\n","uniqueKey":"config.options.verify_email","typeLabel":"boolean"}},"isRequired":true,"uniqueKey":"config.options","typeLabel":"object"},"created_at":{"type":"string","format":"date-time","examples":["2025-03-15T10:30:00Z"],"isRequired":true,"uniqueKey":"config.created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","examples":["2025-03-15T12:00:00Z"],"isRequired":true,"uniqueKey":"config.updated_at","typeLabel":"string\u003cdate-time>"},"connection_id":{"type":"string","description":"Present only for enterprise configs; the connection this config addresses.","examples":["ocon_01jqebhswje1ka1z7ahr9rfsgt"],"uniqueKey":"config.connection_id","typeLabel":"string"},"granted_scopes":{"type":"array","items":{"type":"string","uniqueKey":"config.granted_scopes.items.[INDEX]","typeLabel":"string"},"description":"Prelude session scopes attached to the session when a login completes through this social provider (for example `prld:pwd:write`). Distinct from `scopes`, which are requested from the IdP.","examples":[["prld:pwd:write"]],"uniqueKey":"config.granted_scopes","typeLabel":"string[]"},"apple":{"type":"object","properties":{"team_id":{"type":"string","examples":["ABCDEF1234"],"uniqueKey":"config.apple.team_id","typeLabel":"string"},"key_id":{"type":"string","examples":["KEY123456"],"uniqueKey":"config.apple.key_id","typeLabel":"string"},"p8_key":{"type":"string","examples":["-----BEGIN PRIVATE KEY-----\nMIGT...base64...==\n-----END PRIVATE KEY-----"],"uniqueKey":"config.apple.p8_key","typeLabel":"string"}},"uniqueKey":"config.apple","typeLabel":"object"},"okta":{"type":"object","properties":{"issuer_url":{"type":"string","format":"uri","examples":["https://dev-123456.okta.com/oauth2/default"],"uniqueKey":"config.okta.issuer_url","typeLabel":"string\u003curi>"}},"uniqueKey":"config.okta","typeLabel":"object"},"enterprise":{"type":"object","description":"Per-connection enterprise (OIDC SSO) fields. Present only for enterprise configs.","properties":{"issuer_url":{"type":"string","format":"uri","description":"The IdP's OIDC issuer (https). For Okta, the authorization server URL.","examples":["https://acme.okta.com/oauth2/default"],"isRequired":true,"uniqueKey":"config.enterprise.issuer_url","typeLabel":"string\u003curi>"},"email_domain_allowlist":{"type":"array","items":{"type":"string","uniqueKey":"config.enterprise.email_domain_allowlist.items.[INDEX]","typeLabel":"string"},"description":"Email domains this connection covers. Required and non-empty for\nenterprise configs. It is the domain→connection binding used for\nemail-resolved login, and every login's IdP-asserted email must\nfall within it.\n","examples":[["acme.com"]],"isRequired":true,"uniqueKey":"config.enterprise.email_domain_allowlist","typeLabel":"string[]"},"jit_provisioning":{"type":"boolean","description":"When `true`, just-in-time provisions a new user on first login.","examples":[true],"uniqueKey":"config.enterprise.jit_provisioning","typeLabel":"boolean"},"allow_email_account_merge":{"type":"boolean","description":"When `true`, links the OIDC identifier to an existing user that owns the same email.","examples":[true],"uniqueKey":"config.enterprise.allow_email_account_merge","typeLabel":"boolean"},"enforce_login":{"type":"boolean","description":"Reserved for future parity with SAML SSO enforcement.","examples":[false],"uniqueKey":"config.enterprise.enforce_login","typeLabel":"boolean"},"sync_profile_on_login":{"type":"boolean","description":"When `true`, refreshes name, given_name, family_name, and picture from the IdP on every login.","examples":[true],"uniqueKey":"config.enterprise.sync_profile_on_login","typeLabel":"boolean"},"default_redirect_uri":{"type":"string","description":"Redirect URI used when a login flow omits `redirect_uri`. Must be allowlisted for the app.","examples":["https://acme.yourapp.com/callback"],"uniqueKey":"config.enterprise.default_redirect_uri","typeLabel":"string"},"claim_mapping":{"type":"object","description":"Overrides for the id_token claim names used to read profile fields.","properties":{"email":{"type":"string","examples":["email"],"uniqueKey":"config.enterprise.claim_mapping.email","typeLabel":"string"},"given_name":{"type":"string","examples":["given_name"],"uniqueKey":"config.enterprise.claim_mapping.given_name","typeLabel":"string"},"family_name":{"type":"string","examples":["family_name"],"uniqueKey":"config.enterprise.claim_mapping.family_name","typeLabel":"string"},"custom":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"config.enterprise.claim_mapping.custom.additionalProperties","typeLabel":"string"},"description":"Maps logical profile keys to arbitrary id_token claim names.","uniqueKey":"config.enterprise.claim_mapping.custom","typeLabel":"object"}},"uniqueKey":"config.enterprise.claim_mapping","typeLabel":"object"}},"required":["issuer_url","email_domain_allowlist"],"uniqueKey":"config.enterprise","typeLabel":"object"}},"required":["provider_id","type","client_id","enabled","scopes","options","created_at","updated_at"],"isRequired":true,"uniqueKey":"config","typeLabel":"object"}},"required":["config"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"config":{"provider_id":"google","type":"enterprise","client_id":"123456789.apps.googleusercontent.com","enabled":true,"scopes":["openid"],"options":{"use_email_as_identifier":true,"allow_email_account_merge":false,"verify_email":false},"created_at":"2025-03-15T10:30:00Z","updated_at":"2025-03-15T12:00:00Z","connection_id":"ocon_01jqebhswje1ka1z7ahr9rfsgt","granted_scopes":["prld:pwd:write"],"apple":{"team_id":"ABCDEF1234","key_id":"KEY123456","p8_key":"-----BEGIN PRIVATE KEY-----\nMIGT...base64...==\n-----END PRIVATE KEY-----"},"okta":{"issuer_url":"https://dev-123456.okta.com/oauth2/default"},"enterprise":{"issuer_url":"https://acme.okta.com/oauth2/default","email_domain_allowlist":["acme.com"],"jit_provisioning":true,"allow_email_account_merge":true,"enforce_login":false,"sync_profile_on_login":true,"default_redirect_uri":"https://acme.yourapp.com/callback","claim_mapping":{"email":"email","given_name":"given_name","family_name":"family_name","custom":{}}}}}}},"exampleType":"generated"}},"exampleType":"generated"},"2b238ccd-d5f4-4d3c-8fd7-1874a0cde0e0":{"description":"Bad Request","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","enum":["invalid_request"],"examples":["invalid_request"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["bad_request"],"examples":["bad_request"],"isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"message":{"type":"string","examples":["The request body is invalid."],"isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"required":["code","status","message"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"invalid_request","status":"bad_request","message":"The request body is invalid."}}},"exampleType":"generated"}},"exampleType":"generated"},"5c70765a-d23f-4be3-9d5a-b97f6a2fc15e":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","enum":["app_not_found"],"examples":["app_not_found"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["not_found"],"examples":["not_found"],"isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"message":{"type":"string","examples":["The application was not found."],"isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"required":["code","status","message"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"app_not_found","status":"not_found","message":"The application was not found."}}},"exampleType":"generated"}},"exampleType":"generated"},"985f180f-53a3-4080-9ecb-fe5944534e4a":{"description":"Conflict","content":{"application/json":{"schema":{"oneOf":[{"type":"object","required":["code","status","message"],"properties":{"code":{"type":"string","enum":["oauth_provider_already_configured"],"examples":["oauth_provider_already_configured"],"isRequired":true,"uniqueKey":"oneOf.0.code","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["conflict"],"examples":["conflict"],"isRequired":true,"uniqueKey":"oneOf.0.status","typeLabel":"enum\u003cstring>"},"message":{"type":"string","examples":["An OAuth configuration already exists for this provider."],"isRequired":true,"uniqueKey":"oneOf.0.message","typeLabel":"string"}},"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","required":["code","status","message"],"properties":{"code":{"type":"string","enum":["oauth_email_domain_conflict"],"examples":["oauth_email_domain_conflict"],"isRequired":true,"uniqueKey":"oneOf.1.code","typeLabel":"enum\u003cstring>"},"status":{"type":"string","enum":["conflict"],"examples":["conflict"],"isRequired":true,"uniqueKey":"oneOf.1.status","typeLabel":"enum\u003cstring>"},"message":{"type":"string","examples":["An email domain is already claimed by another OAuth connection."],"isRequired":true,"uniqueKey":"oneOf.1.message","typeLabel":"string"}},"uniqueKey":"oneOf.1","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"oauth_provider_already_configured","status":"conflict","message":"An OAuth configuration already exists for this provider."}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"87c2bddb-7f41-4f58-8f37-5313f4059fa9":{"Authorization":{"type":"http","scheme":"bearer","scopes":[],"schemeName":"Authorization"}}},"servers":{"8edc468c-fadb-4403-ae46-16c6245b57c4":{"url":"https://api.prelude.dev","description":"Production server"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","scopes":[],"schemeName":"Authorization"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your auth token.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"Authorization","name":"Authorization"}],"title":"Authorization"}]},"originalFileLocation":"api-reference/session-management.yml"},"subdomain":"ding","siteName":"Prelude Docs","title":"Create OAuth login config - Prelude Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-07-23T16:00:27.981Z","originalFileLocation":"auth/api-reference/management/config/login-oauth/create-login-oauth-config.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Create an OAuth login configuration for a specific provider. With type: personal (the default) this is the classic social-login config, at most one per provider. With type: enterprise it creates a new OIDC SSO connection (returning a generated connection_id) and requires the enterprise block.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Prelude Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/ding/XcVFWlvRbYgvqL60/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/ding/XcVFWlvRbYgvqL60/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/ding/XcVFWlvRbYgvqL60/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/ding/XcVFWlvRbYgvqL60/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/ding/XcVFWlvRbYgvqL60/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/ding/XcVFWlvRbYgvqL60/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/ding/XcVFWlvRbYgvqL60/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/ding/XcVFWlvRbYgvqL60/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/ding/XcVFWlvRbYgvqL60/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create OAuth login config - Prelude Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Create an OAuth login configuration for a specific provider. With type: personal (the default) this is the classic social-login config, at most one per provider. With type: enterprise it creates a new OIDC SSO connection (returning a generated connection_id) and requires the enterprise block.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Prelude Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.prelude.so/auth/api-reference/management/config/login-oauth/create-login-oauth-config\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://ding.mintlify.app/_mintlify/api/og/v2?division=Login+OAuth+Config+API\u0026amp;title=Create+OAuth+login+config\u0026amp;description=Create+an+OAuth+login+configuration+for+a+specific+provider.+With%0A%60type%3A+personal%60+%28the+default%29+this+is+the+classic+social-login%0Aconfig%2C+at+most+one+per+provid\u0026amp;theme=6928357f80dea69981b41e48\u0026amp;signature=b772c72afa7c67c60adadf37229e100172b2b66cd6792cfdbf83dde057019942\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Create OAuth login config - Prelude Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Create an OAuth login configuration for a specific provider. With type: personal (the default) this is the classic social-login config, at most one per provider. With type: enterprise it creates a new OIDC SSO connection (returning a generated connection_id) and requires the enterprise block.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://ding.mintlify.app/_mintlify/api/og/v2?division=Login+OAuth+Config+API\u0026amp;title=Create+OAuth+login+config\u0026amp;description=Create+an+OAuth+login+configuration+for+a+specific+provider.+With%0A%60type%3A+personal%60+%28the+default%29+this+is+the+classic+social-login%0Aconfig%2C+at+most+one+per+provid\u0026amp;theme=6928357f80dea69981b41e48\u0026amp;signature=b772c72afa7c67c60adadf37229e100172b2b66cd6792cfdbf83dde057019942\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/ding/XcVFWlvRbYgvqL60/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Prelude Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3D16FF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.prelude.so/auth/api-reference/management/config/login-oauth/create-login-oauth-config\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/auth/api-reference/management/config/login-oauth/create-login-oauth-config.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.prelude.so/#organization\",\"name\":\"Prelude Docs\",\"url\":\"https://docs.prelude.so\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/ding/Oh9xTmLZLfeVDwbL/images/logo/light.svg?fit=max\u0026auto=format\u0026n=Oh9xTmLZLfeVDwbL\u0026q=85\u0026s=592853f53e252f58d8ca969053ecde2c\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.prelude.so#website\",\"name\":\"Prelude Docs\",\"url\":\"https://docs.prelude.so\",\"publisher\":{\"@id\":\"https://docs.prelude.so/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.prelude.so/auth/api-reference/management/config/login-oauth/create-login-oauth-config#webpage\",\"url\":\"https://docs.prelude.so/auth/api-reference/management/config/login-oauth/create-login-oauth-config\",\"name\":\"Create OAuth login config\",\"description\":\"Create an OAuth login configuration for a specific provider. With type: personal (the default) this is the classic social-login config, at most one per provider. With type: enterprise it creates a new OIDC SSO connection (returning a generated connection_id) and requires the enterprise block.\",\"dateModified\":\"2026-07-23T16:00:27.981Z\",\"isPartOf\":{\"@id\":\"https://docs.prelude.so#website\"},\"breadcrumb\":{\"@id\":\"https://docs.prelude.so/auth/api-reference/management/config/login-oauth/create-login-oauth-config#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.prelude.so/auth/api-reference/management/config/login-oauth/create-login-oauth-config#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API Reference\",\"item\":\"https://docs.prelude.so/auth/api-reference/frontend/start-login-otp\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Management\",\"item\":\"https://docs.prelude.so/auth/api-reference/management/mode/get-mode\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Login OAuth Config API\",\"item\":\"https://docs.prelude.so/auth/api-reference/management/config/login-oauth/list-login-oauth-configs\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Create OAuth login config\",\"item\":\"https://docs.prelude.so/auth/api-reference/management/config/login-oauth/create-login-oauth-config\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.prelude.so/auth/api-reference/management/config/login-oauth/create-login-oauth-config#apireference\",\"headline\":\"Create OAuth login config\",\"name\":\"Create OAuth login config\",\"description\":\"Create an OAuth login configuration for a specific provider. With type: personal (the default) this is the classic social-login config, at most one per provider. With type: enterprise it creates a new OIDC SSO connection (returning a generated connection_id) and requires the enterprise block.\",\"url\":\"https://docs.prelude.so/auth/api-reference/management/config/login-oauth/create-login-oauth-config\",\"mainEntityOfPage\":{\"@id\":\"https://docs.prelude.so/auth/api-reference/management/config/login-oauth/create-login-oauth-config#webpage\"},\"dateModified\":\"2026-07-23T16:00:27.981Z\",\"publisher\":{\"@id\":\"https://docs.prelude.so/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.prelude.so#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Prelude Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Prelude Docs","nav":{"global":null,"anchors":[{"anchor":"Overview","pages":[{"title":"Overview","href":"/introduction/welcome-to-prelude"}]},{"anchor":"Verify","icon":"fingerprint","versions":[{"version":"v2","pages":[{"group":"Documentation","pages":[{"title":"Introduction to Verify","sidebarTitle":"Introduction","icon":"fingerprint","href":"/verify/v2/documentation/introduction"},{"title":"Quickstart","icon":"circle-bolt","href":"/verify/v2/documentation/quickstart"},{"title":"Verification Lifecycle","icon":"arrow-progress","sidebarTitle":"Verification Lifecycle","href":"/verify/v2/documentation/lifecycle"},{"title":"Prevent Fraud","icon":"binoculars","href":"/verify/v2/documentation/prevent-fraud"},{"title":"Fraud Protection Settings","icon":"sliders","href":"/verify/v2/documentation/fraud-protection-settings"},{"title":"Message Content","sidebarTitle":"Message Content","icon":"message-pen","href":"/verify/v2/documentation/content"},{"title":"Custom Sender IDs","sidebarTitle":"Custom Sender IDs","icon":"message-smile","href":"/verify/v2/documentation/sender-id"},{"title":"Connect your WhatsApp Business Account to Prelude","sidebarTitle":"WhatsApp BSP","icon":"whatsapp","href":"/verify/v2/documentation/whatsapp"},{"title":"Webhook for the Verify API","sidebarTitle":"Webhook","icon":"webhook","href":"/verify/v2/documentation/webhook"},{"title":"Test Numbers","sidebarTitle":"Test Numbers","icon":"vial-circle-check","href":"/verify/v2/documentation/testing"},{"title":"Silent Verification","sidebarTitle":"Silent Verification","icon":"message-slash","href":"/verify/v2/documentation/silent-verification"},{"title":"Email Verification","sidebarTitle":"Email Verification","icon":"envelope","href":"/verify/v2/documentation/email-verification"},{"group":"Integrations","icon":"pipe-circle-check","pages":[{"title":"Prelude API v2 and Firebase Auth integration","sidebarTitle":"Firebase","icon":"dot","href":"/verify/v2/documentation/integrations/firebase"},{"title":"Integrate Prelude with Supabase phone authentication","sidebarTitle":"Supabase","icon":"dot","href":"/verify/v2/documentation/integrations/supabase"},{"title":"Integrate Prelude with Auth0 for phone verification","sidebarTitle":"Auth0","icon":"dot","href":"/verify/v2/documentation/integrations/auth0"}]}]},{"group":"API Reference","pages":[{"openapi":"post /v2/verification","title":"Create or retry a verification","href":"/verify/v2/api-reference/create-or-retry-a-verification"},{"openapi":"post /v2/verification/check","title":"Check a code","href":"/verify/v2/api-reference/check-a-code"},{"group":"History","icon":"table-list","pages":[{"openapi":"get /v2/verification/phone/history","title":"List phone verifications","href":"/verify/v2/api-reference/history/list-phone-verifications"},{"openapi":"get /v2/verification/phone/history/{id}","title":"Get a phone verification","href":"/verify/v2/api-reference/history/get-a-phone-verification"}]},{"group":"Management","icon":"wrench","pages":[{"title":"Overview","sidebarTitle":"Overview","icon":"wrench","href":"/verify/v2/api-reference/management/overview"},{"group":"Sender ID","pages":[{"openapi":"get /v2/verification/management/sender-id","title":"List available Sender IDs","href":"/verify/v2/api-reference/management/sender-id/list-sender-ids"},{"openapi":"post /v2/verification/management/sender-id","title":"Submit a sender ID","href":"/verify/v2/api-reference/management/sender-id/submit-sender-id"}]},{"group":"Phone Number","pages":[{"openapi":"get /v2/verification/management/phone-numbers/{action}","title":"Get phone numbers allow or block list","href":"/verify/v2/api-reference/management/phone-numbers/get-phone-numbers"},{"openapi":"post /v2/verification/management/phone-numbers/{action}","title":"Add phone number to allow or block list","href":"/verify/v2/api-reference/management/phone-numbers/add-phone-number"},{"openapi":"delete /v2/verification/management/phone-numbers/{action}","title":"Delete phone number from allow or block list","href":"/verify/v2/api-reference/management/phone-numbers/delete-phone-number"}]},{"group":"Templates","pages":[{"openapi":"get /v2/verification/management/templates","title":"List OTP templates","href":"/verify/v2/api-reference/management/templates/list-templates"},{"openapi":"post /v2/verification/management/templates","title":"Create an OTP template","href":"/verify/v2/api-reference/management/templates/create-template"},{"openapi":"get /v2/verification/management/templates/{template_id}","title":"Retrieve an OTP template","href":"/verify/v2/api-reference/management/templates/get-template"},{"openapi":"patch /v2/verification/management/templates/{template_id}","title":"Update an OTP template","href":"/verify/v2/api-reference/management/templates/update-template"},{"openapi":"delete /v2/verification/management/templates/{template_id}","title":"Delete an OTP template","href":"/verify/v2/api-reference/management/templates/delete-template"}]},{"group":"Sandboxed Numbers","pages":[{"openapi":"get /v2/verification/management/phone-numbers/sandbox","title":"Get sandbox phone numbers","href":"/verify/v2/api-reference/management/phone-numbers/sandbox/get-sandbox-phone-numbers"},{"openapi":"put /v2/verification/management/phone-numbers/sandbox","title":"Add a sandbox phone number","href":"/verify/v2/api-reference/management/phone-numbers/sandbox/add-sandbox-phone-number"},{"openapi":"delete /v2/verification/management/phone-numbers/sandbox/{phone_number}","title":"Delete a sandbox phone number","href":"/verify/v2/api-reference/management/phone-numbers/sandbox/delete-sandbox-phone-number"}]}]}]}]}]},{"anchor":"Auth","icon":"tickets","pages":[{"group":"Documentation","pages":[{"title":"Introduction to Auth","sidebarTitle":"Introduction","icon":"tickets","href":"/auth/documentation/introduction"},{"group":"Integration Guide","icon":"code","pages":[{"title":"Integration Guide","sidebarTitle":"Introduction","icon":"code","href":"/auth/documentation/integration-guide/introduction"},{"title":"OTP Login","sidebarTitle":"OTP Login","icon":"message-code","href":"/auth/documentation/integration-guide/otp-login"},{"title":"Password Authentication","sidebarTitle":"Password Authentication","icon":"key","href":"/auth/documentation/integration-guide/password-authentication"},{"title":"Passkey Authentication","sidebarTitle":"Passkey","icon":"fingerprint","href":"/auth/documentation/integration-guide/passkey"},{"title":"MCP Login","sidebarTitle":"MCP Login","icon":"plug","href":"/auth/documentation/integration-guide/mcp"},{"title":"SSO Login","sidebarTitle":"SSO Login","icon":"right-to-bracket","href":"/auth/documentation/integration-guide/sso"},{"group":"Social Login","icon":"users","pages":[{"title":"Introduction","sidebarTitle":"Introduction","icon":"book-open","href":"/auth/documentation/integration-guide/social-login/introduction"},{"title":"Google","sidebarTitle":"Google","icon":"google","href":"/auth/documentation/integration-guide/social-login/google"},{"title":"Apple","sidebarTitle":"Apple","icon":"apple","href":"/auth/documentation/integration-guide/social-login/apple"},{"title":"Microsoft","sidebarTitle":"Microsoft","icon":"microsoft","href":"/auth/documentation/integration-guide/social-login/microsoft"},{"title":"GitHub","sidebarTitle":"GitHub","icon":"github","href":"/auth/documentation/integration-guide/social-login/github"},{"title":"Okta","sidebarTitle":"Okta","icon":"lock","href":"/auth/documentation/integration-guide/social-login/okta"},{"title":"Facebook","sidebarTitle":"Facebook","icon":"facebook","href":"/auth/documentation/integration-guide/social-login/facebook"},{"title":"LinkedIn","sidebarTitle":"LinkedIn","icon":"linkedin","href":"/auth/documentation/integration-guide/social-login/linkedin"}]},{"group":"SAML SSO","icon":"key","pages":[{"title":"Introduction","sidebarTitle":"Introduction","icon":"book-open","href":"/auth/documentation/integration-guide/saml/introduction"},{"title":"Okta","sidebarTitle":"Okta","icon":"lock","href":"/auth/documentation/integration-guide/saml/okta"},{"title":"Google Workspace","sidebarTitle":"Google","icon":"google","href":"/auth/documentation/integration-guide/saml/google"},{"title":"JumpCloud","sidebarTitle":"JumpCloud","icon":"key","href":"/auth/documentation/integration-guide/saml/jumpcloud"},{"title":"Enforce SSO login","sidebarTitle":"Enforce login","icon":"shield-halved","href":"/auth/documentation/integration-guide/saml/enforce"}]},{"group":"Enterprise SSO (OIDC)","icon":"building-lock","pages":[{"title":"Introduction","sidebarTitle":"Introduction","icon":"book-open","href":"/auth/documentation/integration-guide/enterprise-oidc/introduction"}]},{"group":"Step-Up Authentication","icon":"shield-check","pages":[{"title":"Step-Up Authentication","sidebarTitle":"Step-Up Authentication","icon":"shield-check","href":"/auth/documentation/step-up-authentication"},{"title":"Custom Steps","sidebarTitle":"Custom Steps","icon":"puzzle-piece","href":"/auth/documentation/step-up-custom-steps"},{"title":"Step-Up Hook Reference","sidebarTitle":"Step-Up Hook","icon":"webhook","href":"/auth/documentation/step-up-hook"},{"title":"Register an Identifier","sidebarTitle":"Register Identifier","icon":"id-badge","href":"/auth/documentation/register-identifier"},{"title":"Passkey (WebAuthn)","sidebarTitle":"Passkey","icon":"fingerprint","href":"/auth/documentation/passkey"}]},{"title":"Logged-in Change Password","sidebarTitle":"Change Password","icon":"key-skeleton","href":"/auth/documentation/change-password"}]},{"title":"Server Tokens","sidebarTitle":"Server Tokens","icon":"server","href":"/auth/documentation/server-tokens"},{"group":"Frontend SDKs","icon":"window","pages":[{"group":"Web","icon":"code","pages":[{"title":"Introduction","sidebarTitle":"Introduction","icon":"book-open","href":"/auth/documentation/frontend-sdks/web/introduction"},{"title":"Password","sidebarTitle":"Password","icon":"key","href":"/auth/documentation/frontend-sdks/web/password"},{"title":"OTP Login","sidebarTitle":"OTP Login","icon":"message-code","href":"/auth/documentation/frontend-sdks/web/otp"},{"title":"Social Login","sidebarTitle":"Social Login","icon":"users","href":"/auth/documentation/frontend-sdks/web/social-login"},{"title":"SAML Login","sidebarTitle":"SAML Login","icon":"key","href":"/auth/documentation/frontend-sdks/web/saml"},{"title":"Enforce SSO Login","sidebarTitle":"Enforce SSO","icon":"shield-halved","href":"/auth/documentation/frontend-sdks/web/saml-enforce"},{"title":"Enterprise SSO","sidebarTitle":"Enterprise SSO","icon":"building-lock","href":"/auth/documentation/frontend-sdks/web/enterprise-oidc"},{"title":"Session Management","sidebarTitle":"Session Management","icon":"rotate","href":"/auth/documentation/frontend-sdks/web/session-management"},{"title":"Step-Up Authentication","sidebarTitle":"Step-Up","icon":"shield-check","href":"/auth/documentation/frontend-sdks/web/step-up"},{"title":"Passkey","sidebarTitle":"Passkey","icon":"fingerprint","href":"/auth/documentation/frontend-sdks/web/passkey"},{"title":"Change Password","sidebarTitle":"Change Password","icon":"key-skeleton","href":"/auth/documentation/frontend-sdks/web/change-password"}]},{"group":"Mobile","icon":"mobile","pages":[{"title":"Introduction","sidebarTitle":"Introduction","icon":"book-open","href":"/auth/documentation/frontend-sdks/mobile/introduction"},{"title":"Password","sidebarTitle":"Password","icon":"key","href":"/auth/documentation/frontend-sdks/mobile/password"},{"title":"OTP Login","sidebarTitle":"OTP Login","icon":"message-code","href":"/auth/documentation/frontend-sdks/mobile/otp"},{"title":"Social Login","sidebarTitle":"Social Login","icon":"users","href":"/auth/documentation/frontend-sdks/mobile/social-login"},{"title":"Session Management","sidebarTitle":"Session Management","icon":"rotate","href":"/auth/documentation/frontend-sdks/mobile/session-management"},{"title":"Step-Up Authentication","sidebarTitle":"Step-Up","icon":"shield-check","href":"/auth/documentation/frontend-sdks/mobile/step-up"},{"title":"Change Password","sidebarTitle":"Change Password","icon":"key-skeleton","href":"/auth/documentation/frontend-sdks/mobile/change-password"},{"title":"React Hooks","sidebarTitle":"React Hooks","icon":"react","href":"/auth/documentation/frontend-sdks/mobile/react-hooks"}]}]},{"title":"Auth Applications","sidebarTitle":"Applications","icon":"server","href":"/auth/documentation/applications"},{"title":"Domain Names","sidebarTitle":"Domain Names","icon":"globe-pointer","href":"/auth/documentation/domain-names"},{"title":"Groups","sidebarTitle":"Groups","icon":"user-group","href":"/auth/documentation/groups"},{"group":"Webhooks","icon":"webhook","pages":[{"title":"Webhooks","sidebarTitle":"Introduction","icon":"play","href":"/auth/documentation/webhooks/introduction"},{"title":"Activation Challenge Request","sidebarTitle":"Activation Webhook Event","icon":"cloud-check","href":"/auth/documentation/webhooks/verification-event"},{"group":"Events","icon":"list-check","pages":[{"title":"User Created","icon":"dot","href":"/auth/documentation/webhooks/events/user-created"},{"title":"User Deleted","icon":"dot","href":"/auth/documentation/webhooks/events/user-deleted"},{"title":"User Profile Updated","icon":"dot","href":"/auth/documentation/webhooks/events/user-profile-updated"},{"title":"User Identifier Created","icon":"dot","href":"/auth/documentation/webhooks/events/user-identifier-created"},{"title":"User Identifier Deleted","icon":"dot","href":"/auth/documentation/webhooks/events/user-identifier-deleted"},{"title":"User Session Created","icon":"dot","href":"/auth/documentation/webhooks/events/user-session-created"},{"title":"User Session Revoked","icon":"dot","href":"/auth/documentation/webhooks/events/user-session-revoked"},{"title":"User Passkey Registered","icon":"dot","href":"/auth/documentation/webhooks/events/user-passkey-registered"},{"title":"User Passkey Deleted","icon":"dot","href":"/auth/documentation/webhooks/events/user-passkey-deleted"},{"title":"User Passkey Assertion Failed","icon":"dot","href":"/auth/documentation/webhooks/events/user-passkey-assertion-failed"},{"title":"Migration Hook Failed","icon":"dot","href":"/auth/documentation/webhooks/events/migration-hook-failed"},{"title":"Step-Up Hook Failed","icon":"dot","href":"/auth/documentation/webhooks/events/step-up-hook-failed"},{"title":"Group Created","icon":"dot","href":"/auth/documentation/webhooks/events/group-created"},{"title":"Group Deleted","icon":"dot","href":"/auth/documentation/webhooks/events/group-deleted"},{"title":"Group Member Added","icon":"dot","href":"/auth/documentation/webhooks/events/group-member-added"},{"title":"Group Member Removed","icon":"dot","href":"/auth/documentation/webhooks/events/group-member-removed"}]}]},{"title":"Cookies","sidebarTitle":"Cookies","icon":"cookie-bite","href":"/auth/documentation/cookies"},{"title":"JSON Web Key Set (JWKS)","sidebarTitle":"JWKS","icon":"key-skeleton-left-right","href":"/auth/documentation/jwks"},{"title":"Custom Claims","sidebarTitle":"Custom Claims","icon":"id-card","href":"/auth/documentation/custom-claims"},{"title":"Migration Guide","sidebarTitle":"Migration Guide","icon":"arrows-rotate","href":"/auth/documentation/migration-guide"}]},{"group":"API Reference","pages":[{"group":"Frontend","icon":"mobile","pages":[{"group":"Login OTP","pages":[{"openapi":"post /v1/session/otp","title":"Create standalone OTP","href":"/auth/api-reference/frontend/start-login-otp"},{"openapi":"post /v1/session/otp/retry","title":"Retry standalone OTP","href":"/auth/api-reference/frontend/retry-otp"},{"openapi":"post /v1/session/otp/check","title":"Check standalone OTP","href":"/auth/api-reference/frontend/complete-login-otp"}]},{"group":"Login Email Password","pages":[{"openapi":"post /v1/session/login/email/password","title":"Login with email and password","href":"/auth/api-reference/frontend/login-email-password"},{"openapi":"get /v1/session/password/compliancy","title":"Get password compliancy rules","href":"/auth/api-reference/frontend/password-compliancy"}]},{"group":"Login OAuth","pages":[{"openapi":"post /v1/session/login/oauth/{provider}/authorize","title":"Initiate OAuth authorization","href":"/auth/api-reference/frontend/oauth-authorize"},{"openapi":"post /v1/session/login/oauth/authorize","title":"Initiate enterprise OAuth (OIDC SSO) authorization","href":"/auth/api-reference/frontend/oauth-enterprise-authorize"},{"openapi":"get /v1/session/login/oauth/{provider}/callback","title":"OAuth callback (GET)","href":"/auth/api-reference/frontend/oauth-callback-get"},{"openapi":"post /v1/session/login/oauth/{provider}/callback","title":"OAuth callback (POST)","href":"/auth/api-reference/frontend/oauth-callback-post"}]},{"group":"Login SAML","pages":[{"openapi":"get /v1/session/login/saml/initiate","title":"Initiate SAML login (resolve by email)","href":"/auth/api-reference/frontend/saml-initiate-by-email"},{"openapi":"get /v1/session/login/saml/{provider_id}/{connection_id}/initiate","title":"Initiate SAML login (explicit connection)","href":"/auth/api-reference/frontend/saml-initiate"},{"openapi":"post /v1/session/login/saml/{provider_id}/{connection_id}/acs","title":"SAML Assertion Consumer Service (ACS)","href":"/auth/api-reference/frontend/saml-acs"},{"openapi":"get /v1/session/login/saml/{provider_id}/{connection_id}/metadata","title":"Get SP metadata","href":"/auth/api-reference/frontend/saml-metadata"}]},{"group":"Login Finalize","pages":[{"openapi":"post /v1/session/login/finalize","title":"Finalize login","href":"/auth/api-reference/frontend/finalize-login"}]},{"group":"Login Migration","pages":[{"openapi":"post /v1/session/migration","title":"Migrate a legacy session","href":"/auth/api-reference/frontend/session-migration"}]},{"group":"Authentication","pages":[{"openapi":"post /v1/session/refresh","title":"Refresh session","href":"/auth/api-reference/frontend/refresh-session"},{"openapi":"post /v1/session/revoke","title":"Revoke session","href":"/auth/api-reference/frontend/revoke-session"}]},{"group":"Session Management","pages":[{"openapi":"get /v1/session/me/list","title":"List sessions","href":"/auth/api-reference/frontend/list-sessions"},{"openapi":"get /v1/session/me/identifiers","title":"List identifiers","href":"/auth/api-reference/frontend/list-identifiers"},{"openapi":"post /v1/session/me/revoke","title":"Revoke sessions","href":"/auth/api-reference/frontend/revoke-sessions"},{"openapi":"post /v1/session/me/password/reset","title":"Change password","href":"/auth/api-reference/frontend/reset-password"}]},{"group":"Step-Up","pages":[{"openapi":"post /v1/session/stepup/request","title":"Request step-up scope","href":"/auth/api-reference/frontend/stepup-request"},{"openapi":"post /v1/session/stepup/continue","title":"Continue step-up challenge","href":"/auth/api-reference/frontend/stepup-continue"}]},{"group":"Well-Known","pages":[{"openapi":"get /.well-known/jwks.json","title":"Get JWKS","href":"/auth/api-reference/frontend/jwks"},{"openapi":"get /.well-known/step-up-jwks.json","title":"Get step-up JWKS","href":"/auth/api-reference/frontend/stepup-jwks"},{"openapi":"get /.well-known/oauth-authorization-server","title":"Get authorization server metadata","href":"/auth/api-reference/frontend/oauth-server-metadata"}]},{"group":"OAuth Server","pages":[{"openapi":"get /v1/session/oauth/authorize","title":"Authorization request","href":"/auth/api-reference/frontend/oauth-server-authorize"},{"openapi":"post /v1/session/oauth/register","title":"Dynamic client registration","href":"/auth/api-reference/frontend/oauth-server-register"},{"openapi":"post /v1/session/oauth/token","title":"Token request","href":"/auth/api-reference/frontend/oauth-server-token"},{"openapi":"post /v1/session/oauth/continue","title":"Continue authorization after login","href":"/auth/api-reference/frontend/oauth-server-continue"},{"openapi":"get /v1/session/oauth/pending","title":"Get pending consent details","href":"/auth/api-reference/frontend/oauth-server-pending"},{"openapi":"post /v1/session/oauth/decision","title":"Submit consent decision","href":"/auth/api-reference/frontend/oauth-server-decision"}]}]},{"group":"Management","icon":"wrench","pages":[{"group":"Mode API","pages":[{"openapi":"get /v2/session/apps/{appID}/mode","title":"Get application mode","href":"/auth/api-reference/management/mode/get-mode"},{"openapi":"put /v2/session/apps/{appID}/mode","title":"Update application mode","href":"/auth/api-reference/management/mode/update-mode"}]},{"group":"Tokens API","pages":[{"openapi":"post /v2/session/apps/{appID}/tokens","title":"Mint a token","href":"/auth/api-reference/management/tokens/mint-token"}]},{"group":"Users API","pages":[{"openapi":"get /v2/session/apps/{appID}/users","title":"List users","href":"/auth/api-reference/management/users/list-users"},{"openapi":"post /v2/session/apps/{appID}/users/batch_lookup","title":"Batch lookup users","href":"/auth/api-reference/management/users/batch-lookup"},{"openapi":"post /v2/session/apps/{appID}/users","title":"Create user","href":"/auth/api-reference/management/users/create-user"},{"openapi":"get /v2/session/apps/{appID}/users/{userID}","title":"Get user","href":"/auth/api-reference/management/users/get-user"},{"openapi":"delete /v2/session/apps/{appID}/users/{userID}","title":"Delete user","href":"/auth/api-reference/management/users/delete-user"},{"openapi":"put /v2/session/apps/{appID}/users/{userID}/status","title":"Update user status","href":"/auth/api-reference/management/users/update-status"},{"openapi":"patch /v2/session/apps/{appID}/users/{userID}/profile","title":"Update user profile","href":"/auth/api-reference/management/users/update-user-profile"},{"openapi":"put /v2/session/apps/{appID}/users/{userID}/external_id","title":"Update user external ID","href":"/auth/api-reference/management/users/update-external-id"},{"openapi":"put /v2/session/apps/{appID}/users/{userID}/password","title":"Set user password","href":"/auth/api-reference/management/users/set-user-password"},{"openapi":"post /v2/session/apps/{appID}/users/{userID}/scopes","title":"Add scope to user","href":"/auth/api-reference/management/users/add-user-scope"},{"openapi":"post /v2/session/apps/{appID}/users/{userID}/groups","title":"Add user to group","href":"/auth/api-reference/management/users/add-user-to-group"},{"openapi":"delete /v2/session/apps/{appID}/users/{userID}/groups/{groupName}","title":"Remove user from group","href":"/auth/api-reference/management/users/remove-user-from-group"},{"openapi":"post /v2/session/apps/{appID}/users/{userID}/identifiers","title":"Create identifier","href":"/auth/api-reference/management/users/create-identifier"},{"openapi":"delete /v2/session/apps/{appID}/users/{userID}/identifiers","title":"Delete identifier","href":"/auth/api-reference/management/users/delete-identifier"},{"openapi":"get /v2/session/apps/{appID}/users/{userID}/sessions","title":"List user sessions","href":"/auth/api-reference/management/users/list-user-sessions"},{"openapi":"post /v2/session/apps/{appID}/users/{userID}/sessions/invalidate","title":"Invalidate user sessions","href":"/auth/api-reference/management/users/invalidate-user-sessions"},{"openapi":"delete /v2/session/apps/{appID}/users/{userID}/sessions/{sessionID}","title":"Invalidate user session","href":"/auth/api-reference/management/users/invalidate-user-session"}]},{"group":"Webhooks API","pages":[{"openapi":"get /v2/session/apps/{appID}/webhooks","title":"List webhooks","href":"/auth/api-reference/management/webhooks/list-webhooks"},{"openapi":"post /v2/session/apps/{appID}/webhooks","title":"Create webhook","href":"/auth/api-reference/management/webhooks/create-webhook"},{"openapi":"get /v2/session/apps/{appID}/webhooks/{webhookID}","title":"Get webhook","href":"/auth/api-reference/management/webhooks/get-webhook"},{"openapi":"delete /v2/session/apps/{appID}/webhooks/{webhookID}","title":"Delete webhook","href":"/auth/api-reference/management/webhooks/delete-webhook"},{"openapi":"post /v2/session/apps/{appID}/webhooks/{webhookID}/events","title":"Add webhook event","href":"/auth/api-reference/management/webhooks/add-webhook-event"},{"openapi":"delete /v2/session/apps/{appID}/webhooks/{webhookID}/events","title":"Delete webhook event","href":"/auth/api-reference/management/webhooks/delete-webhook-event"},{"openapi":"post /v2/session/apps/{appID}/webhooks/{webhookID}/activate","title":"Activate webhook","href":"/auth/api-reference/management/webhooks/activate-webhook"},{"openapi":"post /v2/session/apps/{appID}/webhooks/{webhookID}/deactivate","title":"Deactivate webhook","href":"/auth/api-reference/management/webhooks/deactivate-webhook"}]},{"group":"Domains API","pages":[{"openapi":"get /v2/session/apps/{appID}/domains","title":"List domains","href":"/auth/api-reference/management/domains/list-domains"},{"openapi":"post /v2/session/apps/{appID}/domains","title":"Create domain","href":"/auth/api-reference/management/domains/create-domain"},{"openapi":"get /v2/session/apps/{appID}/domains/{domainID}","title":"Get domain","href":"/auth/api-reference/management/domains/get-domain"},{"openapi":"delete /v2/session/apps/{appID}/domains/{domainID}","title":"Delete domain","href":"/auth/api-reference/management/domains/delete-domain"},{"openapi":"post /v2/session/apps/{appID}/domains/{domainID}/validate","title":"Validate domain","href":"/auth/api-reference/management/domains/verify-domain"}]},{"group":"Tokens Config API","pages":[{"openapi":"get /v2/session/apps/{appID}/config/tokens","title":"Get token config","href":"/auth/api-reference/management/config/tokens/get-token-config"},{"openapi":"put /v2/session/apps/{appID}/config/tokens","title":"Update token config","href":"/auth/api-reference/management/config/tokens/update-token-config"}]},{"group":"Scopes Config API","pages":[{"openapi":"get /v2/session/apps/{appID}/config/scopes","title":"List scopes","href":"/auth/api-reference/management/config/scopes/list-scopes"},{"openapi":"post /v2/session/apps/{appID}/config/scopes","title":"Create scope","href":"/auth/api-reference/management/config/scopes/create-scope"},{"openapi":"delete /v2/session/apps/{appID}/config/scopes","title":"Delete scope","href":"/auth/api-reference/management/config/scopes/delete-scope"}]},{"group":"Groups Config API","pages":[{"openapi":"get /v2/session/apps/{appID}/config/groups","title":"List groups","href":"/auth/api-reference/management/config/groups/list-groups"},{"openapi":"post /v2/session/apps/{appID}/config/groups","title":"Create group","href":"/auth/api-reference/management/config/groups/create-group"},{"openapi":"get /v2/session/apps/{appID}/config/groups/{groupName}","title":"Get group","href":"/auth/api-reference/management/config/groups/get-group"},{"openapi":"put /v2/session/apps/{appID}/config/groups/{groupName}","title":"Set group scopes","href":"/auth/api-reference/management/config/groups/set-group-scopes"},{"openapi":"delete /v2/session/apps/{appID}/config/groups/{groupName}","title":"Delete group","href":"/auth/api-reference/management/config/groups/delete-group"}]},{"group":"Claims Mapping Config API","pages":[{"openapi":"get /v2/session/apps/{appID}/config/claims","title":"Get claims mapping config","href":"/auth/api-reference/management/config/claims/get-claims-mapping"},{"openapi":"post /v2/session/apps/{appID}/config/claims","title":"Create claims mapping config","href":"/auth/api-reference/management/config/claims/create-claims-mapping"},{"openapi":"put /v2/session/apps/{appID}/config/claims","title":"Update claims mapping config","href":"/auth/api-reference/management/config/claims/update-claims-mapping"},{"openapi":"delete /v2/session/apps/{appID}/config/claims","title":"Delete claims mapping config","href":"/auth/api-reference/management/config/claims/delete-claims-mapping"}]},{"group":"Step-Up Config API","pages":[{"openapi":"get /v2/session/apps/{appID}/config/stepup","title":"Get step-up config","href":"/auth/api-reference/management/config/stepup/get-stepup-config"},{"openapi":"post /v2/session/apps/{appID}/config/stepup","title":"Create step-up config","href":"/auth/api-reference/management/config/stepup/create-stepup-config"},{"openapi":"put /v2/session/apps/{appID}/config/stepup","title":"Update step-up config","href":"/auth/api-reference/management/config/stepup/update-stepup-config"},{"openapi":"delete /v2/session/apps/{appID}/config/stepup","title":"Delete step-up config","href":"/auth/api-reference/management/config/stepup/delete-stepup-config"}]},{"group":"Migration Config API","pages":[{"openapi":"get /v2/session/apps/{appID}/config/migration","title":"Get migration config","href":"/auth/api-reference/management/config/migration/get-migration-config"},{"openapi":"post /v2/session/apps/{appID}/config/migration","title":"Create migration config","href":"/auth/api-reference/management/config/migration/create-migration-config"},{"openapi":"put /v2/session/apps/{appID}/config/migration","title":"Update migration config","href":"/auth/api-reference/management/config/migration/update-migration-config"},{"openapi":"delete /v2/session/apps/{appID}/config/migration","title":"Delete migration config","href":"/auth/api-reference/management/config/migration/delete-migration-config"}]},{"group":"Login OTP Config API","pages":[{"openapi":"get /v2/session/apps/{appID}/config/login/otp","title":"List OTP login configs","href":"/auth/api-reference/management/config/login-otp/list-login-otp-configs"},{"openapi":"post /v2/session/apps/{appID}/config/login/otp","title":"Create OTP login config","href":"/auth/api-reference/management/config/login-otp/create-login-otp-config"},{"openapi":"put /v2/session/apps/{appID}/config/login/otp/{loginConfigID}","title":"Update OTP login config","href":"/auth/api-reference/management/config/login-otp/update-login-otp-config"},{"openapi":"delete /v2/session/apps/{appID}/config/login/otp/{loginConfigID}","title":"Delete OTP login config","href":"/auth/api-reference/management/config/login-otp/delete-login-otp-config"}]},{"group":"Login OAuth Config API","pages":[{"openapi":"get /v2/session/apps/{appID}/config/login/oauth","title":"List OAuth login configs","description":"List all OAuth login configurations for the application.","href":"/auth/api-reference/management/config/login-oauth/list-login-oauth-configs"},{"openapi":"post /v2/session/apps/{appID}/config/login/oauth/{provider}","title":"Create OAuth login config","href":"/auth/api-reference/management/config/login-oauth/create-login-oauth-config"},{"openapi":"put /v2/session/apps/{appID}/config/login/oauth/{provider}","title":"Update personal OAuth login config","description":"Update the personal (social-login) OAuth configuration for a provider.","href":"/auth/api-reference/management/config/login-oauth/update-login-oauth-config"},{"openapi":"delete /v2/session/apps/{appID}/config/login/oauth/{provider}","title":"Delete personal OAuth login config","href":"/auth/api-reference/management/config/login-oauth/delete-login-oauth-config"},{"openapi":"put /v2/session/apps/{appID}/config/login/oauth/{provider}/{connectionID}","title":"Update enterprise OAuth connection","href":"/auth/api-reference/management/config/login-oauth/update-enterprise-oauth-connection"},{"openapi":"delete /v2/session/apps/{appID}/config/login/oauth/{provider}/{connectionID}","title":"Delete enterprise OAuth connection","href":"/auth/api-reference/management/config/login-oauth/delete-enterprise-oauth-connection"}]},{"group":"Login SAML Config API","pages":[{"openapi":"get /v2/session/apps/{appID}/config/login/saml","title":"List SAML connections","href":"/auth/api-reference/management/config/login-saml/list-saml-connections"},{"openapi":"post /v2/session/apps/{appID}/config/login/saml/{providerID}","title":"Create SAML connection","href":"/auth/api-reference/management/config/login-saml/create-saml-connection"},{"openapi":"get /v2/session/apps/{appID}/config/login/saml/{providerID}/{connectionID}","title":"Get SAML connection","href":"/auth/api-reference/management/config/login-saml/get-saml-connection"},{"openapi":"put /v2/session/apps/{appID}/config/login/saml/{providerID}/{connectionID}","title":"Update SAML connection","href":"/auth/api-reference/management/config/login-saml/update-saml-connection"},{"openapi":"delete /v2/session/apps/{appID}/config/login/saml/{providerID}/{connectionID}","title":"Delete SAML connection","href":"/auth/api-reference/management/config/login-saml/delete-saml-connection"},{"openapi":"get /v2/session/apps/{appID}/config/login/saml/{providerID}/{connectionID}/metadata","title":"Get SAML SP metadata","href":"/auth/api-reference/management/config/login-saml/get-saml-sp-metadata"}]},{"group":"Login Password Config API","pages":[{"openapi":"get /v2/session/apps/{appID}/config/login/password","title":"Get password login config","href":"/auth/api-reference/management/config/login-password/get-login-password-config"},{"openapi":"post /v2/session/apps/{appID}/config/login/password","title":"Create password login config","href":"/auth/api-reference/management/config/login-password/create-login-password-config"},{"openapi":"put /v2/session/apps/{appID}/config/login/password","title":"Update password login config","href":"/auth/api-reference/management/config/login-password/update-login-password-config"},{"openapi":"delete /v2/session/apps/{appID}/config/login/password","title":"Delete password login config","href":"/auth/api-reference/management/config/login-password/delete-login-password-config"}]},{"group":"OAuth Server Config API","pages":[{"openapi":"get /v2/session/apps/{appID}/oauth","title":"Get OAuth server config","href":"/auth/api-reference/management/config/oauth-server/get-oauth-server-config"},{"openapi":"put /v2/session/apps/{appID}/oauth","title":"Create or update OAuth server config","href":"/auth/api-reference/management/config/oauth-server/update-oauth-server-config"},{"openapi":"delete /v2/session/apps/{appID}/oauth","title":"Delete OAuth server config","href":"/auth/api-reference/management/config/oauth-server/delete-oauth-server-config"},{"openapi":"post /v2/session/apps/{appID}/oauth/clients","title":"Register OAuth client","href":"/auth/api-reference/management/config/oauth-server/register-oauth-client"},{"openapi":"get /v2/session/apps/{appID}/oauth/clients","title":"List OAuth clients","href":"/auth/api-reference/management/config/oauth-server/list-oauth-clients"},{"openapi":"delete /v2/session/apps/{appID}/oauth/clients/{clientID}","title":"Delete OAuth client","href":"/auth/api-reference/management/config/oauth-server/delete-oauth-client"}]}]}]}]},{"anchor":"Watch","icon":"radar","versions":[{"version":"v2","pages":[{"group":"Documentation","pages":[{"title":"Introduction to Watch","sidebarTitle":"Introduction","icon":"radar","href":"/watch/v2/documentation/introduction"},{"title":"Rules, recipes, and flows","sidebarTitle":"Rules, recipes \u0026 flows","icon":"sliders","tag":"BETA","href":"/watch/v2/documentation/rules-recipes-flows"}]},{"group":"API Reference","pages":[{"openapi":"post /v2/watch/predict","title":"Predict the outcome of a verification","sidebarTitle":"Predict outcome","href":"/watch/v2/api-reference/predict-outcome"},{"openapi":"post /v2/watch/eval","title":"Evaluate a flow against your rules","sidebarTitle":"Evaluate a flow","tag":"BETA","href":"/watch/v2/api-reference/evaluate-flow"},{"openapi":"post /v2/watch/feedback","title":"Send feedbacks about verifications","sidebarTitle":"Send feedbacks","href":"/watch/v2/api-reference/send-feedbacks"},{"openapi":"post /v2/watch/event","title":"Dispatch real-time events","sidebarTitle":"Dispatch events","href":"/watch/v2/api-reference/dispatch-events"}]},{"group":"Management API","pages":[{"group":"Rules","pages":[{"openapi":"get /v2/watch/management/rules","title":"List the rules you authored","sidebarTitle":"List rules","tag":"BETA","href":"/watch/v2/api-reference/management/rules/list-rules"},{"openapi":"post /v2/watch/management/rules","title":"Author a rule","sidebarTitle":"Create rule","tag":"BETA","href":"/watch/v2/api-reference/management/rules/create-rule"},{"openapi":"get /v2/watch/management/rules/{rule_id}","title":"Get one of your rules","sidebarTitle":"Get rule","tag":"BETA","href":"/watch/v2/api-reference/management/rules/get-rule"},{"openapi":"put /v2/watch/management/rules/{rule_id}","title":"Update a rule","sidebarTitle":"Update rule","tag":"BETA","href":"/watch/v2/api-reference/management/rules/update-rule"},{"openapi":"delete /v2/watch/management/rules/{rule_id}","title":"Delete a rule","sidebarTitle":"Delete rule","tag":"BETA","href":"/watch/v2/api-reference/management/rules/delete-rule"},{"openapi":"get /v2/watch/management/rules/managed","title":"List the rules Prelude maintains","sidebarTitle":"List managed rules","tag":"BETA","href":"/watch/v2/api-reference/management/rules/list-managed-rules"},{"openapi":"get /v2/watch/management/rules/catalog","title":"List the signals a rule can read","sidebarTitle":"List signals","tag":"BETA","href":"/watch/v2/api-reference/management/rules/list-signals"}]},{"group":"Recipes","pages":[{"openapi":"get /v2/watch/management/recipes","title":"List your recipes","sidebarTitle":"List recipes","tag":"BETA","href":"/watch/v2/api-reference/management/recipes/list-recipes"},{"openapi":"post /v2/watch/management/recipes","title":"Assemble rules into a scored decision","sidebarTitle":"Create recipe","tag":"BETA","href":"/watch/v2/api-reference/management/recipes/create-recipe"},{"openapi":"get /v2/watch/management/recipes/{recipe_id}","title":"Get a recipe","sidebarTitle":"Get recipe","tag":"BETA","href":"/watch/v2/api-reference/management/recipes/get-recipe"},{"openapi":"put /v2/watch/management/recipes/{recipe_id}","title":"Update a recipe","sidebarTitle":"Update recipe","tag":"BETA","href":"/watch/v2/api-reference/management/recipes/update-recipe"},{"openapi":"delete /v2/watch/management/recipes/{recipe_id}","title":"Delete a recipe","sidebarTitle":"Delete recipe","tag":"BETA","href":"/watch/v2/api-reference/management/recipes/delete-recipe"}]},{"group":"Flows","pages":[{"openapi":"get /v2/watch/management/flows","title":"List your flows","sidebarTitle":"List flows","tag":"BETA","href":"/watch/v2/api-reference/management/flows/list-flows"},{"openapi":"post /v2/watch/management/flows","title":"Define a moment to guard","sidebarTitle":"Create flow","tag":"BETA","href":"/watch/v2/api-reference/management/flows/create-flow"},{"openapi":"get /v2/watch/management/flows/{flow_id}","title":"Get a flow","sidebarTitle":"Get flow","tag":"BETA","href":"/watch/v2/api-reference/management/flows/get-flow"},{"openapi":"put /v2/watch/management/flows/{flow_id}","title":"Update a flow","sidebarTitle":"Update flow","tag":"BETA","href":"/watch/v2/api-reference/management/flows/update-flow"},{"openapi":"delete /v2/watch/management/flows/{flow_id}","title":"Delete a flow","sidebarTitle":"Delete flow","tag":"BETA","href":"/watch/v2/api-reference/management/flows/delete-flow"}]}]}]}]},{"anchor":"Intel","icon":"telescope","versions":[{"version":"v2","pages":[{"group":"Documentation","pages":[{"title":"Introduction to Intel","sidebarTitle":"Introduction","icon":"telescope","href":"/intel/v2/documentation/introduction"}]},{"group":"API Reference","pages":[{"openapi":"get /v2/lookup/{phone_number}","title":"Lookup a phone number","sidebarTitle":"Lookup a number","href":"/intel/v2/api-reference/lookup-a-number"},{"openapi":"post /v2/intel/kyc/match/{phone}","title":"KYC Match","sidebarTitle":"KYC Match","href":"/intel/v2/api-reference/kyc-match"}]}]},{"version":"v1 (Legacy)","pages":[{"title":"v1 (Legacy)","href":"/intel/v1/documentation/errors"}]}]},{"anchor":"Notify","icon":"comment-dots","versions":[{"version":"v2","pages":[{"group":"Documentation","pages":[{"title":"Introduction to Notify","sidebarTitle":"Introduction","icon":"comment-dots","href":"/notify/v2/documentation/introduction"},{"title":"2-Way Messaging with WhatsApp","sidebarTitle":"WhatsApp 2-Way","icon":"whatsapp","href":"/notify/v2/documentation/whatsapp"},{"title":"Send images, videos, and documents on WhatsApp","sidebarTitle":"WhatsApp Media","icon":"whatsapp","href":"/notify/v2/documentation/whatsapp-media"},{"title":"Webhook for the Notify API","sidebarTitle":"Webhook","icon":"webhook","href":"/notify/v2/documentation/webhook"},{"title":"Marketing Compliance Rules","sidebarTitle":"Marketing Compliance","icon":"shield-check","href":"/notify/v2/documentation/marketing-compliance"},{"title":"SMS Opt-in for the US and Canada","sidebarTitle":"US \u0026 Canada Opt-in","icon":"square-check","href":"/notify/v2/documentation/us-canada-opt-in"},{"title":"Subscription Management","sidebarTitle":"Subscription Management","icon":"user-group","href":"/notify/v2/documentation/subscription-management"},{"title":"Message Scheduling","sidebarTitle":"Scheduling","icon":"clock","href":"/notify/v2/documentation/scheduling"},{"title":"Supported Locales","sidebarTitle":"Supported Locales","icon":"language","href":"/notify/v2/documentation/supported-locales"}]},{"group":"API Reference","pages":[{"openapi":"post /v2/notify","title":"Send a message","href":"/notify/v2/api-reference/send-a-message"},{"openapi":"post /v2/notify/batch","title":"Send bulk messages","href":"/notify/v2/api-reference/send-bulk-messages"},{"openapi":"post /v2/notify/reply","title":"Reply to an inbound message","href":"/notify/v2/api-reference/send-a-reply"},{"group":"Management","icon":"wrench","pages":[{"group":"Templates","pages":[{"openapi":"get /v2/notify/management/templates","title":"List message templates","href":"/notify/v2/api-reference/management/templates/list-templates"},{"openapi":"post /v2/notify/management/templates","title":"Create a message template","href":"/notify/v2/api-reference/management/templates/create-template"},{"openapi":"get /v2/notify/management/templates/{template_id}","title":"Retrieve a message template","href":"/notify/v2/api-reference/management/templates/get-template"},{"openapi":"patch /v2/notify/management/templates/{template_id}","title":"Update a message template","href":"/notify/v2/api-reference/management/templates/update-template"},{"openapi":"delete /v2/notify/management/templates/{template_id}","title":"Delete a message template","href":"/notify/v2/api-reference/management/templates/delete-template"},{"openapi":"post /v2/notify/management/templates/{template_id}/submit","title":"Submit a message template for review","href":"/notify/v2/api-reference/management/templates/submit-template"}]},{"group":"Subscriptions","pages":[{"openapi":"get /v2/notify/management/subscriptions","title":"List subscription configurations","href":"/notify/v2/api-reference/management/subscriptions/list-subscription-configs"},{"openapi":"get /v2/notify/management/subscriptions/{config_id}/phone_numbers","title":"List subscription phone numbers","href":"/notify/v2/api-reference/management/subscriptions/list-subscription-phone-numbers"},{"openapi":"get /v2/notify/management/subscriptions/{config_id}/phone_numbers/{phone_number}","title":"Get subscription phone number status","href":"/notify/v2/api-reference/management/subscriptions/get-subscription-phone-number"},{"openapi":"get /v2/notify/management/subscriptions/{config_id}/phone_numbers/{phone_number}/events","title":"List subscription phone number events","href":"/notify/v2/api-reference/management/subscriptions/list-subscription-phone-number-events"}]}]}]}]}]}]},"title":"Create OAuth login config - Prelude Docs","buildId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","deploymentId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","dynamics":["c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["OpenApiReferenceProvider-DKJwRUt2.js","utils-CWD_VS3u.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-oFjciODD.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-C76WsxC3.js","snippetPresets-DvPMxpX_.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","Page-7TwLLapg.js","ApiExamples-CuNQfndH.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BVFpVUoF.js","shallow-t59Jg5Kr.js","getApiPlaygroundDisplay-C_JZ4amX.js","CodeSnippet-CLRDnx_h.js","CodeSnippets-C2myU4kc.js","getPastedJson-B-JaVXw7.js","icon-BA-iDhH3.js","MethodPill-D4qZABFp.js","DuplicateIcon-THIDKO1O.js","createIcon-CYYJwgFd.js","DynamicMarkdown-UGQuxDKp.js","SectionHeading-jYELb23h.js","axios-vUo_bRtp.js","Markdown-DKsLa3wy.js","clsx-CefdjKz2.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BaREnp3o.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-sgx_0XzF.js"]}