Google reCAPTCHA Enterprise on Google Cloud Platform (GCP)
You can use Google reCAPTCHA Enterprise as a service for traffic exceeding 1 million assessments per month.To learn how to configure reCAPTCHA Enterprise on GCP, read Set up reCAPTCHA Enterprise … on Google Documentation.
The hCaptcha widget can protect your applications from bots, spam, and other forms of automated abuse.To learn more about hCaptcha and how to get configuration details, read Switch from reCAPTCHA to hCaptcha on hCaptcha Docs.
Friendly Captcha is a system for preventing spam on your website. You can add the Friendly Captcha widget to your web app to fight spam, with little impact to the user experience.To learn more about Friendly Captcha and how to get configuration details, read Installation on Friendly Captcha Docs.
Arkose Labs provides a bot detection solution for mitigating human-based and bot-driven attacks. For more information on seamlessly integrating with Arkose as your CAPTCHA provider, see Arkose Bot Manager.
You must upgrade to Auth0.js v9.23+ to use Arkose as a CAPTCHA provider.
When using Arkose as the CAPTCHA provider, the Auth0.js WebAuth client’s renderCaptcha method allows you to pass a callback function. The second parameter of the callback will be a payload object containing the triggerCaptcha function. The triggerCaptcha function can be used to configure how your application handles and renders the CAPTCHA prompt.To learn more about configuring the renderCaptcha method, read renderCaptcha in the Auth0.js documentation.
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Auth0 Docs","description":"Auth0 documentation","colors":{"primary":"#9921FE","light":"#BC6DFF","dark":"#343434"},"logo":{"light":"https://mintlify.s3.us-west-1.amazonaws.com/auth0/docs/images/logo/light.svg","dark":"https://mintlify.s3.us-west-1.amazonaws.com/auth0/docs/images/logo/dark.svg","href":"https://auth0.com/docs/"},"favicon":"https://mintlify.s3.us-west-1.amazonaws.com/auth0/docs/images/logo/favicon.svg","api":{"params":{"post":["x-release-lifecycle"]},"playground":{"proxy":false},"url":"full"},"background":{"decoration":"gradient"},"seo":{"metatags":{"canonical":"https://auth0.com","og:image":"docs/images/share-image.png"}},"fonts":{"body":{"family":"Inter","source":"https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900\u0026display=swap","format":"woff2"}},"styling":{"eyebrows":"breadcrumbs","latex":true},"integrations":{"adobe":{"launchUrl":"https://assets.adobedtm.com/6bb3f7663515/7006851c9849/launch-af624fe9e34f.min.js"},"gtm":{"tagId":"GTM-W7FRLJ"},"heap":{"appId":"1279799279"},"onetrust":{"domainScript":"96e22fd8-d619-4cdd-a3c6-d51529d21faf","categoryId":"C0002","scriptSource":"https://cdn.cookielaw.org/scripttemplates/otSDKStub.js"}},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"navigation":{"languages":[{"language":"en","footer":{"socials":{"x-twitter":"https://x.com/auth0","github":"https://github.com/auth0","linkedin":"https://www.linkedin.com/company/auth0"},"links":[{"header":"Developers","items":[{"label":"Developer Hub","href":"https://developer.auth0.com"},{"label":"Code Samples \u0026 Guides","href":"https://developer.auth0.com/resources"},{"label":"Zero Index Newsletter","href":"https://auth0.com/blog/newsletter"},{"label":"Blog","href":"https://auth0.com/blog"},{"label":"Changelog","href":"https://auth0.com/changelog"}]},{"header":"Docs","items":[{"label":"Documentation","href":"https://auth0.com/docs"},{"label":"Quickstarts","href":"https://auth0.com/docs/quickstarts"},{"label":"APIs","href":"https://auth0.com/docs/api"},{"label":"SDK Libraries","href":"https://auth0.com/docs/libraries"},{"label":"Learn","href":"https://auth0.com/learn"},{"label":"Intro to IAM (CIAM)","href":"https://auth0.com/intro-to-iam"},{"label":"Reports","href":"https://auth0.com/resources/whitepapers"},{"label":"Webinars","href":"https://auth0.com/resources/webinars"}]},{"header":"Support Center","items":[{"label":"Community","href":"https://community.auth0.com"},{"label":"Help","href":"https://support.auth0.com"},{"label":"FAQs","href":"https://auth0.com/docs/troubleshoot"},{"label":"Auth0","href":"https://auth0.com"}]},{"header":"Company","items":[{"label":"Our Customers","href":"https://auth0.com/customers"},{"label":"Compliance","href":"https://auth0.com/security"},{"label":"Partners","href":"https://auth0.com/partners"},{"label":"Careers","href":"https://www.okta.com/company/careers"},{"label":"Okta + Auth0","href":"https://www.okta.com/okta-and-auth0"},{"label":"About us","href":"https://auth0.com/about"}]}]},"href":"docs/get-started"},{"language":"fr-ca","footer":{"socials":{"x-twitter":"https://x.com/auth0","github":"https://github.com/auth0","linkedin":"https://www.linkedin.com/company/auth0"},"links":[{"header":"Développeurs","items":[{"label":"Espace développeurs","href":"https://developer.auth0.com"},{"label":"Exemples de code et guides","href":"https://developer.auth0.com/resources"},{"label":"Infolettre Zero Index","href":"https://auth0.com/blog/newsletter"},{"label":"Blogue","href":"https://auth0.com/blog"},{"label":"Journal des modifications","href":"https://auth0.com/changelog"}]},{"header":"Documentation","items":[{"label":"Documentation","href":"https://auth0.com/docs"},{"label":"Guides de démarrage rapide","href":"https://auth0.com/docs/quickstarts"},{"label":"API","href":"https://auth0.com/docs/api"},{"label":"Bibliothèques SDK","href":"https://auth0.com/docs/libraries"},{"label":"Apprendre","href":"https://auth0.com/learn"},{"label":"Introduction à l’IAM (CIAM)","href":"https://auth0.com/intro-to-iam"},{"label":"Rapports","href":"https://auth0.com/resources/whitepapers"},{"label":"Webinaires","href":"https://auth0.com/resources/webinars"}]},{"header":"Centre d’assistance","items":[{"label":"Communauté","href":"https://community.auth0.com"},{"label":"Aide","href":"https://support.auth0.com"},{"label":"Foire aux questions","href":"https://auth0.com/docs/troubleshoot"},{"label":"Auth0","href":"https://auth0.com"}]},{"header":"Entreprise","items":[{"label":"Nos clients","href":"https://auth0.com/customers"},{"label":"Conformité","href":"https://auth0.com/security"},{"label":"Partenaires","href":"https://auth0.com/partners"},{"label":"Carrières","href":"https://www.okta.com/company/careers"},{"label":"Okta + Auth0","href":"https://www.okta.com/okta-and-auth0"},{"label":"À propos de nous","href":"https://auth0.com/about"}]}]},"href":"docs/fr-ca/get-started"},{"language":"ja-jp","footer":{"socials":{"x-twitter":"https://x.com/auth0","github":"https://github.com/auth0","linkedin":"https://www.linkedin.com/company/auth0"},"links":[{"header":"開発者向け","items":[{"label":"開発者ハブ","href":"https://developer.auth0.com"},{"label":"コードサンプルとガイド","href":"https://developer.auth0.com/resources"},{"label":"Zero Index Newsletter","href":"https://auth0.com/blog/newsletter"},{"label":"ブログ","href":"https://auth0.com/blog"},{"label":"変更履歴","href":"https://auth0.com/changelog"}]},{"header":"ドキュメント","items":[{"label":"ドキュメント","href":"https://auth0.com/docs"},{"label":"クイックスタート","href":"https://auth0.com/docs/quickstarts"},{"label":"API","href":"https://auth0.com/docs/api"},{"label":"SDKライブラリ","href":"https://auth0.com/docs/libraries"},{"label":"教育","href":"https://auth0.com/learn"},{"label":"IAM(CIAM)入門","href":"https://auth0.com/intro-to-iam"},{"label":"レポート","href":"https://auth0.com/resources/whitepapers"},{"label":"ウェビナー","href":"https://auth0.com/resources/webinars"}]},{"header":"サポートセンター","items":[{"label":"コミュニティ","href":"https://community.auth0.com"},{"label":"ヘルプ","href":"https://support.auth0.com"},{"label":"よくある質問","href":"https://auth0.com/docs/troubleshoot"},{"label":"Auth0","href":"https://auth0.com"}]},{"header":"会社情報","items":[{"label":"導入企業","href":"https://auth0.com/customers"},{"label":"コンプライアンス","href":"https://auth0.com/security"},{"label":"パートナー","href":"https://auth0.com/partners"},{"label":"採用情報","href":"https://www.okta.com/company/careers"},{"label":"Okta + Auth0","href":"https://www.okta.com/okta-and-auth0"},{"label":"私たちについて","href":"https://auth0.com/about"}]}]},"href":"docs/ja-jp/get-started"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"auth0","hasAudioNarration":false,"actualSubdomain":"auth0","customDomains":["auth0.com","auth0.auth0-mintlify.app"],"gitSource":{"type":"github","owner":"atko-cic","repo":"docs","deployBranch":"main","contentDirectory":"main","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae8e1da480840e7de73f336","collectionId":"8b27c171-adb9-412b-b579-2cfe16af78ab","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae8e1da480840e7de73f336"},"feedback":{"thumbs":true,"contextualFeedback":{"textInputOnly":true,"allowEmail":false},"agentFeedback":false},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aea4f5ce7b65c7b68c1bef8","clientVersion":"0.0.4054","searchFilterCounts":[{"language":"fr-ca","tag":"Outils de développement","count":1040},{"language":"ja-jp","tag":"開発ツール","count":1040},{"language":"en","tag":"Dev Tools","count":838},{"language":"en","tag":"APIs","count":614},{"language":"fr-ca","tag":"API","count":608},{"language":"ja-jp","tag":"API","count":608},{"language":"en","tag":"Management API","count":490},{"language":"fr-ca","tag":"Management API","count":484},{"language":"ja-jp","tag":"Management API","count":484},{"language":"en","tag":"Get Started","count":289},{"language":"ja-jp","tag":"はじめに","count":285},{"language":"fr-ca","tag":"Personnaliser","count":275},{"language":"ja-jp","tag":"カスタマイズ","count":275},{"language":"fr-ca","tag":"Pour commencer","count":268},{"language":"en","tag":"Reference","count":252},{"language":"en","tag":"Extend","count":216},{"language":"en","tag":"SDKs","count":209},{"language":"fr-ca","tag":"SDK","count":209},{"language":"ja-jp","tag":"SDK","count":209},{"language":"en","tag":"Monitor","count":194},{"language":"en","tag":"Authenticate","count":186},{"language":"fr-ca","tag":"Authentifier","count":186},{"language":"ja-jp","tag":"認証","count":186},{"language":"en","tag":"Tenant Log Event Types","count":171},{"language":"fr-ca","tag":"Catalogue des journaux du locataire","count":170},{"language":"ja-jp","tag":"テナントログカタログ","count":170},{"language":"fr-ca","tag":"Sécuriser","count":151},{"language":"ja-jp","tag":"セキュリティ","count":151},{"language":"fr-ca","tag":"Protéger votre application","count":133},{"language":"ja-jp","tag":"アプリケーションを保護する","count":133}],"searchSettings":{"showContentSnippets":true}},"assistantConfig":{"enableAskAiButton":true,"enableStarterQuestions":false,"enableAskAiSearchBar":false,"deflection":{"enabled":false,"type":"link"}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"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":"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":"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":"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":"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":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","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":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","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},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"ui/css/recipe.css","content":"#content-area:has(.recipe-container){overflow:visible!important}.recipe-content .recipe-section:first-of-type{margin-top:1rem}.active-section{opacity:1!important}"},{"filePath":"ui/css/styles.css","content":"@font-face{font-family:\"Inter Fallback\";src:local(\"Arial\");size-adjust:107%;ascent-override:90%;descent-override:22%;line-gap-override:0%}body{font-feature-settings:\"kern\",\"liga\",\"clig\",\"calt\",\"rvrn\";font-family:\"Inter\",\"Inter Fallback\",system-ui,-apple-system,sans-serif}.mdx-content{line-height:1.625}#page-title{font-size:var(--text-3xl);line-height:1.15}.mdx-content .link{font-weight:inherit;border:0;text-decoration:underline;text-underline-offset:2px;transition:opacity .15s ease-out}.mdx-content .link:hover{color:rgb(var(--tw-prose-links))}.dark .mdx-content .link:hover,.mdx-content .link,.nav-tabs-item[data-active]{color:rgb(var(--primary))}.mdx-content table{border-radius:12px;border:0;box-shadow:0 0 0 1px rgb(from var(--border-muted) r g b/50%);overflow:hidden}img.icon.inline{margin:0}#navbar{padding-bottom:.5rem;box-shadow:0 0 0 1px oklch(from var(--border) l c h/.1),0 1px 1px -1px oklch(from var(--shadow) l c h/.06),0 2px 2px -2px oklch(from var(--shadow) l c h/.06),0 2px 4px -2px oklch(from var(--shadow) l c h/.06)}body:has([data-uc-component] [data-slot=dialog-content]) #navbar>div:first-child{border-bottom-color:transparent}body[data-scroll-locked]:has([data-uc-component] [data-slot=dialog-content]){margin-right:0!important}#adu-root{transition:opacity .2s ease,visibility 0s linear 0s}body:has([data-uc-component] [data-slot=dialog-content]) #adu-root{opacity:0;visibility:hidden;transition:opacity .2s ease,visibility 0s linear .2s}.nav-tabs{column-gap:0}.nav-tabs-item{padding:.25rem .75rem;text-shadow:none}.dark .nav-tabs-item[data-active]{color:rgb(var(--primary-light))}.nav-tabs-item:hover{color:rgb(var(--primary));background-color:rgb(var(--primary)/.1);transition:all .15s ease-out;border-radius:.75rem}#sidebar-content{border-color:transparent}.card{transition:all .15s ease}.libraries_card{border:1px solid var(--border-muted)}.api_card_wrapper .card{background-color:transparent;color:var(--foreground-card);border-radius:0;border-bottom:3px solid currentColor!important;margin-bottom:1rem}[data-component-part=field-meta-post]{background-color:lab(91.896% .077188 -6.94053);color:lab(36.091% 25.9241 -68.0384)}.dark [data-component-part=field-meta-post]{background-color:lab(16.0426% 6.71726 -27.2409);color:lab(72.6029% 4.08953 -41.9669)}body:has([data-uc-component] [data-slot=dialog-overlay]) [data-assistant-bar]{visibility:hidden}"},{"filePath":"ui/css/apiExplorer.css","content":".api-section-heading-subtitle,.array-param-field,.object-param-field,.primitive-param-field{font-size:.875rem}svg[style*=\"/zsh.svg\"]{-webkit-mask-image:url(/docs/images/auth0-cli.svg)!important;mask-image:url(/docs/images/auth0-cli.svg)!important}"},{"filePath":"ui/auth0-docs-ui-1.10.0.css","content":"@keyframes pulse{50%{opacity:.5}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-ease:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:host,:root{--adu-font-sans:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--adu-font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;--adu-color-blue-500:oklch(62.3% .214 259.815);--adu-color-white:#fff;--adu-spacing:.25rem;--adu-text-xs--line-height:calc(1/.75);--adu-text-sm--line-height:calc(1.25/.875);--adu-text-base--line-height:1.5;--adu-text-lg--line-height:calc(1.75/1.125);--adu-text-xl--line-height:calc(1.75/1.25);--adu-text-2xl--line-height:calc(2/1.5);--adu-text-3xl--line-height:1.2;--adu-tracking-widest:.1em;--adu-ease-in-out:cubic-bezier(.4,0,.2,1);--adu-animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--adu-default-transition-duration:.15s;--adu-default-transition-timing-function:cubic-bezier(.4,0,.2,1);--adu-default-font-family:var(--adu-font-sans);--adu-default-mono-font-family:var(--adu-font-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0;margin-inline-end:4px}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--adu-default-font-family,ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\");font-feature-settings:var(--adu-default-font-feature-settings,normal);font-variation-settings:var(--adu-default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--adu-default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace);font-feature-settings:var(--adu-default-mono-font-feature-settings,normal);font-variation-settings:var(--adu-default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--color-border);outline-color:var(--color-ring)}@supports (color:color-mix(in lab,red,red)){*{outline-color:color-mix(in srgb,var(--color-ring)50%,transparent)}}body{background-color:var(--color-background);color:var(--color-foreground);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-synthesis:style;font-feature-settings:\"kern\",\"liga\",\"clig\",\"calt\",\"rvrn\"}}@layer components;@layer utilities{.adu\\:\\@container\\/card-header{container:card-header/inline-size}.adu\\:pointer-events-none{pointer-events:none}.adu\\:sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden}.adu\\:absolute,.adu\\:sr-only{position:absolute}.adu\\:fixed{position:fixed}.adu\\:relative{position:relative}.adu\\:static{position:static}.adu\\:top-0{top:calc(var(--adu-spacing)*0)}.adu\\:right-0{right:calc(var(--adu-spacing)*0)}.adu\\:left-0{left:calc(var(--adu-spacing)*0)}.adu\\:left-2{left:calc(var(--adu-spacing)*2)}.adu\\:left-73{left:calc(var(--adu-spacing)*73)}.adu\\:z-0{z-index:0}.adu\\:z-30{z-index:30}.adu\\:z-50{z-index:50}.adu\\:z-\\[39\\]{z-index:39}.adu\\:col-start-2{grid-column-start:2}.adu\\:row-span-2{grid-row:span 2/span 2}.adu\\:row-start-1{grid-row-start:1}.adu\\:-mx-1{margin-inline:calc(var(--adu-spacing)*-1)}.adu\\:my-1{margin-block:calc(var(--adu-spacing)*1)}.adu\\:mr-2{margin-right:calc(var(--adu-spacing)*2)}.adu\\:-ml-8{margin-left:calc(var(--adu-spacing)*-8)}.adu\\:ml-2{margin-left:calc(var(--adu-spacing)*2)}.adu\\:ml-auto{margin-left:auto}.adu\\:flex{display:flex}.adu\\:grid{display:grid}.adu\\:hidden{display:none}.adu\\:inline-block{display:inline-block}.adu\\:inline-flex{display:inline-flex}.adu\\:aspect-square{aspect-ratio:1}.adu\\:size-2{width:calc(var(--adu-spacing)*2);height:calc(var(--adu-spacing)*2)}.adu\\:size-3\\.5{width:calc(var(--adu-spacing)*3.5);height:calc(var(--adu-spacing)*3.5)}.adu\\:size-4{width:calc(var(--adu-spacing)*4);height:calc(var(--adu-spacing)*4)}.adu\\:size-8{width:calc(var(--adu-spacing)*8);height:calc(var(--adu-spacing)*8)}.adu\\:size-9{width:calc(var(--adu-spacing)*9);height:calc(var(--adu-spacing)*9)}.adu\\:size-full{width:100%;height:100%}.adu\\:h-4{height:calc(var(--adu-spacing)*4)}.adu\\:h-8{height:calc(var(--adu-spacing)*8)}.adu\\:h-9{height:calc(var(--adu-spacing)*9)}.adu\\:h-10{height:calc(var(--adu-spacing)*10)}.adu\\:h-14{height:calc(var(--adu-spacing)*14)}.adu\\:h-\\[18px\\]{height:18px}.adu\\:h-px{height:1px}.adu\\:max-h-\\(--radix-dropdown-menu-content-available-height\\){max-height:var(--radix-dropdown-menu-content-available-height)}.adu\\:max-h-72\\.5{max-height:calc(var(--adu-spacing)*72.5)}.adu\\:max-h-\\[calc\\(100\\%\\+2px\\)\\]{max-height:calc(100% + 2px)}.adu\\:w-4{width:calc(var(--adu-spacing)*4)}.adu\\:w-8{width:calc(var(--adu-spacing)*8)}.adu\\:w-9{width:calc(var(--adu-spacing)*9)}.adu\\:w-48{width:calc(var(--adu-spacing)*48)}.adu\\:w-73{width:calc(var(--adu-spacing)*73)}.adu\\:w-\\[24px\\]{width:24px}.adu\\:w-full{width:100%}.adu\\:min-w-\\[8rem\\]{min-width:8rem}.adu\\:flex-1{flex:1}.adu\\:shrink-0{flex-shrink:0}.adu\\:origin-\\(--radix-dropdown-menu-content-transform-origin\\){transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.adu\\:animate-in{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.adu\\:animate-out{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.adu\\:animate-pulse{animation:var(--adu-animate-pulse)}.adu\\:cursor-default{cursor:default}.adu\\:auto-rows-min{grid-auto-rows:min-content}.adu\\:grid-rows-\\[auto_auto\\]{grid-template-rows:auto auto}.adu\\:flex-col{flex-direction:column}.adu\\:flex-wrap{flex-wrap:wrap}.adu\\:items-center{align-items:center}.adu\\:items-start{align-items:flex-start}.adu\\:justify-center{justify-content:center}.adu\\:gap-0{gap:calc(var(--adu-spacing)*0)}.adu\\:gap-1{gap:calc(var(--adu-spacing)*1)}.adu\\:gap-1\\.5{gap:calc(var(--adu-spacing)*1.5)}.adu\\:gap-2{gap:calc(var(--adu-spacing)*2)}.adu\\:gap-3{gap:calc(var(--adu-spacing)*3)}.adu\\:gap-4{gap:calc(var(--adu-spacing)*4)}.adu\\:gap-6{gap:calc(var(--adu-spacing)*6)}.adu\\:gap-8{gap:calc(var(--adu-spacing)*8)}.adu\\:self-start{align-self:flex-start}.adu\\:self-stretch{align-self:stretch}.adu\\:justify-self-end{justify-self:flex-end}.adu\\:overflow-auto{overflow:auto}.adu\\:overflow-hidden{overflow:hidden}.adu\\:overflow-x-hidden{overflow-x:hidden}.adu\\:overflow-y-auto{overflow-y:auto}.adu\\:rounded{border-radius:.25rem}.adu\\:rounded-full{border-radius:9999px}.adu\\:rounded-md{border-radius:.5rem}.adu\\:rounded-none{border-radius:0}.adu\\:rounded-sm{border-radius:.375rem}.adu\\:rounded-xl{border-radius:.875rem}.adu\\:border{border-style:var(--tw-border-style);border-width:1px}.adu\\:border\\!{border-style:var(--tw-border-style)!important;border-width:1px!important}.adu\\:border-border-input{border-color:var(--border-input)}.adu\\:border-border-muted{border-color:var(--border-muted)}.adu\\:bg-\\[\\#232220\\]{background-color:#232220}.adu\\:bg-blue-500{background-color:var(--adu-color-blue-500)}.adu\\:bg-border-input{background-color:var(--border-input)}.adu\\:bg-button-primary{background-color:var(--button-primary)}.adu\\:bg-card{background-color:var(--card)}.adu\\:bg-destructive{background-color:var(--destructive)}.adu\\:bg-input{background-color:var(--input)}.adu\\:bg-page{background-color:var(--page)}.adu\\:bg-popover{background-color:var(--popover)}.adu\\:bg-surface-muted{background-color:var(--surface-muted)}.adu\\:bg-surface-selected{background-color:var(--surface-selected)}.adu\\:fill-current{fill:currentColor}.adu\\:p-0{padding:calc(var(--adu-spacing)*0)}.adu\\:p-1{padding:calc(var(--adu-spacing)*1)}.adu\\:p-2\\.5{padding:calc(var(--adu-spacing)*2.5)}.adu\\:p-4{padding:calc(var(--adu-spacing)*4)}.adu\\:px-1{padding-inline:calc(var(--adu-spacing)*1)}.adu\\:px-2{padding-inline:calc(var(--adu-spacing)*2)}.adu\\:px-3{padding-inline:calc(var(--adu-spacing)*3)}.adu\\:px-4{padding-inline:calc(var(--adu-spacing)*4)}.adu\\:px-6{padding-inline:calc(var(--adu-spacing)*6)}.adu\\:py-1\\.5{padding-block:calc(var(--adu-spacing)*1.5)}.adu\\:py-2{padding-block:calc(var(--adu-spacing)*2)}.adu\\:py-3{padding-block:calc(var(--adu-spacing)*3)}.adu\\:py-6{padding-block:calc(var(--adu-spacing)*6)}.adu\\:pt-3{padding-top:calc(var(--adu-spacing)*3)}.adu\\:pr-2{padding-right:calc(var(--adu-spacing)*2)}.adu\\:pl-8{padding-left:calc(var(--adu-spacing)*8)}.adu\\:text-center{text-align:center}.adu\\:font-aeonik{font-family:Aeonik,sans-serif}.adu\\:font-inter{font-family:Inter,Inter Fallback,system-ui,-apple-system,sans-serif}.adu\\:font-roboto-mono{font-family:Roboto Mono,sans-serif}.adu\\:text-2xl{font-size:2rem;line-height:var(--tw-leading,var(--adu-text-2xl--line-height))}.adu\\:text-3xl{font-size:2.5rem;line-height:var(--tw-leading,var(--adu-text-3xl--line-height))}.adu\\:text-base{font-size:1rem;line-height:var(--tw-leading,var(--adu-text-base--line-height))}.adu\\:text-lg{font-size:1.25rem;line-height:var(--tw-leading,var(--adu-text-lg--line-height))}.adu\\:text-sm{font-size:.875rem;line-height:var(--tw-leading,var(--adu-text-sm--line-height))}.adu\\:text-sm\\!{font-size:.875rem!important;line-height:var(--tw-leading,var(--adu-text-sm--line-height))!important}.adu\\:text-xl{font-size:1.5rem;line-height:var(--tw-leading,var(--adu-text-xl--line-height))}.adu\\:text-xs{font-size:.75rem;line-height:var(--tw-leading,var(--adu-text-xs--line-height))}.adu\\:leading-1\\.5{--tw-leading:calc(var(--adu-spacing)*1.5);line-height:calc(var(--adu-spacing)*1.5)}.adu\\:leading-1\\.15{--tw-leading:1.15;line-height:1.15}.adu\\:leading-1\\.20{--tw-leading:1.2;line-height:1.2}.adu\\:leading-1\\.25{--tw-leading:1.25;line-height:1.25}.adu\\:leading-1\\.30{--tw-leading:1.3;line-height:1.3}.adu\\:leading-1\\.33{--tw-leading:1.33;line-height:1.33}.adu\\:leading-1\\.40{--tw-leading:1.4;line-height:1.4}.adu\\:leading-1\\.45{--tw-leading:1.45;line-height:1.45}.adu\\:leading-1\\.65{--tw-leading:1.65;line-height:1.65}.adu\\:leading-none{--tw-leading:1;line-height:1}.adu\\:font-medium{--tw-font-weight:500;font-weight:500}.adu\\:font-normal{--tw-font-weight:400;font-weight:400}.adu\\:font-semibold{--tw-font-weight:600;font-weight:600}.adu\\:tracking-n-2xl{--tw-tracking:-.02em;letter-spacing:-.02em}.adu\\:tracking-n-3xl{--tw-tracking:-.02125em;letter-spacing:-.02125em}.adu\\:tracking-n-5xl{--tw-tracking:-.044em;letter-spacing:-.044em}.adu\\:tracking-n-6xl{--tw-tracking:-.05em;letter-spacing:-.05em}.adu\\:tracking-n-lg{--tw-tracking:-.011em;letter-spacing:-.011em}.adu\\:tracking-n-md{--tw-tracking:-.00625em;letter-spacing:-.00625em}.adu\\:tracking-n-sm{--tw-tracking:-.006em;letter-spacing:-.006em}.adu\\:tracking-n-xl{--tw-tracking:-.01125em;letter-spacing:-.01125em}.adu\\:tracking-n-xs{--tw-tracking:-.00525em;letter-spacing:-.00525em}.adu\\:tracking-p-2xl{--tw-tracking:.0375em;letter-spacing:.0375em}.adu\\:tracking-p-lg{--tw-tracking:.011em;letter-spacing:.011em}.adu\\:tracking-p-md{--tw-tracking:.01em;letter-spacing:.01em}.adu\\:tracking-p-sm{--tw-tracking:.005em;letter-spacing:.005em}.adu\\:tracking-p-xs{--tw-tracking:.0025em;letter-spacing:.0025em}.adu\\:tracking-widest{--tw-tracking:var(--adu-tracking-widest);letter-spacing:var(--adu-tracking-widest)}.adu\\:whitespace-nowrap{white-space:nowrap}.adu\\:text-\\[\\#f4f4f4\\]{color:#f4f4f4}.adu\\:text-\\[\\#f4f4f4\\]\\!{color:#f4f4f4!important}.adu\\:text-foreground{color:var(--foreground)}.adu\\:text-foreground-bold{color:var(--foreground-bold)}.adu\\:text-foreground-icon{color:var(--foreground-icon)}.adu\\:text-foreground-inverse{color:var(--foreground-inverse)}.adu\\:text-foreground-inverse\\!{color:var(--foreground-inverse)!important}.adu\\:text-white{color:var(--adu-color-white)}.adu\\:uppercase{text-transform:uppercase}.adu\\:underline{text-decoration-line:underline}.adu\\:underline-offset-4{text-underline-offset:4px}.adu\\:underline-offset-auto{text-underline-offset:auto}.adu\\:shadow-lg{--tw-shadow:0px 12px 12px -6px var(--tw-shadow-color,hsla(var(--color-shadow),var(--transparency-level-3))),0px 6px 6px -1.5px var(--tw-shadow-color,hsla(var(--color-shadow),var(--transparency-level-2))),0px 4px 4px 0px var(--tw-shadow-color,hsla(var(--color-shadow),var(--transparency-level-1))),0px 2px 2px -1px var(--tw-shadow-color,hsla(var(--color-shadow),var(--transparency-level-1))),0px 1px 1px -.5px var(--tw-shadow-color,hsla(var(--color-shadow),var(--transparency-level-1)))}.adu\\:shadow-lg,.adu\\:shadow-md,.adu\\:shadow-sm{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.adu\\:shadow-md{--tw-shadow:0px 6px 6px -3px var(--tw-shadow-color,hsla(var(--color-shadow),var(--transparency-level-2))),0px 4px 4px -1px var(--tw-shadow-color,hsla(var(--color-shadow),var(--transparency-level-1))),0px 2px 2px -1px var(--tw-shadow-color,hsla(var(--color-shadow),var(--transparency-level-1))),0px 1px 1px -.5px var(--tw-shadow-color,hsla(var(--color-shadow),var(--transparency-level-1)))}.adu\\:shadow-sm{--tw-shadow:0px 4px 4px -2px var(--tw-shadow-color,hsla(var(--color-shadow),var(--transparency-level-1))),0px 2px 2px -1px var(--tw-shadow-color,hsla(var(--color-shadow),var(--transparency-level-1))),0px 1px 1px -.5px var(--tw-shadow-color,hsla(var(--color-shadow),var(--transparency-level-1)))}.adu\\:outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.adu\\:outline-hidden{outline-offset:2px;outline:2px solid #0000}}.adu\\:transition-\\[height\\],.adu\\:transition-all{transition-property:height;transition-timing-function:var(--tw-ease,var(--adu-default-transition-timing-function));transition-duration:var(--tw-duration,var(--adu-default-transition-duration))}.adu\\:transition-all{transition-property:all}.adu\\:ease-in-out{--tw-ease:var(--adu-ease-in-out);transition-timing-function:var(--adu-ease-in-out)}.adu\\:fill-mode-both{--tw-animation-fill-mode:both;animation-fill-mode:both}.adu\\:outline-none{--tw-outline-style:none;outline-style:none}.adu\\:select-none{-webkit-user-select:none;user-select:none}.adu\\:fade-in{--tw-enter-opacity:0}.adu\\:fade-out{--tw-exit-opacity:0}.adu\\:slide-in-from-left{--tw-enter-translate-x:-100%}.adu\\:slide-in-from-right{--tw-enter-translate-x:100%}.adu\\:slide-out-to-left{--tw-exit-translate-x:-100%}.adu\\:slide-out-to-right{--tw-exit-translate-x:100%}@media (hover:hover){.adu\\:hover\\:bg-button-primary\\/90:hover{background-color:var(--button-primary)}@supports (color:color-mix(in lab,red,red)){.adu\\:hover\\:bg-button-primary\\/90:hover{background-color:color-mix(in oklab,var(--button-primary)90%,transparent)}}.adu\\:hover\\:bg-destructive\\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.adu\\:hover\\:bg-destructive\\/90:hover{background-color:color-mix(in oklab,var(--destructive)90%,transparent)}}.adu\\:hover\\:underline:hover{text-decoration-line:underline}}.adu\\:focus-visible\\:ring-\\[3px\\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.adu\\:focus-visible\\:ring-destructive\\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.adu\\:focus-visible\\:ring-destructive\\/20:focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.adu\\:focus-visible\\:outline-hidden:focus-visible{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.adu\\:focus-visible\\:outline-hidden:focus-visible{outline-offset:2px;outline:2px solid #0000}}.adu\\:disabled\\:pointer-events-none:disabled{pointer-events:none}.adu\\:disabled\\:opacity-50:disabled{opacity:.5}.adu\\:has-data-\\[slot\\=card-action\\]\\:grid-cols-\\[1fr_auto\\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.adu\\:has-\\[\\>svg\\]\\:px-2\\.5:has(>svg){padding-inline:calc(var(--adu-spacing)*2.5)}.adu\\:has-\\[\\>svg\\]\\:px-3:has(>svg){padding-inline:calc(var(--adu-spacing)*3)}.adu\\:has-\\[\\>svg\\]\\:px-4:has(>svg){padding-inline:calc(var(--adu-spacing)*4)}.adu\\:aria-invalid\\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.adu\\:aria-invalid\\:ring-destructive\\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.adu\\:aria-invalid\\:ring-destructive\\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.adu\\:\\[\\\u0026_svg\\]\\:pointer-events-none svg,.adu\\:data-\\[disabled\\]\\:pointer-events-none[data-disabled]{pointer-events:none}.adu\\:data-\\[disabled\\]\\:opacity-50[data-disabled]{opacity:.5}.adu\\:data-\\[inset\\]\\:pl-8[data-inset]{padding-left:calc(var(--adu-spacing)*8)}.adu\\:data-\\[side\\=bottom\\]\\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(var(--adu-spacing)*2*-1)}.adu\\:data-\\[side\\=left\\]\\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(var(--adu-spacing)*2)}.adu\\:data-\\[side\\=right\\]\\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(var(--adu-spacing)*2*-1)}.adu\\:data-\\[side\\=top\\]\\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(var(--adu-spacing)*2)}.adu\\:data-\\[state\\=closed\\]\\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.adu\\:data-\\[state\\=closed\\]\\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.adu\\:data-\\[state\\=closed\\]\\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.adu\\:data-\\[state\\=open\\]\\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.adu\\:data-\\[state\\=open\\]\\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.adu\\:data-\\[state\\=open\\]\\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.adu\\:data-\\[variant\\=destructive\\]\\:text-destructive[data-variant=destructive]{color:var(--destructive)}.adu\\:data-\\[variant\\=destructive\\]\\:focus\\:bg-destructive\\/10[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.adu\\:data-\\[variant\\=destructive\\]\\:focus\\:bg-destructive\\/10[data-variant=destructive]:focus{background-color:color-mix(in oklab,var(--destructive)10%,transparent)}}.adu\\:data-\\[variant\\=destructive\\]\\:focus\\:text-destructive[data-variant=destructive]:focus{color:var(--destructive)}@media (min-width:64rem){.adu\\:lg\\:block{display:block}.adu\\:lg\\:w-auto{width:auto}}.adu\\:dark\\:bg-destructive\\/60:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.adu\\:dark\\:bg-destructive\\/60:is(.dark *){background-color:color-mix(in oklab,var(--destructive)60%,transparent)}}.adu\\:dark\\:bg-input\\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.adu\\:dark\\:bg-input\\/30:is(.dark *){background-color:color-mix(in oklab,var(--input)30%,transparent)}}.adu\\:dark\\:shadow-xs:is(.dark *){--tw-shadow:0px 2px 2px -1px var(--tw-shadow-color,hsla(var(--color-shadow),var(--transparency-level-1))),0px 1px 1px -.5px var(--tw-shadow-color,hsla(var(--color-shadow),var(--transparency-level-1)));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}@media (hover:hover){.adu\\:dark\\:hover\\:bg-input\\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.adu\\:dark\\:hover\\:bg-input\\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--input)50%,transparent)}}}.adu\\:dark\\:focus-visible\\:ring-destructive\\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.adu\\:dark\\:focus-visible\\:ring-destructive\\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.adu\\:dark\\:aria-invalid\\:ring-destructive\\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.adu\\:dark\\:aria-invalid\\:ring-destructive\\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.adu\\:dark\\:data-\\[variant\\=destructive\\]\\:focus\\:bg-destructive\\/20:is(.dark *)[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.adu\\:dark\\:data-\\[variant\\=destructive\\]\\:focus\\:bg-destructive\\/20:is(.dark *)[data-variant=destructive]:focus{background-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.adu\\:\\[\\\u0026_svg\\]\\:shrink-0 svg{flex-shrink:0}.adu\\:\\[\\\u0026_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-4 svg:not([class*=size-]){width:calc(var(--adu-spacing)*4);height:calc(var(--adu-spacing)*4)}.adu\\:\\[\\.border-b\\]\\:pb-6.border-b{padding-bottom:calc(var(--adu-spacing)*6)}.adu\\:\\[\\.border-t\\]\\:pt-6.border-t{padding-top:calc(var(--adu-spacing)*6)}:is(.adu\\:data-\\[variant\\=destructive\\]\\:\\*\\:\\[svg\\]\\:\\!text-destructive[data-variant=destructive]>*):is(svg){color:var(--destructive)!important}}@property --tw-animation-delay{syntax:\"*\";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:\"*\";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:\"*\";inherits:false}@property --tw-animation-fill-mode{syntax:\"*\";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:\"*\";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:\"*\";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:\"*\";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:\"*\";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:\"*\";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:\"*\";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:\"*\";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:\"*\";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:\"*\";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:\"*\";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:\"*\";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:\"*\";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:\"*\";inherits:false;initial-value:0}@font-face{font-family:Inter Fallback;src:local(Arial);size-adjust:107%;ascent-override:90%;descent-override:22%;line-gap-override:0%}:root{--page:#fff;--card:#fff;--input:#fff;--destructive:#f3e2de;--popover:#fff;--layer:#fffc;--success:#abdfb9;--info:#b2c5fb;--caution:#ffe573;--warning:#ffbf9f;--button-subtle:#00000008;--surface-muted:#c2c2c2;--surface-selected:#efefef;--button-primary:#191919;--foreground:#767676;--foreground-inverse:#f4f4f4;--foreground-bold:#232220;--foreground-card:#232220;--foreground-destructive:#ba351d;--foreground-popover:#232220;--foreground-selected:#6742d5;--foreground-success:#008140;--foreground-info:#344ac5;--foreground-caution:#907600;--foreground-warning:#c45915;--foreground-icon:#1f1f1f;--border-boldest:#1f1f1f;--border-input:#e6e6e6;--border:#afadaa;--border-muted:#cecdca;--border-success:#008140;--border-info:#344ac5;--border-caution:#907600;--border-warning:#c45915;--code-layer:#f4f4f4;--code-content:#fffc;--code-string-key:#595959;--code-string-value:#149750;--code-boolean:#e27133;--code-delimiter:#afafaf;--code-number:#374ec9;--code-object:#6742d5;--color-shadow:0,0%,0%;--color-shadow-destructive:5,85%,37%;--transparency-level-1:.04;--transparency-level-2:.06;--transparency-level-3:.08;--transparency-level-4:.1;--transparency-level-5:.12;--transparency-level-6:.16;--transparency-level-7:.2;--transparency-level-8:.24;--transparency-level-9:.4}.dark{--page:#191919;--card:#21201f;--input:#0000000d;--destructive:#43140b;--popover:#21201f;--layer:#29272580;--success:#225835;--info:#2f428b;--caution:#433600;--warning:#63361f;--button-subtle:#ffffffe6;--surface-muted:#4a4a4a;--surface-selected:#282828;--button-primary:#fff;--foreground:#7b7b7b;--foreground-inverse:#191919;--foreground-bold:#efede9;--foreground-card:#efede9;--foreground-destructive:#ff9179;--foreground-popover:#efede9;--foreground-selected:#b3a7ff;--foreground-success:#61d287;--foreground-info:#94b2ff;--foreground-caution:#f8d523;--foreground-warning:#ff9f6e;--foreground-icon:#eee;--border-boldest:#eee;--border-input:#282828;--border:#63615e;--border-muted:#3f3d3a;--border-success:#61d287;--border-info:#94b2ff;--border-caution:#f8d523;--border-warning:#ff9f6e;--code-layer:#21201f;--code-content:#1a1918;--code-string-key:#b4b4b4;--code-string-value:#61d287;--code-boolean:#ff9f6e;--code-delimiter:#7b7b7b;--code-number:#94b2ff;--code-object:#b3a7ff;--color-shadow:0,0%,100%;--color-shadow-destructive:5,85%,37%;--transparency-level-1:.04;--transparency-level-2:.06;--transparency-level-3:.08;--transparency-level-4:.1;--transparency-level-5:.12;--transparency-level-6:.16;--transparency-level-7:.2;--transparency-level-8:.24;--transparency-level-9:.4}.adu-dropdown-menu-content,.adu-dropdown-menu-content:after,.adu-dropdown-menu-content:before{border-width:1px;border-color:var(--border-input)}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-leading{syntax:\"*\";inherits:false}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-tracking{syntax:\"*\";inherits:false}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"\u003cpercentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"\u003cpercentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"\u003clength>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ease{syntax:\"*\";inherits:false}"},{"filePath":"ui/css/ai.css","content":"@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(360deg)}}.connection-card-filters button,.connection-card-search{background:var(--card);border-color:var(--foreground);transition:all .2s ease}.connection-card-filters button.active{text-decoration:underline dotted;color:rgb(var(--primary));border-color:rgb(var(--primary))}.connection-card-no-results{text-decoration:none!important;cursor:default!important}.download-button-container{display:inline-block;margin-bottom:1rem}.download-button{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1.125rem .5rem 1rem;border-radius:.75rem;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease;text-decoration:none;color:var(--foreground-inverse);background-color:var(--button-primary);box-shadow:0 0 0 1px oklch(from var(--button-primary) l c h/.12),0 1px 1px -1px oklch(from var(--button-primary) l c h/.06),0 2px 2px -2px oklch(from var(--button-primary) l c h/.06),0 2px 4px -2px oklch(from var(--button-primary) l c h/.06),0 4px 6px -4px oklch(from var(--button-primary) l c h/.06),0 6px 8px -6px oklch(from var(--button-primary) l c h/.06),0 -1px 2px 0 oklch(from var(--button-primary) l c h/.2) inset}.download-button:hover:not(:disabled){background-color:oklch(from var(--button-primary) l c h/.8);box-shadow:0 0 0 4px oklch(from var(--button-primary) l c h/.06),0 1px 1px -1px oklch(from var(--button-primary) l c h/.06),0 2px 2px -2px oklch(from var(--button-primary) l c h/.06),0 2px 4px -2px oklch(from var(--button-primary) l c h/.06),0 4px 6px -4px oklch(from var(--button-primary) l c h/.06),0 6px 8px -6px oklch(from var(--button-primary) l c h/.06),0 -1px 2px 0 oklch(from var(--button-primary) l c h/.2) inset}.download-button:disabled{opacity:.6;cursor:not-allowed}.download-button.downloading{pointer-events:none}.download-spinner{animation:spin 1s linear infinite}"},{"filePath":"ui/universal-components/universal-components-1.0.27.css","href":"/_mintlify/custom/auth0/00cc1c5532398fe9/ui/universal-components/universal-components-1.0.27.css"}],"page":{"pagePath":"docs/secure/attack-protection/bot-detection/configure-captcha","slug":"/docs/secure/attack-protection/bot-detection/configure-captcha","pageMetadata":{"description":"Learn how to configure third-party CAPTCHA provider integrations with Auth0 Bot Detection.","title":"Configure Third-Party CAPTCHA Provider Integrations","href":"/docs/secure/attack-protection/bot-detection/configure-captcha"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Learn how to configure third-party CAPTCHA provider integrations with Auth0 Bot Detection.\"\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,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,strong:`strong`,..._provideComponents(),...props.components},{Heading,Tooltip,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Tooltip)_missingMdxReference(`Tooltip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Auth0 supports several third-party CAPTCHA provider integrations for `,_jsx(_components.a,{href:`/docs/secure/attack-protection/bot-detection`,children:`Bot Detection`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`google-recaptcha-enterprise-on-google-cloud-platform-gcp`,children:`Google reCAPTCHA Enterprise on Google Cloud Platform (GCP)`}),`\n`,_jsxs(_components.p,{children:[`You can use Google reCAPTCHA Enterprise as a `,_jsx(Tooltip,{tip:`Bot Detection: Form of attack protection in which Auth0 blocks suspected bot traffic by enabling a CAPTCHA during the login process.`,cta:`View Glossary`,href:`/docs/glossary?term=Bot+Detection`,children:`Bot Detection`}),` service for traffic exceeding 1 million assessments per month.`]}),`\n`,_jsxs(_components.p,{children:[`To learn how to configure reCAPTCHA Enterprise on GCP, read `,_jsx(_components.a,{href:`https://cloud.google.com/recaptcha-enterprise/docs/authenticate-apis`,children:`Set up reCAPTCHA Enterprise … on Google Documentation`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`locate-your-gcp-project-id`,children:`Locate your GCP project ID`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Go to your `,_jsx(_components.a,{href:`https://console.cloud.google.com/`,children:`Google Cloud Dashboard`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Select your project in the drop-down menu to see the corresponding `,_jsx(_components.strong,{children:`Project ID`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Make a note of the `,_jsx(_components.strong,{children:`Project ID`}),` as you will need it later.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`enable-recaptcha-enterprise`,children:`Enable reCAPTCHA Enterprise`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`In the `,_jsx(_components.a,{href:`https://console.cloud.google.com/`,children:`Google Cloud Dashboard`}),`, enter reCAPTCHA Enterprise API in the search bar, and then select it from the Marketplace results.`]}),`\n`,_jsxs(_components.li,{children:[`Select `,_jsx(_components.strong,{children:`Enable`}),` to enable the API.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`create-a-site-key`,children:`Create a site key`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`In the `,_jsx(_components.a,{href:`https://console.cloud.google.com/`,children:`Google Cloud Dashboard`}),`, enter reCAPTCHA Enterprise in the search bar, and then select it from the Marketplace results.`]}),`\n`,_jsxs(_components.li,{children:[`Select `,_jsx(_components.strong,{children:`Create Key`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Under `,_jsx(_components.strong,{children:`Domain List`}),`, add your Auth0 tenant domain.`]}),`\n`,_jsxs(_components.li,{children:[`Enable the toggle for `,_jsx(_components.strong,{children:`Disable domain verification`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Enable the toggle for `,_jsx(_components.strong,{children:`Use checkbox challenge`}),` to enable Google’s “I am not a robot” verification checkbox.`]}),`\n`,_jsxs(_components.li,{children:[`Under `,_jsx(_components.strong,{children:`Challenge Security`}),`, select a difficulty level for the challenge.`]}),`\n`,_jsxs(_components.li,{children:[`Select `,_jsx(_components.strong,{children:`Create Key`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Make a note of the `,_jsx(_components.strong,{children:`Site Key`}),` as you will need it later.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`create-an-api-key`,children:`Create an API key`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`In the `,_jsx(_components.a,{href:`https://console.cloud.google.com/`,children:`Google Cloud Dashboard`}),`, enter Credentials in the search bar, and then select it from the results.`]}),`\n`,_jsxs(_components.li,{children:[`Select `,_jsx(_components.strong,{children:`Create Credentials > API Key`}),`. Make a note of the `,_jsx(_components.strong,{children:`API Key`}),` as you will need it later.`]}),`\n`,_jsxs(_components.li,{children:[`In the pop-up, select `,_jsx(_components.strong,{children:`Edit Key`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Under `,_jsx(_components.strong,{children:`Application Restrictions`}),`, select `,_jsx(_components.strong,{children:`IP addresses (web servers, cron jobs, etc.)`}),`, and then enter the `,_jsx(_components.a,{href:`/docs/secure/security-guidance/data-security/allowlist`,children:`Auth0 IP Addresses for Allow Lists`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Under `,_jsx(_components.strong,{children:`API Restrictions`}),`, select `,_jsx(_components.strong,{children:`Restrict Key`}),`, select `,_jsx(_components.strong,{children:`reCAPTCHA Enterprise API`}),` from the drop-down list, and click OK.`]}),`\n`,_jsxs(_components.li,{children:[`Select `,_jsx(_components.strong,{children:`Save`}),`.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`hcaptcha`,children:`hCaptcha`}),`\n`,_jsx(_components.p,{children:`The hCaptcha widget can protect your applications from bots, spam, and other forms of automated abuse.`}),`\n`,_jsxs(_components.p,{children:[`To learn more about hCaptcha and how to get configuration details, read `,_jsx(_components.a,{href:`https://docs.hcaptcha.com/switch`,children:`Switch from reCAPTCHA to hCaptcha on hCaptcha Docs`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`friendly-captcha`,children:`Friendly Captcha`}),`\n`,_jsx(_components.p,{children:`Friendly Captcha is a system for preventing spam on your website. You can add the Friendly Captcha widget to your web app to fight spam, with little impact to the user experience.`}),`\n`,_jsxs(_components.p,{children:[`To learn more about Friendly Captcha and how to get configuration details, read `,_jsx(_components.a,{href:`https://docs.friendlycaptcha.com/#/installation?id=installation`,children:`Installation on Friendly Captcha Docs`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`arkose`,children:`Arkose`}),`\n`,_jsxs(_components.p,{children:[`Arkose Labs provides a bot detection solution for mitigating human-based and bot-driven attacks. For more information on seamlessly integrating with Arkose as your CAPTCHA provider, see `,_jsx(_components.a,{href:`https://www.arkoselabs.com/arkose-bot-manager/`,children:`Arkose Bot Manager`}),`.`]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`You must upgrade to Auth0.js v9.23+ to use Arkose as a CAPTCHA provider.`})}),`\n`,_jsx(Heading,{level:`3`,id:`configure-callback-action-with-auth0-js`,children:`Configure callback action with Auth0.js`}),`\n`,_jsxs(_components.p,{children:[`When using Arkose as the CAPTCHA provider, the Auth0.js WebAuth client’s `,_jsx(_components.code,{children:`renderCaptcha`}),` method allows you to pass a callback function. The second parameter of the callback will be a payload object containing the `,_jsx(_components.code,{children:`triggerCaptcha`}),` function. The `,_jsx(_components.code,{children:`triggerCaptcha`}),` function can be used to configure how your application handles and renders the CAPTCHA prompt.`]}),`\n`,_jsxs(_components.p,{children:[`To learn more about configuring the `,_jsx(_components.code,{children:`renderCaptcha`}),` method, read `,_jsx(_components.a,{href:`https://auth0.github.io/auth0.js/WebAuth.html#renderCaptcha`,children:`renderCaptcha`}),` in the Auth0.js documentation.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"description":"Learn how to configure third-party CAPTCHA provider integrations with Auth0 Bot Detection.","title":"Configure Third-Party CAPTCHA Provider Integrations","href":"/docs/secure/attack-protection/bot-detection/configure-captcha"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Google reCAPTCHA Enterprise on Google Cloud Platform (GCP)","slug":"google-recaptcha-enterprise-on-google-cloud-platform-gcp","depth":2,"children":[{"title":"Locate your GCP project ID","slug":"locate-your-gcp-project-id","depth":3,"children":[]},{"title":"Enable reCAPTCHA Enterprise","slug":"enable-recaptcha-enterprise","depth":3,"children":[]},{"title":"Create a site key","slug":"create-a-site-key","depth":3,"children":[]},{"title":"Create an API key","slug":"create-an-api-key","depth":3,"children":[]}]},{"title":"hCaptcha","slug":"hcaptcha","depth":2,"children":[]},{"title":"Friendly Captcha","slug":"friendly-captcha","depth":2,"children":[]},{"title":"Arkose","slug":"arkose","depth":2,"children":[{"title":"Configure callback action with Auth0.js","slug":"configure-callback-action-with-auth0-js","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/auth0/68ac07e0f912aad4/docs/scripts/navbar-controller.js","/_mintlify/custom/auth0/98c52e2a822716a4/docs/scripts/overscroll-disable.js","/_mintlify/custom/auth0/15b21268d7cc82a0/ui/auth0-docs-ui-1.10.0.umd.js","/_mintlify/custom/auth0/edda60bac2809e28/ui/js/auth0-cli-language.js","/_mintlify/custom/auth0/af65702d2f0210f7/ui/universal-components/universal-components-1.0.27.umd.js"],"subdomain":"auth0","siteName":"Auth0 Docs","title":"Configure Third-Party CAPTCHA Provider Integrations - Auth0 Docs","relatedPagesConfig":{"enabled":true,"limit":5,"mode":"manual"},"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/docs/secure/attack-protection/bot-detection/configure-captcha","matchLevel":0},"fr-ca":{"href":"/docs/fr-ca/secure/attack-protection/bot-detection/configure-captcha","matchLevel":1},"ja-jp":{"href":"/docs/ja-jp/secure/attack-protection/bot-detection/configure-captcha","matchLevel":1}}},"lastModified":"2026-01-28T18:46:04.299Z","originalFileLocation":"docs/secure/attack-protection/bot-detection/configure-captcha.mdx","locale":"en"},"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=\"Learn how to configure third-party CAPTCHA provider integrations with Auth0 Bot Detection.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Auth0 Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/svg+xml\" sizes=\"180x180\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/auth0/docs/images/logo/favicon.svg\">\u003clink data-mint-head rel=\"icon\" type=\"image/svg+xml\" sizes=\"32x32\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/auth0/docs/images/logo/favicon.svg\">\u003clink data-mint-head rel=\"icon\" type=\"image/svg+xml\" sizes=\"16x16\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/auth0/docs/images/logo/favicon.svg\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/svg+xml\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/auth0/docs/images/logo/favicon.svg\">\u003cmeta data-mint-head property=\"og:title\" content=\"Configure Third-Party CAPTCHA Provider Integrations - Auth0 Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Learn how to configure third-party CAPTCHA provider integrations with Auth0 Bot Detection.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Auth0 Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://auth0.com/docs/secure/attack-protection/bot-detection/configure-captcha\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://auth0.mintlify.app/docs/images/share-image.png\">\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=\"Configure Third-Party CAPTCHA Provider Integrations - Auth0 Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Learn how to configure third-party CAPTCHA provider integrations with Auth0 Bot Detection.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://auth0.mintlify.app/docs/images/share-image.png\">\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=\"https://mintlify.s3.us-west-1.amazonaws.com/auth0/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Auth0 Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#9921FE\">\u003clink data-mint-head rel=\"canonical\" href=\"https://auth0.com/docs/secure/attack-protection/bot-detection/configure-captcha\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/secure/attack-protection/bot-detection/configure-captcha.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://auth0.com/docs/secure/attack-protection/bot-detection/configure-captcha\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"fr-CA\" href=\"https://auth0.com/docs/fr-ca/secure/attack-protection/bot-detection/configure-captcha\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ja-JP\" href=\"https://auth0.com/docs/ja-jp/secure/attack-protection/bot-detection/configure-captcha\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://auth0.com/docs/secure/attack-protection/bot-detection/configure-captcha\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://auth0.com/#organization\",\"name\":\"Auth0 Docs\",\"url\":\"https://auth0.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintlify.s3.us-west-1.amazonaws.com/auth0/docs/images/logo/light.svg\"}},{\"@type\":\"WebSite\",\"@id\":\"https://auth0.com#website\",\"name\":\"Auth0 Docs\",\"url\":\"https://auth0.com\",\"publisher\":{\"@id\":\"https://auth0.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://auth0.com/docs/secure/attack-protection/bot-detection/configure-captcha#webpage\",\"url\":\"https://auth0.com/docs/secure/attack-protection/bot-detection/configure-captcha\",\"name\":\"Configure Third-Party CAPTCHA Provider Integrations\",\"description\":\"Learn how to configure third-party CAPTCHA provider integrations with Auth0 Bot Detection.\",\"dateModified\":\"2026-01-28T18:46:04.299Z\",\"isPartOf\":{\"@id\":\"https://auth0.com#website\"},\"breadcrumb\":{\"@id\":\"https://auth0.com/docs/secure/attack-protection/bot-detection/configure-captcha#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://auth0.com/docs/secure/attack-protection/bot-detection/configure-captcha#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Protect Your Application\",\"item\":\"https://auth0.com/docs/secure/application-credentials\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Attack Protection\",\"item\":\"https://auth0.com/docs/secure/attack-protection\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Bot Detection\",\"item\":\"https://auth0.com/docs/secure/attack-protection/bot-detection\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Configure Third-Party CAPTCHA Provider Integrations\",\"item\":\"https://auth0.com/docs/secure/attack-protection/bot-detection/configure-captcha\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://auth0.com/docs/secure/attack-protection/bot-detection/configure-captcha#article\",\"headline\":\"Configure Third-Party CAPTCHA Provider Integrations\",\"name\":\"Configure Third-Party CAPTCHA Provider Integrations\",\"description\":\"Learn how to configure third-party CAPTCHA provider integrations with Auth0 Bot Detection.\",\"url\":\"https://auth0.com/docs/secure/attack-protection/bot-detection/configure-captcha\",\"mainEntityOfPage\":{\"@id\":\"https://auth0.com/docs/secure/attack-protection/bot-detection/configure-captcha#webpage\"},\"image\":\"https://auth0.com/docs/images/share-image.png\",\"dateModified\":\"2026-01-28T18:46:04.299Z\",\"publisher\":{\"@id\":\"https://auth0.com/#organization\"},\"isPartOf\":{\"@id\":\"https://auth0.com#website\"}}]}\u003c/script>","siteName":"Auth0 Docs","nav":{"global":null,"languages":[{"language":"en","footer":{"socials":{"x-twitter":"https://x.com/auth0","github":"https://github.com/auth0","linkedin":"https://www.linkedin.com/company/auth0"},"links":[{"header":"Developers","items":[{"label":"Developer Hub","href":"https://developer.auth0.com"},{"label":"Code Samples \u0026 Guides","href":"https://developer.auth0.com/resources"},{"label":"Zero Index Newsletter","href":"https://auth0.com/blog/newsletter"},{"label":"Blog","href":"https://auth0.com/blog"},{"label":"Changelog","href":"https://auth0.com/changelog"}]},{"header":"Docs","items":[{"label":"Documentation","href":"https://auth0.com/docs"},{"label":"Quickstarts","href":"https://auth0.com/docs/quickstarts"},{"label":"APIs","href":"https://auth0.com/docs/api"},{"label":"SDK Libraries","href":"https://auth0.com/docs/libraries"},{"label":"Learn","href":"https://auth0.com/learn"},{"label":"Intro to IAM (CIAM)","href":"https://auth0.com/intro-to-iam"},{"label":"Reports","href":"https://auth0.com/resources/whitepapers"},{"label":"Webinars","href":"https://auth0.com/resources/webinars"}]},{"header":"Support Center","items":[{"label":"Community","href":"https://community.auth0.com"},{"label":"Help","href":"https://support.auth0.com"},{"label":"FAQs","href":"https://auth0.com/docs/troubleshoot"},{"label":"Auth0","href":"https://auth0.com"}]},{"header":"Company","items":[{"label":"Our Customers","href":"https://auth0.com/customers"},{"label":"Compliance","href":"https://auth0.com/security"},{"label":"Partners","href":"https://auth0.com/partners"},{"label":"Careers","href":"https://www.okta.com/company/careers"},{"label":"Okta + Auth0","href":"https://www.okta.com/okta-and-auth0"},{"label":"About us","href":"https://auth0.com/about"}]}]},"tabs":[{"tab":"Get Started","icon":"play","directory":"accordion","pages":[{"title":"Get Started","href":"/docs/get-started"}]},{"tab":"Authenticate","icon":"lock-keyhole","pages":[{"title":"Authenticate","href":"/docs/authenticate"}]},{"tab":"Manage Users","icon":"user-group","directory":"accordion","pages":[{"title":"Manage Users","href":"/docs/manage-users"}]},{"tab":"Brand","icon":"swatchbook","directory":"accordion","pages":[{"title":"Brand","href":"/docs/customize"}]},{"tab":"Extend","icon":"arrow-up-small-big","directory":"accordion","pages":[{"title":"Extend","href":"/docs/extend"}]},{"tab":"Secure","icon":"shield-check","pages":[{"title":"Secure","href":"/docs/secure"},{"group":"Protect Your Application","pages":[{"group":"Application Credentials","pages":[{"sidebarTitle":"Overview","title":"Application Credentials","href":"/docs/secure/application-credentials"},{"title":"Generate RSA Key Pair","href":"/docs/secure/application-credentials/generate-rsa-key-pair"}]},{"group":"Attack Protection","pages":[{"sidebarTitle":"Overview","title":"Attack Protection","href":"/docs/secure/attack-protection"},{"group":"Bot Detection","pages":[{"sidebarTitle":"Overview","title":"Bot Detection","href":"/docs/secure/attack-protection/bot-detection"},{"title":"Add Bot Detection to Native Applications","href":"/docs/secure/attack-protection/bot-detection/bot-detection-native-apps"},{"title":"Add Bot Detection to Passwordless Flows","href":"/docs/secure/attack-protection/bot-detection/bot-detection-passwordless-flows"},{"description":"Learn how to enable and configure bot detection when using custom login pages built with the auth0.js library.","title":"Add Bot Detection to Custom Login Pages","href":"/docs/secure/attack-protection/bot-detection/bot-detection-custom-login-pages"},{"title":"Configure Third-Party CAPTCHA Provider Integrations","href":"/docs/secure/attack-protection/bot-detection/configure-captcha"}]},{"description":"Understand why a user receives a breached password email and general web security tips.","title":"Breached Password Detection","href":"/docs/secure/attack-protection/breached-password-detection"},{"title":"Brute-Force Protection","href":"/docs/secure/attack-protection/brute-force-protection"},{"title":"Suspicious IP Throttling","href":"/docs/secure/attack-protection/suspicious-ip-throttling"},{"title":"View Attack Protection Log Events","href":"/docs/secure/attack-protection/view-attack-protection-events"},{"title":"Configure Akamai to Send Supplemental Signals","href":"/docs/secure/attack-protection/configure-akamai-supplemental-signals"},{"title":"Use Akamai Supplemental Signals in Actions","href":"/docs/secure/attack-protection/use-akamai-supplemental-signals-actions"},{"title":"Prevent Attacks and Redirect Users with OAuth 2.0 State Parameters","href":"/docs/secure/attack-protection/state-parameters"},{"group":"Playbooks","pages":[{"sidebarTitle":"Overview","title":"Playbooks","href":"/docs/secure/attack-protection/playbooks"},{"title":"Bot Detection Playbook","href":"/docs/secure/attack-protection/playbooks/bot-detection-playbook"},{"title":"Breached Password Playbook","href":"/docs/secure/attack-protection/playbooks/breached-password-playbook"},{"title":"Brute Force Protection Playbook","href":"/docs/secure/attack-protection/playbooks/brute-force-protection-playbook"},{"title":"MFA Playbook","href":"/docs/secure/attack-protection/playbooks/mfa-playbook"},{"title":"Signup Attack Playbook","href":"/docs/secure/attack-protection/playbooks/signup-attack-playbook"}]}]},{"title":"Continuous Session Protection","href":"/docs/secure/continuous-session-protection"},{"group":"Highly Regulated Identity","pages":[{"sidebarTitle":"Overview","title":"Highly Regulated Identity","href":"/docs/secure/highly-regulated-identity"},{"title":"Transactional Authorization with Authorization Code Flow","href":"/docs/secure/highly-regulated-identity/transactional-authorization-with-authorization-code-flow"},{"group":"Customer Managed Keys","pages":[{"sidebarTitle":"Overview","title":"Customer Managed Keys","href":"/docs/secure/highly-regulated-identity/customer-managed-keys"},{"title":"Configure Customer Managed Keys with the Dashboard","href":"/docs/secure/highly-regulated-identity/customer-managed-keys/customer-managed-keys-dashboard"},{"title":"Configure Customer Managed Keys with the Management API","href":"/docs/secure/highly-regulated-identity/customer-managed-keys/customer-managed-keys-management-api"}]}]},{"group":"Multi-Factor Authentication","pages":[{"title":"Multi-Factor Authentication (MFA)","href":"/docs/secure/multi-factor-authentication"},{"title":"Enable Multi-Factor Authentication","href":"/docs/secure/multi-factor-authentication/enable-mfa"},{"group":"Multi-Factor Authentication Factors","pages":[{"sidebarTitle":"Overview","title":"Multi-Factor Authentication Factors","href":"/docs/secure/multi-factor-authentication/multi-factor-authentication-factors"},{"title":"Configure Push Notifications for MFA","href":"/docs/secure/multi-factor-authentication/multi-factor-authentication-factors/configure-push-notifications-for-mfa"},{"title":"Configure OTP Notifications for MFA","href":"/docs/secure/multi-factor-authentication/multi-factor-authentication-factors/configure-otp-notifications-for-mfa"},{"title":"Configure Email Notifications for MFA","href":"/docs/secure/multi-factor-authentication/multi-factor-authentication-factors/configure-email-notifications-for-mfa"},{"title":"Configure SMS and Voice Notifications for MFA","href":"/docs/secure/multi-factor-authentication/multi-factor-authentication-factors/configure-sms-voice-notifications-mfa"},{"title":"Exponential Backoff for SMS","href":"/docs/secure/multi-factor-authentication/multi-factor-authentication-factors/exponential-backoff-for-sms"}]},{"title":"WebAuthn as Multi-Factor Authentication","href":"/docs/secure/multi-factor-authentication/webauthn-as-mfa"},{"title":"Configure Cisco Duo Security for MFA","href":"/docs/secure/multi-factor-authentication/configure-cisco-duo-for-mfa"},{"group":"FIDO Authentication with WebAuthn","pages":[{"sidebarTitle":"Overview","title":"FIDO Authentication with WebAuthn","href":"/docs/secure/multi-factor-authentication/fido-authentication-with-webauthn"},{"title":"Configure WebAuthn with Security Keys for MFA","href":"/docs/secure/multi-factor-authentication/fido-authentication-with-webauthn/configure-webauthn-security-keys-for-mfa"},{"title":"Configure WebAuthn with Device Biometrics for MFA","href":"/docs/secure/multi-factor-authentication/fido-authentication-with-webauthn/configure-webauthn-device-biometrics-for-mfa"}]},{"group":"Adaptive MFA","pages":[{"sidebarTitle":"Overview","title":"Adaptive MFA","href":"/docs/secure/multi-factor-authentication/adaptive-mfa"},{"title":"Enable Adaptive MFA","href":"/docs/secure/multi-factor-authentication/adaptive-mfa/enable-adaptive-mfa"},{"title":"Customize Adaptive MFA","href":"/docs/secure/multi-factor-authentication/adaptive-mfa/customize-adaptive-mfa"},{"title":"Adaptive MFA Log Events","href":"/docs/secure/multi-factor-authentication/adaptive-mfa/adaptive-mfa-log-events"}]},{"group":"Auth0 Guardian","pages":[{"sidebarTitle":"Overview","title":"Auth0 Guardian","href":"/docs/secure/multi-factor-authentication/auth0-guardian"},{"title":"Guardian.swift iOS SDK","href":"/docs/secure/multi-factor-authentication/auth0-guardian/guardian-for-ios-sdk"},{"title":"Guardian for Android SDK","href":"/docs/secure/multi-factor-authentication/auth0-guardian/guardian-for-android-sdk"}]},{"group":"Customize MFA","pages":[{"title":"Customize Multi-Factor Authentication Pages","href":"/docs/secure/multi-factor-authentication/customize-mfa"},{"title":"Customize MFA Selection for Universal Login","href":"/docs/secure/multi-factor-authentication/customize-mfa/customize-mfa-selection-universal-login"},{"title":"Customize MFA Enrollments for Universal Login","href":"/docs/secure/multi-factor-authentication/customize-mfa/customize-mfa-enrollments-universal-login"},{"title":"Customize MFA for Classic Login","href":"/docs/secure/multi-factor-authentication/customize-mfa/customize-mfa-classic-login"},{"title":"MFA Theme Language Dictionary","href":"/docs/secure/multi-factor-authentication/customize-mfa/mfa-theme-language-dictionary"},{"title":"MFA Widget Theme Options","href":"/docs/secure/multi-factor-authentication/customize-mfa/mfa-widget-theme-options"}]},{"group":"Authenticate Using ROPG Flow with MFA","pages":[{"title":"Authenticate Using the Resource Owner Password Flow with MFA","href":"/docs/secure/multi-factor-authentication/authenticate-using-ropg-flow-with-mfa"},{"title":"Enroll and Challenge SMS and Voice Authenticators","href":"/docs/secure/multi-factor-authentication/authenticate-using-ropg-flow-with-mfa/enroll-challenge-sms-voice-authenticators"},{"title":"Enroll and Challenge OTP Authenticators","href":"/docs/secure/multi-factor-authentication/authenticate-using-ropg-flow-with-mfa/enroll-and-challenge-otp-authenticators"},{"title":"Enroll and Challenge Push Authenticators","href":"/docs/secure/multi-factor-authentication/authenticate-using-ropg-flow-with-mfa/enroll-and-challenge-push-authenticators"},{"title":"Enroll and Challenge Email Authenticators","href":"/docs/secure/multi-factor-authentication/authenticate-using-ropg-flow-with-mfa/enroll-and-challenge-email-authenticators"},{"title":"Import User MFA Authenticator Enrollments","href":"/docs/secure/multi-factor-authentication/authenticate-using-ropg-flow-with-mfa/import-user-mfa-authenticator-enrollments"},{"title":"Challenge with Recovery Codes","href":"/docs/secure/multi-factor-authentication/authenticate-using-ropg-flow-with-mfa/challenge-with-recovery-codes"}]},{"group":"Step-Up Authentication","pages":[{"title":"Add Step-up Authentication","href":"/docs/secure/multi-factor-authentication/step-up-authentication"},{"title":"Configure Step-up Authentication for APIs","href":"/docs/secure/multi-factor-authentication/step-up-authentication/configure-step-up-authentication-for-apis"},{"title":"Configure Step-up Authentication for Web Apps","href":"/docs/secure/multi-factor-authentication/step-up-authentication/configure-step-up-authentication-for-web-apps"}]},{"title":"Configure Recovery Codes for MFA","href":"/docs/secure/multi-factor-authentication/configure-recovery-codes-for-mfa"},{"group":"Manage Authentication Factors with APIs","pages":[{"sidebarTitle":"Overview","title":"Manage Authentication Factors with APIs","href":"/docs/secure/multi-factor-authentication/manage-mfa-auth0-apis"},{"title":"Manage Authentication Methods with Management API","href":"/docs/secure/multi-factor-authentication/manage-mfa-auth0-apis/manage-authentication-methods-with-management-api"},{"title":"Manage Authentication Factors with Authentication API","href":"/docs/secure/multi-factor-authentication/manage-mfa-auth0-apis/manage-authenticator-factors-mfa-api"}]},{"title":"Reset User Multi-Factor Authentication and Recovery Codes","href":"/docs/secure/multi-factor-authentication/reset-user-mfa"},{"group":"Multi-factor Authentication Developer Resources","pages":[{"title":"Multi-Factor Authentication Developer Resources","href":"/docs/secure/multi-factor-authentication/multi-factor-authentication-developer-resources"},{"title":"Auth0 MFA API","href":"/docs/secure/multi-factor-authentication/multi-factor-authentication-developer-resources/mfa-api"},{"title":"Create Custom Enrollment Tickets","href":"/docs/secure/multi-factor-authentication/multi-factor-authentication-developer-resources/create-custom-enrollment-tickets"},{"title":"Install Guardian SDK","href":"/docs/secure/multi-factor-authentication/multi-factor-authentication-developer-resources/install-guardian-sdk"},{"title":"Guardian Error Code Reference","href":"/docs/secure/multi-factor-authentication/multi-factor-authentication-developer-resources/guardian-error-code-reference"},{"url":"https://github.com/auth0/auth0-guardian.js","title":"Auth0 MFA Client Library","href":"/docs/secure/multi-factor-authentication/multi-factor-authentication-developer-resources/mfa-client-library"},{"url":"https://github.com/auth0/auth0-guardian.js/tree/master/example","title":"Create Custom MFA Widget","href":"/docs/secure/multi-factor-authentication/multi-factor-authentication-developer-resources/create-custom-mfa"}]}]},{"group":"Security Center","pages":[{"sidebarTitle":"Overview","title":"Security Center","href":"/docs/secure/security-center"},{"title":"Metrics","href":"/docs/secure/security-center/metrics"},{"title":"Prioritized Log Streams","href":"/docs/secure/security-center/prioritized-log-streams"},{"title":"Configure Security Monitoring Alerts","href":"/docs/secure/security-center/security-alerts"}]},{"group":"Security Guidance","pages":[{"title":"Security Guidance","href":"/docs/secure/security-guidance"},{"title":"General Security Tips","href":"/docs/secure/security-guidance/tips"},{"group":"Data Security","pages":[{"sidebarTitle":"Overview","title":"Data Security","href":"/docs/secure/security-guidance/data-security"},{"title":"Auth0 IP Addresses for Allow Lists","href":"/docs/secure/security-guidance/data-security/allowlist"},{"title":"Add User Attributes to Deny List","href":"/docs/secure/security-guidance/data-security/denylist"},{"title":"User Data Storage","href":"/docs/secure/security-guidance/data-security/user-data-storage"},{"title":"Token Storage","href":"/docs/secure/security-guidance/data-security/token-storage"}]},{"title":"Prevent Common Cybersecurity Threats","href":"/docs/secure/security-guidance/prevent-threats"},{"title":"Incident Response: Using Logs","href":"/docs/secure/security-guidance/incident-response-using-logs"},{"title":"Measures Against Application Impersonation","href":"/docs/secure/security-guidance/measures-against-app-impersonation"}]},{"group":"Sender Constraining","pages":[{"sidebarTitle":"Overview","title":"Sender Constraining","href":"/docs/secure/sender-constraining"},{"title":"Demonstrating Proof-of-Possession (DPoP)","href":"/docs/secure/sender-constraining/demonstrating-proof-of-possession-dpop"},{"title":"mTLS Sender Constraining","href":"/docs/secure/sender-constraining/mtls-sender-constraining"},{"title":"Configure Sender Constraining","href":"/docs/secure/sender-constraining/configure-sender-constraining"}]},{"group":"Tokens","pages":[{"sidebarTitle":"Overview","title":"Tokens","href":"/docs/secure/tokens"},{"group":"JSON Web Tokens","pages":[{"sidebarTitle":"Overview","title":"JSON Web Tokens","href":"/docs/secure/tokens/json-web-tokens"},{"title":"JSON Web Token Structure","href":"/docs/secure/tokens/json-web-tokens/json-web-token-structure"},{"title":"JSON Web Token Claims","href":"/docs/secure/tokens/json-web-tokens/json-web-token-claims"},{"title":"Create Custom Claims","href":"/docs/secure/tokens/json-web-tokens/create-custom-claims"},{"title":"Validate JSON Web Tokens","href":"/docs/secure/tokens/json-web-tokens/validate-json-web-tokens"},{"title":"JSON Web Key Sets","href":"/docs/secure/tokens/json-web-tokens/json-web-key-sets"},{"title":"JSON Web Key Set Properties","href":"/docs/secure/tokens/json-web-tokens/json-web-key-set-properties"},{"title":"Locate JSON Web Key Sets","href":"/docs/secure/tokens/json-web-tokens/locate-json-web-key-sets"}]},{"group":"ID Tokens","pages":[{"sidebarTitle":"Overview","title":"ID Tokens","href":"/docs/secure/tokens/id-tokens"},{"title":"Validate ID Tokens","href":"/docs/secure/tokens/id-tokens/validate-id-tokens"},{"title":"Get ID Tokens","href":"/docs/secure/tokens/id-tokens/get-id-tokens"},{"title":"ID Token Structure","href":"/docs/secure/tokens/id-tokens/id-token-structure"},{"title":"Update ID Token Lifetime","href":"/docs/secure/tokens/id-tokens/update-id-token-lifetime"}]},{"group":"Access Tokens","pages":[{"sidebarTitle":"Overview","title":"Access Tokens","href":"/docs/secure/tokens/access-tokens"},{"title":"Access Token Profiles","href":"/docs/secure/tokens/access-tokens/access-token-profiles"},{"title":"Get Access Tokens","href":"/docs/secure/tokens/access-tokens/get-access-tokens"},{"title":"Use Access Tokens","href":"/docs/secure/tokens/access-tokens/use-access-tokens"},{"title":"Validate Access Tokens","href":"/docs/secure/tokens/access-tokens/validate-access-tokens"},{"title":"Update Access Token Lifetime","href":"/docs/secure/tokens/access-tokens/update-access-token-lifetime"},{"title":"Identity Provider Access Tokens","href":"/docs/secure/tokens/access-tokens/identity-provider-access-tokens"},{"title":"Management API Access Tokens","href":"/docs/secure/tokens/access-tokens/management-api-access-tokens"},{"title":"JSON Web Encryption","href":"/docs/secure/tokens/access-tokens/json-web-encryption"}]},{"title":"Session Tokens","href":"/docs/secure/tokens/session-tokens"},{"title":"Delegation Tokens","href":"/docs/secure/tokens/delegation-tokens"},{"group":"Refresh Tokens","root":{"title":"Refresh Tokens","href":"/docs/secure/tokens/refresh-tokens"},"pages":[{"title":"Get Refresh Tokens","href":"/docs/secure/tokens/refresh-tokens/get-refresh-tokens"},{"title":"Use Refresh Tokens","href":"/docs/secure/tokens/refresh-tokens/use-refresh-tokens"},{"title":"Configure Refresh Token Expiration","href":"/docs/secure/tokens/refresh-tokens/configure-refresh-token-expiration"},{"title":"Revoke Refresh Tokens","href":"/docs/secure/tokens/refresh-tokens/revoke-refresh-tokens"},{"group":"Online Refresh Tokens","root":{"title":"Online Refresh Tokens","sidebarTitle":"Overview","href":"/docs/secure/tokens/refresh-tokens/online-refresh-tokens/online-refresh-tokens"},"pages":[{"title":"Online Refresh Tokens","sidebarTitle":"Overview","href":"/docs/secure/tokens/refresh-tokens/online-refresh-tokens/online-refresh-tokens"},{"title":"Configure and Use Online Refresh Tokens","href":"/docs/secure/tokens/refresh-tokens/online-refresh-tokens/configure-online-refresh-tokens"}]},{"group":"Refresh Token Rotation","root":{"title":"Refresh Token Rotation","href":"/docs/secure/tokens/refresh-tokens/refresh-token-rotation"},"pages":[{"title":"Configure Refresh Token Rotation","href":"/docs/secure/tokens/refresh-tokens/configure-refresh-token-rotation"},{"title":"Use Refresh Token Rotation","href":"/docs/secure/tokens/refresh-tokens/use-refresh-token-rotation"},{"title":"Disable Refresh Token Rotation","href":"/docs/secure/tokens/refresh-tokens/disable-refresh-token-rotation"}]},{"group":"Refresh Token Metadata","root":{"sidebarTitle":"Overview","title":"Refresh Token Metadata","href":"/docs/secure/tokens/refresh-tokens/refresh-token-metadata"},"pages":[{"title":"Configure Refresh Token Metadata","href":"/docs/secure/tokens/refresh-tokens/refresh-token-metadata/configure-refresh-token-metadata"},{"title":"Refresh token metadata and session metadata Use Cases","href":"/docs/secure/tokens/refresh-tokens/refresh-token-metadata/use-cases"}]},{"group":"Multi-Resource Refresh Token","pages":[{"sidebarTitle":"Overview","title":"Multi-Resource Refresh Token","href":"/docs/secure/tokens/refresh-tokens/multi-resource-refresh-token"},{"title":"Configure and Implement Multi-Resource Refresh Token","href":"/docs/secure/tokens/refresh-tokens/multi-resource-refresh-token/configure-and-implement-multi-resource-refresh-token"}]},{"title":"Manage Refresh Tokens with Actions","href":"/docs/secure/tokens/refresh-tokens/manage-refresh-tokens-actions"}]},{"title":"Token Best Practices","href":"/docs/secure/tokens/token-best-practices"}]}]},{"group":"Call APIs On User's Behalf","pages":[{"title":"On-Behalf-Of Token Exchange","href":"/docs/secure/call-apis-on-users-behalf/on-behalf-of-token-exchange"},{"group":"Token Vault","pages":[{"title":"Token Vault","sidebarTitle":"Overview","href":"/docs/secure/call-apis-on-users-behalf/token-vault"},{"sidebarTitle":"Connected Accounts for Token Vault","title":"Connected Accounts for Token Vault","href":"/docs/secure/call-apis-on-users-behalf/token-vault/connected-accounts-for-token-vault"},{"title":"Refresh Token Exchange with Token Vault","href":"/docs/secure/call-apis-on-users-behalf/token-vault/refresh-token-exchange-with-token-vault"},{"title":"Access Token Exchange with Token Vault","href":"/docs/secure/call-apis-on-users-behalf/token-vault/access-token-exchange-with-token-vault"},{"title":"Privileged Worker Token Exchange with Token Vault","href":"/docs/secure/call-apis-on-users-behalf/token-vault/privileged-worker-token-exchange-with-token-vault"},{"title":"Cross App Access (XAA) with Token Vault","href":"/docs/secure/call-apis-on-users-behalf/token-vault/xaa-with-token-vault"},{"title":"Call Third-Party APIs on User's Behalf Without User Migration","sidebarTitle":"Call Third-Party APIs on User's Behalf Without User Migration","href":"/docs/secure/call-apis-on-users-behalf/token-vault/call-third-party-apis-on-users-behalf-without-user-migration"},{"title":"Configure Token Vault","href":"/docs/secure/call-apis-on-users-behalf/token-vault/configure-token-vault"}]}]},{"group":"Protect Your Tenant","pages":[{"group":"Tenant Access Control List","root":{"title":"Tenant Access Control List","href":"/docs/secure/tenant-access-control-list"},"pages":[{"group":"How To","expanded":true,"pages":[{"title":"Configure Tenant Access Control List Rules","sidebarTitle":"Configure Rules","href":"/docs/secure/tenant-access-control-list/configure-rules"},{"title":"Use Curated Blocklists in Tenant Access Control Lists","sidebarTitle":"Use Curated Blocklists","href":"/docs/secure/tenant-access-control-list/use-curated-blocklists"},{"title":"Configure Deny All Rule for Tenant ACL","sidebarTitle":"Configure Deny All Rule","href":"/docs/secure/tenant-access-control-list/deny-all-tenant-acl"},{"title":"How to Enable or Disable Monitoring Mode for Tenant Access Control List Rules","sidebarTitle":"Enable Monitoring Mode","href":"/docs/secure/tenant-access-control-list/enable-monitoring-mode"},{"title":"Configure HTTP Message Signatures in Tenant ACLs","sidebarTitle":"Configure Message Signatures","href":"/docs/secure/tenant-access-control-list/http-message-signatures"}]},{"group":"Details","expanded":true,"pages":[{"title":"Rule Evaluation for the Tenant Access Control List","sidebarTitle":"Rule Evaluation","href":"/docs/secure/tenant-access-control-list/rule-evaluation"}]},{"group":"Reference","expanded":true,"pages":[{"title":"Code Samples for Common Tenant Access Control List Use Cases","sidebarTitle":"Code Samples","href":"/docs/secure/tenant-access-control-list/use-cases"},{"title":"Management API Parameter Reference for Tenant Access Control List Rules","sidebarTitle":"API Parameters","href":"/docs/secure/tenant-access-control-list/reference"},{"title":"Tenant Log Event Reference for Tenant Access Control List Rules","sidebarTitle":"Tenant Log Events","href":"/docs/secure/tenant-access-control-list/tenant-log-event-reference"}]}]}]}]},{"tab":"Monitor","icon":"chart-simple","directory":"accordion","pages":[{"title":"Monitor","href":"/docs/deploy-monitor"}]},{"tab":"AI Agents \u0026 MCP","icon":"robot","directory":"accordion","pages":[{"title":"AI Agents \u0026 MCP","href":"/docs/ai-agents-mcp"}]},{"tab":"Platform","icon":"credit-card","pages":[{"title":"Platform","href":"/docs/troubleshoot"}]},{"tab":"Dev Tools","icon":"code-simple","menu":[{"item":"APIs","icon":"code-pull-request","pages":[{"title":"APIs","href":"/docs/api"}]},{"item":"CLIs","icon":"terminal","pages":[{"title":"CLIs","href":"/docs/deploy-monitor/auth0-cli"}]},{"item":"SDKs","icon":"cube","dropdowns":[{"dropdown":"SDK Libraries","icon":"book","description":"","pages":[{"title":"SDK Libraries","href":"/docs/libraries"}]},{"dropdown":"auth0-spa-js","icon":"book-open","description":"version: v2.30.0","pages":[{"title":"auth0-spa-js","href":"/docs/sdk/auth0-spa-js/functions/createAuth0Client"}]},{"dropdown":"auth0-react","icon":"book-open","description":"version: v2.30.0","pages":[{"title":"auth0-react","href":"/docs/sdk/auth0-react/functions/Auth0Provider"}]},{"dropdown":"auth0-acul-js","icon":"book-open","description":"","pages":[{"title":"auth0-acul-js","href":"/docs/libraries/acul/js-sdk"}]},{"dropdown":"auth0-acul-react","icon":"book-open","description":"","pages":[{"title":"auth0-acul-react","href":"/docs/libraries/acul/react-sdk"}]},{"dropdown":"auth0-android","icon":"book-open","description":"","pages":[{"title":"auth0-android","href":"/docs/libraries/auth0-android/auth0-android-configuration"}]},{"dropdown":"auth0-php","icon":"book-open","description":"","pages":[{"title":"auth0-php","href":"/docs/libraries/auth0-php"}]}]},{"item":"Universal Components","icon":"objects-column","pages":[{"title":"Universal Components","href":"/docs/get-started/universal-components/universal-components-overview"}]}],"pages":[{"title":"Dev Tools","href":"/docs/api"}]},{"tab":"auth0-spa-js","hidden":true,"pages":[{"title":"auth0-spa-js","href":"/docs/sdk/auth0-spa-js/package-overview"}]},{"tab":"auth0-react","hidden":true,"pages":[{"title":"auth0-react","href":"/docs/sdk/auth0-react/package-overview"}]}]},{"language":"fr-ca","footer":{"socials":{"x-twitter":"https://x.com/auth0","github":"https://github.com/auth0","linkedin":"https://www.linkedin.com/company/auth0"},"links":[{"header":"Développeurs","items":[{"label":"Espace développeurs","href":"https://developer.auth0.com"},{"label":"Exemples de code et guides","href":"https://developer.auth0.com/resources"},{"label":"Infolettre Zero Index","href":"https://auth0.com/blog/newsletter"},{"label":"Blogue","href":"https://auth0.com/blog"},{"label":"Journal des modifications","href":"https://auth0.com/changelog"}]},{"header":"Documentation","items":[{"label":"Documentation","href":"https://auth0.com/docs"},{"label":"Guides de démarrage rapide","href":"https://auth0.com/docs/quickstarts"},{"label":"API","href":"https://auth0.com/docs/api"},{"label":"Bibliothèques SDK","href":"https://auth0.com/docs/libraries"},{"label":"Apprendre","href":"https://auth0.com/learn"},{"label":"Introduction à l’IAM (CIAM)","href":"https://auth0.com/intro-to-iam"},{"label":"Rapports","href":"https://auth0.com/resources/whitepapers"},{"label":"Webinaires","href":"https://auth0.com/resources/webinars"}]},{"header":"Centre d’assistance","items":[{"label":"Communauté","href":"https://community.auth0.com"},{"label":"Aide","href":"https://support.auth0.com"},{"label":"Foire aux questions","href":"https://auth0.com/docs/troubleshoot"},{"label":"Auth0","href":"https://auth0.com"}]},{"header":"Entreprise","items":[{"label":"Nos clients","href":"https://auth0.com/customers"},{"label":"Conformité","href":"https://auth0.com/security"},{"label":"Partenaires","href":"https://auth0.com/partners"},{"label":"Carrières","href":"https://www.okta.com/company/careers"},{"label":"Okta + Auth0","href":"https://www.okta.com/okta-and-auth0"},{"label":"À propos de nous","href":"https://auth0.com/about"}]}]},"pages":[{"title":"fr-ca","href":"/docs/fr-ca/secure/attack-protection/bot-detection/configure-captcha"}]},{"language":"ja-jp","footer":{"socials":{"x-twitter":"https://x.com/auth0","github":"https://github.com/auth0","linkedin":"https://www.linkedin.com/company/auth0"},"links":[{"header":"開発者向け","items":[{"label":"開発者ハブ","href":"https://developer.auth0.com"},{"label":"コードサンプルとガイド","href":"https://developer.auth0.com/resources"},{"label":"Zero Index Newsletter","href":"https://auth0.com/blog/newsletter"},{"label":"ブログ","href":"https://auth0.com/blog"},{"label":"変更履歴","href":"https://auth0.com/changelog"}]},{"header":"ドキュメント","items":[{"label":"ドキュメント","href":"https://auth0.com/docs"},{"label":"クイックスタート","href":"https://auth0.com/docs/quickstarts"},{"label":"API","href":"https://auth0.com/docs/api"},{"label":"SDKライブラリ","href":"https://auth0.com/docs/libraries"},{"label":"教育","href":"https://auth0.com/learn"},{"label":"IAM(CIAM)入門","href":"https://auth0.com/intro-to-iam"},{"label":"レポート","href":"https://auth0.com/resources/whitepapers"},{"label":"ウェビナー","href":"https://auth0.com/resources/webinars"}]},{"header":"サポートセンター","items":[{"label":"コミュニティ","href":"https://community.auth0.com"},{"label":"ヘルプ","href":"https://support.auth0.com"},{"label":"よくある質問","href":"https://auth0.com/docs/troubleshoot"},{"label":"Auth0","href":"https://auth0.com"}]},{"header":"会社情報","items":[{"label":"導入企業","href":"https://auth0.com/customers"},{"label":"コンプライアンス","href":"https://auth0.com/security"},{"label":"パートナー","href":"https://auth0.com/partners"},{"label":"採用情報","href":"https://www.okta.com/company/careers"},{"label":"Okta + Auth0","href":"https://www.okta.com/okta-and-auth0"},{"label":"私たちについて","href":"https://auth0.com/about"}]}]},"pages":[{"title":"ja-jp","href":"/docs/ja-jp/secure/attack-protection/bot-detection/configure-captcha"}]}]},"basePath":"","title":"Configure Third-Party CAPTCHA Provider Integrations - Auth0 Docs","buildId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","deploymentId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","dynamics":[],"chunks":[]}