Enroll multiple authenticators across multiple users in a single request. This endpoint is idempotent. Re-enrolling the same credential for the same user is a no-op. Each item is processed independently; failures do not affect other items in the batch.
Use your Authsignal Server API secret key as the username and leave the password empty. The secret key can be found in the API Keys section of the Authsignal Portal settings page.
{"docsConfig":{"theme":"maple","$schema":"https://mintlify.com/docs.json","name":"Authsignal","colors":{"primary":"#8b7bff","light":"#8b7bff","dark":"#8b7bff"},"logo":{"light":"https://mintcdn.com/authsignal-23/Q2QPBK1EKmJpLovY/logo/light.png?fit=max\u0026auto=format\u0026n=Q2QPBK1EKmJpLovY\u0026q=85\u0026s=8c4bd51abfac23972d75d85678c2f1ed","dark":"https://mintcdn.com/authsignal-23/Q2QPBK1EKmJpLovY/logo/dark.png?fit=max\u0026auto=format\u0026n=Q2QPBK1EKmJpLovY\u0026q=85\u0026s=275e53c69fb0a7eff954a0d2ed3421a2"},"favicon":"https://mintcdn.com/authsignal-23/LJehOZQCDC4ES5ZZ/favicon.png?fit=max\u0026auto=format\u0026n=LJehOZQCDC4ES5ZZ\u0026q=85\u0026s=5a39c31db14fe195577d579ebd367170","api":{"openapi":["terminal-api.json","management-api.json","server-api.json","client-api.json","call-connect-api.json"],"playground":{"display":"simple"},"mdx":{"server":["https://api.authsignal.com/v1","https://au.api.authsignal.com/v1","https://eu.api.authsignal.com/v1","https://ca.api.authsignal.com/v1","https://uk.api.authsignal.com/v1"]}},"appearance":{"default":"light"},"background":{"decoration":"gradient"},"footer":{"socials":{"x":"https://x.com/authsignal?lang=en","linkedin":"https://www.linkedin.com/company/authsignal","github":"https://github.com/authsignal"}},"seo":{"metatags":{"description":"Learn how to integrate with Authsignal.","canonical":"https://docs.authsignal.com"},"indexing":"navigable"},"integrations":{"gtm":{"tagId":"GTM-MZPJQQSP"}},"contextual":{"options":["copy","chatgpt","claude"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"authsignal-23","hasAudioNarration":false,"actualSubdomain":"authsignal-23","customDomains":["docs.authsignal.com"],"gitSource":{"type":"github","owner":"authsignal","repo":"authsignal-api-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"feedback":{"thumbs":true,"edits":false},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af0e1e381c47cb9967dc89d","clientVersion":"0.0.4088","searchFilterCounts":[{"language":"default","tag":"API reference","count":116},{"language":"default","tag":"Documentation","count":81},{"language":"default","tag":"Management API","count":44},{"language":"default","tag":"SDKs","count":36},{"language":"default","tag":"Client API","count":32},{"language":"default","tag":"Server API","count":29},{"language":"default","tag":"Integrations","count":28},{"language":"default","tag":"Client","count":26},{"language":"default","tag":"Knowledge base","count":24},{"language":"default","tag":"Webhooks","count":18}]},"assistantConfig":{},"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":"rbac-expansion","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":"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":"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":"editor-metadata","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},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"styles/style.css","content":".action-state-pill{border-radius:9999px;padding:0.125rem 0.625rem;font-size:0.75rem;font-weight:500;line-height:1rem;color:#1f2937;background-color:#f3f4f6}.action-state-pill__CHALLENGE_FAILED{background-color:#fdd8d8;color:#611919}.action-state-pill__BLOCK{background-color:#f88b8b;color:#611919}.action-state-pill__CHALLENGE_REQUIRED{background-color:#fef4da;color:#64501d}.action-state-pill__CHALLENGE_SUCCEEDED{background-color:#daf5e7;color:#1c5135}.action-state-pill__REVIEW_REQUIRED{background-color:#d8e5fd;color:#063e5d}.action-state-pill__REVIEW_SUCCEEDED{background-color:#daf5e7;color:#1c5135}.action-state-pill__REVIEW_FAILED{background-color:#fdd8d8;color:#611919}.action-state-pill__ALLOW{background-color:#8fe0b6;color:#1c5135}.w-500{width:500px}.w-400{width:400px}.w-300{width:300px}.rl-timeline{--rl-surface: #fafafa;--rl-border: #e4e4e7;--rl-axis: #a1a1aa;--rl-muted: #71717a;--rl-blocked-band: rgba(245, 158, 11, 0.25);--rl-lane-rail: rgba(113, 113, 122, 0.12);--rl-lane-band: rgba(245, 158, 11, 0.45);--rl-error-fill: #fde2e2;--rl-error-stroke: #e8a0a0;--rl-blocked-fill: #fef3c7;--rl-blocked-stroke: #d9a43a;--rl-success-fill: #dcfce7;--rl-success-stroke: #6cc28a;margin:1.5rem 0}.dark .rl-timeline{--rl-surface: rgba(255, 255, 255, 0.03);--rl-border: rgba(255, 255, 255, 0.1);--rl-axis: #71717a;--rl-muted: #a1a1aa;--rl-blocked-band: rgba(251, 191, 36, 0.25);--rl-lane-rail: rgba(255, 255, 255, 0.06);--rl-lane-band: rgba(251, 191, 36, 0.4);--rl-error-fill: rgba(248, 113, 113, 0.25);--rl-error-stroke: #f87171;--rl-blocked-fill: rgba(251, 191, 36, 0.25);--rl-blocked-stroke: #fbbf24;--rl-success-fill: rgba(74, 222, 128, 0.25);--rl-success-stroke: #4ade80}.rl-timeline__scroll{overflow-x:auto;border:1px solid var(--rl-border);border-radius:1rem;background-color:var(--rl-surface);padding:1.25rem 0 0.75rem}.rl-timeline__track{position:relative;min-width:30rem;height:10rem;margin:0 2.5rem}.rl-timeline__axis{position:absolute;top:4rem;left:0;right:0;height:1px;background-color:var(--rl-axis)}.rl-timeline__axis::after{content:\"\";position:absolute;right:-6px;top:-4px;border-top:4.5px solid transparent;border-bottom:4.5px solid transparent;border-left:7px solid var(--rl-axis)}.rl-timeline__blocked{position:absolute;top:calc(4rem - 3px);height:7px;border-radius:9999px;background-color:var(--rl-blocked-band)}.rl-timeline__blocked-label{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);font-size:0.75rem;color:var(--rl-muted);white-space:nowrap}.rl-timeline__event{position:absolute;top:4rem;width:0;height:0}.rl-timeline__dot{position:absolute;left:-7px;top:-7px;width:14px;height:14px;border-radius:9999px;border:1.5px solid var(--rl-success-stroke);background-color:var(--rl-success-fill)}.rl-timeline__dot--error{border-color:var(--rl-error-stroke);background-color:var(--rl-error-fill)}.rl-timeline__dot--blocked{border-color:var(--rl-blocked-stroke);background-color:var(--rl-blocked-fill)}.rl-timeline__label{position:absolute;left:0;display:flex;flex-direction:column;align-items:center;gap:0.125rem;transform:translateX(-50%);white-space:nowrap}.rl-timeline__event--above .rl-timeline__label{bottom:16px}.rl-timeline__event--below .rl-timeline__label{top:16px}.rl-timeline__title{font-size:0.8125rem;font-weight:500;line-height:1.2}.rl-timeline__time,.rl-timeline__end,.rl-timeline__window-label,.rl-timeline__caption{font-size:0.75rem;line-height:1.2;color:var(--rl-muted);font-variant-numeric:tabular-nums}.rl-timeline__end{position:absolute;top:calc(4rem + 10px)}.rl-timeline__end--start{left:0}.rl-timeline__end--end{right:0}.rl-timeline__window{position:absolute;top:calc(4rem + 4.25rem);height:8px;border:1px solid var(--rl-axis);border-top:none}.rl-timeline__window-label{position:absolute;top:14px;left:50%;transform:translateX(-50%);white-space:nowrap}.rl-timeline__lane{position:absolute;left:0;right:0}.rl-timeline__lane-label{font-size:0.75rem;line-height:1.2;color:var(--rl-muted);white-space:nowrap}.rl-timeline__lane-rail{position:relative;margin-top:0.375rem;height:7px;border-radius:9999px;background-color:var(--rl-lane-rail)}.rl-timeline__lane-band{position:absolute;top:0;bottom:0;border-radius:9999px;background-color:var(--rl-lane-band)}.rl-timeline__caption{margin-top:0.5rem;text-align:center;font-size:0.875rem}.rl-groups{--rl-border: #e4e4e7;--rl-ink: #27272a;--rl-muted: #a1a1aa;--rl-note: #71717a;--rl-country-fill: #ffffff;--rl-chip-fill: #ffffff;--rl-tag-fill: rgba(113, 113, 122, 0.08);--rl-tone-0-fill: rgba(139, 123, 255, 0.08);--rl-tone-0-stroke: rgba(139, 123, 255, 0.35);--rl-tone-1-fill: rgba(14, 165, 233, 0.07);--rl-tone-1-stroke: rgba(14, 165, 233, 0.3);margin:1.5rem 0}.dark .rl-groups{--rl-border: rgba(255, 255, 255, 0.1);--rl-ink: #e4e4e7;--rl-muted: #71717a;--rl-note: #a1a1aa;--rl-country-fill: rgba(255, 255, 255, 0.03);--rl-chip-fill: rgba(255, 255, 255, 0.05);--rl-tag-fill: rgba(255, 255, 255, 0.06);--rl-tone-0-fill: rgba(139, 123, 255, 0.12);--rl-tone-0-stroke: rgba(139, 123, 255, 0.4);--rl-tone-1-fill: rgba(56, 189, 248, 0.09);--rl-tone-1-stroke: rgba(56, 189, 248, 0.35)}.rl-groups__country{border:1px solid var(--rl-border);border-radius:1rem;background-color:var(--rl-country-fill);padding:1rem 1.25rem 1.25rem}.rl-groups__header{display:flex;align-items:center;justify-content:space-between;gap:0.75rem;margin-bottom:0.75rem}.rl-groups__title{font-size:0.8125rem;font-weight:600;color:var(--rl-ink)}.rl-groups__mono{font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;font-variant-numeric:tabular-nums}.rl-groups__muted{color:var(--rl-muted);font-weight:400}.rl-groups__tag{border-radius:9999px;padding:0.0625rem 0.5rem;font-size:0.6875rem;font-weight:500;white-space:nowrap;color:var(--rl-note);background-color:var(--rl-tag-fill)}.rl-groups__row{display:flex;flex-wrap:wrap;gap:0.75rem}.rl-groups__group{flex:1 1 13rem;border:1px solid;border-radius:0.625rem;padding:0.75rem}.rl-groups__group .rl-groups__header{margin-bottom:0.625rem}.rl-groups__tone-0{border-color:var(--rl-tone-0-stroke);background-color:var(--rl-tone-0-fill)}.rl-groups__tone-1{border-color:var(--rl-tone-1-stroke);background-color:var(--rl-tone-1-fill)}.rl-groups__numbers{display:flex;flex-direction:column;align-items:flex-start;gap:0.375rem}.rl-groups__chip{border:1px solid var(--rl-border);border-radius:0.375rem;padding:0.1875rem 0.5rem;font-size:0.8125rem;white-space:nowrap;color:var(--rl-ink);background-color:var(--rl-chip-fill)}.rl-groups__caption{margin-top:0.5rem;text-align:center;font-size:0.875rem;color:var(--rl-note)}#hubspot-messages-iframe-container{color-scheme:light}"}],"page":{"pagePath":"api-reference/server-api/batch-enroll-verified-authenticators","slug":"/api-reference/server-api/batch-enroll-verified-authenticators","pageMetadata":{"title":"Batch Enroll Verified Authenticators","openapi":"server-api POST /users/authenticators","description":"Enroll multiple authenticators across multiple users in a single request. This endpoint is idempotent. Re-enrolling the same credential for the same user is a no-op. Each item is processed independently; failures do not affect other items in the batch.","href":"/api-reference/server-api/batch-enroll-verified-authenticators"},"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: \"Enroll multiple authenticators across multiple users in a single request. This endpoint is idempotent. Re-enrolling the same credential for the same user is a no-op. Each item is processed independently; failures do not affect other items in the batch.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Batch Enroll Verified Authenticators","openapi":"server-api POST /users/authenticators","description":"Enroll multiple authenticators across multiple users in a single request. This endpoint is idempotent. Re-enrolling the same credential for the same user is a no-op. Each item is processed independently; failures do not affect other items in the batch.","href":"/api-reference/server-api/batch-enroll-verified-authenticators"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/authsignal-23/eacb9ac8e5ece268/.prettierrc.js"],"openApiReferenceData":{"operation":{"tags":["users"],"summary":"Batch enroll verified authenticators","description":"Enroll multiple authenticators across multiple users in a single request. This endpoint is idempotent. Re-enrolling the same credential for the same user is a no-op. Each item is processed independently; failures do not affect other items in the batch.","operationId":"batchEnrollVerifiedAuthenticators","requestBody":"e461c300-3a20-44de-8181-60f830ca2fbe","responses":{"200":"b2283852-754f-45f1-9b2d-5ef34491ffdd","400":"69766262-c73f-4dff-8cd7-cccb4ba95633","401":"ac51d850-b4dd-49a7-b55b-637840a096ac"},"method":"post","type":"path","servers":["ffed9411-87e3-4687-8e47-1738b4ef9ecf","1b6ab9c0-bd59-4f96-9a0d-14c81001ff36","e084f0e6-8cb6-40f6-b602-c5bd90a1c354","b8190eb3-71c6-4192-be28-725d07af4d81","ec82fde7-87b3-4964-afa9-57f7245a4674"],"security":["a43a47d2-a354-43ef-8060-f58b9d04b0bb"],"path":"/users/authenticators","baseUrlOptions":["https://api.authsignal.com/v1","https://au.api.authsignal.com/v1","https://eu.api.authsignal.com/v1","https://ca.api.authsignal.com/v1","https://uk.api.authsignal.com/v1"],"title":"Batch enroll verified authenticators","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"authenticators":{"type":"array","description":"An array of authenticator items to enroll. Maximum 1000 items per request.","maxItems":1000,"items":{"type":"object","properties":{"userId":{"type":"string","description":"The ID of the user to enroll the authenticator for.","isRequired":true,"uniqueKey":"authenticators.items.[INDEX].userId","typeLabel":"string"},"verificationMethod":{"type":"string","enum":["PASSKEY"],"description":"The verification method.","isRequired":true,"uniqueKey":"authenticators.items.[INDEX].verificationMethod","typeLabel":"enum\u003cstring>"},"credentialId":{"type":"string","description":"The passkey credential ID from the WebAuthn credential.","isRequired":true,"uniqueKey":"authenticators.items.[INDEX].credentialId","typeLabel":"string"},"credentialPublicKey":{"type":"string","description":"The passkey credential public key (base64url-encoded).","isRequired":true,"uniqueKey":"authenticators.items.[INDEX].credentialPublicKey","typeLabel":"string"},"name":{"type":"string","description":"A display name for the authenticator (e.g. device or browser name).","uniqueKey":"authenticators.items.[INDEX].name","typeLabel":"string"},"username":{"type":"string","description":"The WebAuthn username associated with the passkey (e.g. the user's email or handle shown in the browser's passkey picker).","uniqueKey":"authenticators.items.[INDEX].username","typeLabel":"string"},"transports":{"type":"array","items":{"type":"string","uniqueKey":"authenticators.items.[INDEX].transports.items.[INDEX]","typeLabel":"string"},"description":"Transport hints for the passkey (e.g. \"internal\", \"hybrid\").","uniqueKey":"authenticators.items.[INDEX].transports","typeLabel":"string[]"},"aaguid":{"type":"string","description":"The AAGUID of the authenticator that created the passkey.","uniqueKey":"authenticators.items.[INDEX].aaguid","typeLabel":"string"}},"required":["userId","verificationMethod","credentialId","credentialPublicKey"],"uniqueKey":"authenticators.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"authenticators","typeLabel":"object[]"}},"required":["authenticators"],"uniqueKey":"","typeLabel":"object"},"example":{"authenticators":[{"userId":"user-123","verificationMethod":"PASSKEY","credentialId":"dGVzdC1jcmVkZW50aWFsLWlk","credentialPublicKey":"pQECAyYgASFYIPr...","name":"iPhone"},{"userId":"user-456","verificationMethod":"PASSKEY","credentialId":"YW5vdGhlci1jcmVkZW50aWFs","credentialPublicKey":"pQECAyYgASFYIKm..."}]},"examples":{"Example":{"title":"Example","value":{"authenticators":[{"userId":"user-123","verificationMethod":"PASSKEY","credentialId":"dGVzdC1jcmVkZW50aWFsLWlk","credentialPublicKey":"pQECAyYgASFYIPr...","name":"iPhone"},{"userId":"user-456","verificationMethod":"PASSKEY","credentialId":"YW5vdGhlci1jcmVkZW50aWFs","credentialPublicKey":"pQECAyYgASFYIKm..."}]}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"b2283852-754f-45f1-9b2d-5ef34491ffdd":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"total":{"type":"number","description":"The total number of items in the request.","isRequired":true,"uniqueKey":"total","typeLabel":"number"},"succeeded":{"type":"number","description":"The number of authenticators successfully enrolled.","isRequired":true,"uniqueKey":"succeeded","typeLabel":"number"},"failed":{"type":"number","description":"The number of items that failed to enroll.","isRequired":true,"uniqueKey":"failed","typeLabel":"number"},"failures":{"type":"array","description":"A list of items that failed to enroll, with per-item error details. Empty when all items succeed.","items":{"type":"object","properties":{"userId":{"type":"string","description":"The userId of the failed item.","isRequired":true,"uniqueKey":"failures.items.[INDEX].userId","typeLabel":"string"},"credentialId":{"type":"string","description":"The credentialId of the failed item.","isRequired":true,"uniqueKey":"failures.items.[INDEX].credentialId","typeLabel":"string"},"errorCode":{"type":"string","enum":["invalid_configuration","invalid_request","conflict","unexpected_error"],"description":"A machine-readable error code for programmatic handling.","isRequired":true,"uniqueKey":"failures.items.[INDEX].errorCode","typeLabel":"enum\u003cstring>"},"errorDescription":{"type":"string","description":"A human-readable description of why the item failed.","isRequired":true,"uniqueKey":"failures.items.[INDEX].errorDescription","typeLabel":"string"}},"required":["userId","credentialId","errorCode","errorDescription"],"uniqueKey":"failures.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"failures","typeLabel":"object[]"}},"required":["total","succeeded","failed","failures"],"uniqueKey":"","typeLabel":"object"},"example":{"total":3,"succeeded":2,"failed":1,"failures":[{"userId":"user-789","credentialId":"Y29uZmxpY3RpbmctY3JlZA","errorCode":"conflict","errorDescription":"Credential already exists for a different user."}]},"examples":{"Example":{"title":"Example","value":{"total":3,"succeeded":2,"failed":1,"failures":[{"userId":"user-789","credentialId":"Y29uZmxpY3RpbmctY3JlZA","errorCode":"conflict","errorDescription":"Credential already exists for a different user."}]}}},"exampleType":"examples"}},"exampleType":"examples"},"69766262-c73f-4dff-8cd7-cccb4ba95633":{"description":"Invalid Request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"errorDescription":{"type":"string","uniqueKey":"errorDescription","typeLabel":"string"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","errorDescription":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"ac51d850-b4dd-49a7-b55b-637840a096ac":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"errorDescription":{"type":"string","uniqueKey":"errorDescription","typeLabel":"string"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","errorDescription":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"a43a47d2-a354-43ef-8060-f58b9d04b0bb":{"basicAuth":{"type":"http","scheme":"basic","description":"Use your Authsignal Server API secret key as the username and leave the password empty. The secret key can be found in the API Keys section of the Authsignal Portal settings page.","scopes":[],"schemeName":"basicAuth"}}},"servers":{"ffed9411-87e3-4687-8e47-1738b4ef9ecf":{"url":"https://api.authsignal.com/v1"},"1b6ab9c0-bd59-4f96-9a0d-14c81001ff36":{"url":"https://au.api.authsignal.com/v1"},"e084f0e6-8cb6-40f6-b602-c5bd90a1c354":{"url":"https://eu.api.authsignal.com/v1"},"b8190eb3-71c6-4192-be28-725d07af4d81":{"url":"https://ca.api.authsignal.com/v1"},"ec82fde7-87b3-4964-afa9-57f7245a4674":{"url":"https://uk.api.authsignal.com/v1"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"basic","description":"Use your Authsignal Server API secret key as the username and leave the password empty. The secret key can be found in the API Keys section of the Authsignal Portal settings page.","scopes":[],"schemeName":"basicAuth"},"schema":{"title":"Basic Auth","type":"object","description":"Use your Authsignal Server API secret key as the username and leave the password empty. The secret key can be found in the API Keys section of the Authsignal Portal settings page.","isRequired":true,"properties":{"username":{"type":"string","uniqueKey":"username","isRequired":true,"typeLabel":"string","deprecated":false},"password":{"type":"string","uniqueKey":"password","isRequired":true,"typeLabel":"string","deprecated":false}},"additionalProperties":false,"deprecated":false},"schemeName":"basicAuth","name":"Authorization"}],"title":"basicAuth"}]},"originalFileLocation":"server-api.json"},"subdomain":"authsignal-23","siteName":"Authsignal","title":"Batch Enroll Verified Authenticators - Authsignal","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-26T07:48:00.438Z","originalFileLocation":"api-reference/server-api/batch-enroll-verified-authenticators.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}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=\"Enroll multiple authenticators across multiple users in a single request. This endpoint is idempotent. Re-enrolling the same credential for the same user is a no-op. Each item is processed independently; failures do not affect other items in the batch.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Authsignal\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/authsignal-23/zo2TXHNNAcuLzclo/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/authsignal-23/zo2TXHNNAcuLzclo/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/authsignal-23/zo2TXHNNAcuLzclo/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/authsignal-23/zo2TXHNNAcuLzclo/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/authsignal-23/zo2TXHNNAcuLzclo/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/authsignal-23/zo2TXHNNAcuLzclo/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/authsignal-23/zo2TXHNNAcuLzclo/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/authsignal-23/zo2TXHNNAcuLzclo/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/authsignal-23/zo2TXHNNAcuLzclo/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Batch Enroll Verified Authenticators - Authsignal\">\u003cmeta data-mint-head property=\"og:description\" content=\"Enroll multiple authenticators across multiple users in a single request. This endpoint is idempotent. Re-enrolling the same credential for the same user is a no-op. Each item is processed independently; failures do not affect other items in the batch.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Authsignal\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.authsignal.com/api-reference/server-api/batch-enroll-verified-authenticators\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://authsignal-23.mintlify.site/_mintlify/api/og/v2?division=Authenticators\u0026amp;title=Batch+Enroll+Verified+Authenticators\u0026amp;description=Enroll+multiple+authenticators+across+multiple+users+in+a+single+request.+This+endpoint+is+idempotent.+Re-enrolling+the+same+credential+for+the+same+user+is+a+n\u0026amp;theme=4f88b0d0c8f63fb60eb7d9d3\u0026amp;signature=335762f797b34159b2103fe60d93f93d9faffb74dd21669f737ca58b938f8116\">\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=\"Batch Enroll Verified Authenticators - Authsignal\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Enroll multiple authenticators across multiple users in a single request. This endpoint is idempotent. Re-enrolling the same credential for the same user is a no-op. Each item is processed independently; failures do not affect other items in the batch.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://authsignal-23.mintlify.site/_mintlify/api/og/v2?division=Authenticators\u0026amp;title=Batch+Enroll+Verified+Authenticators\u0026amp;description=Enroll+multiple+authenticators+across+multiple+users+in+a+single+request.+This+endpoint+is+idempotent.+Re-enrolling+the+same+credential+for+the+same+user+is+a+n\u0026amp;theme=4f88b0d0c8f63fb60eb7d9d3\u0026amp;signature=335762f797b34159b2103fe60d93f93d9faffb74dd21669f737ca58b938f8116\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/authsignal-23/zo2TXHNNAcuLzclo/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Authsignal\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#8b7bff\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.authsignal.com/api-reference/server-api/batch-enroll-verified-authenticators\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/server-api/batch-enroll-verified-authenticators.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.authsignal.com/#organization\",\"name\":\"Authsignal\",\"url\":\"https://docs.authsignal.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/authsignal-23/Q2QPBK1EKmJpLovY/logo/light.png?fit=max\u0026auto=format\u0026n=Q2QPBK1EKmJpLovY\u0026q=85\u0026s=8c4bd51abfac23972d75d85678c2f1ed\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.authsignal.com#website\",\"name\":\"Authsignal\",\"url\":\"https://docs.authsignal.com\",\"publisher\":{\"@id\":\"https://docs.authsignal.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.authsignal.com/api-reference/server-api/batch-enroll-verified-authenticators#webpage\",\"url\":\"https://docs.authsignal.com/api-reference/server-api/batch-enroll-verified-authenticators\",\"name\":\"Batch Enroll Verified Authenticators\",\"description\":\"Enroll multiple authenticators across multiple users in a single request. This endpoint is idempotent. Re-enrolling the same credential for the same user is a no-op. Each item is processed independently; failures do not affect other items in the batch.\",\"dateModified\":\"2026-08-26T07:48:00.438Z\",\"isPartOf\":{\"@id\":\"https://docs.authsignal.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.authsignal.com/api-reference/server-api/batch-enroll-verified-authenticators#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.authsignal.com/api-reference/server-api/batch-enroll-verified-authenticators#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Server API\",\"item\":\"https://docs.authsignal.com/api-reference/server-api/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Authenticators\",\"item\":\"https://docs.authsignal.com/api-reference/server-api/enroll-verified-authenticator\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Batch Enroll Verified Authenticators\",\"item\":\"https://docs.authsignal.com/api-reference/server-api/batch-enroll-verified-authenticators\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.authsignal.com/api-reference/server-api/batch-enroll-verified-authenticators#apireference\",\"headline\":\"Batch Enroll Verified Authenticators\",\"name\":\"Batch Enroll Verified Authenticators\",\"description\":\"Enroll multiple authenticators across multiple users in a single request. This endpoint is idempotent. Re-enrolling the same credential for the same user is a no-op. Each item is processed independently; failures do not affect other items in the batch.\",\"url\":\"https://docs.authsignal.com/api-reference/server-api/batch-enroll-verified-authenticators\",\"mainEntityOfPage\":{\"@id\":\"https://docs.authsignal.com/api-reference/server-api/batch-enroll-verified-authenticators#webpage\"},\"dateModified\":\"2026-08-26T07:48:00.438Z\",\"publisher\":{\"@id\":\"https://docs.authsignal.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.authsignal.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Authsignal\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Authsignal","nav":{"global":null,"tabs":[{"tab":"Documentation","icon":"book-open","pages":[{"title":"Documentation","href":"/getting-started/overview"}]},{"tab":"SDKs","icon":"rectangle-code","pages":[{"title":"SDKs","href":"/sdks/server/overview"}]},{"tab":"API reference","icon":"rectangle-terminal","groups":[{"group":"API reference","pages":[{"title":"Authsignal APIs","sidebarTitle":"Overview","href":"/api-reference/overview"}]},{"group":"Server API","pages":[{"title":"Server API - Overview","sidebarTitle":"Overview","href":"/api-reference/server-api/overview"},{"group":"Actions","pages":[{"title":"Track Action","openapi":"server-api POST /users/{userId}/actions/{action}","href":"/api-reference/server-api/track-action"},{"title":"Validate Action","openapi":"server-api POST /validate","href":"/api-reference/server-api/validate-action"},{"title":"Get Action","openapi":"server-api GET /users/{userId}/actions/{action}/{idempotencyKey}","href":"/api-reference/server-api/get-action"},{"title":"Query Actions","openapi":"server-api GET /users/{userId}/actions","href":"/api-reference/server-api/query-actions"},{"title":"Update Action","openapi":"server-api PATCH /users/{userId}/actions/{action}/{idempotencyKey}","href":"/api-reference/server-api/update-action"}]},{"group":"Users","pages":[{"title":"Get User","openapi":"server-api GET /users/{userId}","href":"/api-reference/server-api/get-user"},{"title":"Update User","openapi":"server-api PATCH /users/{userId}","href":"/api-reference/server-api/update-user"},{"title":"Delete User","openapi":"server-api DELETE /users/{userId}","href":"/api-reference/server-api/delete-user"},{"title":"Query Users","openapi":"server-api GET /users","href":"/api-reference/server-api/query-users"}]},{"group":"Authenticators","pages":[{"title":"Enroll Verified Authenticator","openapi":"server-api POST /users/{userId}/authenticators","description":"Enroll an authenticator on behalf of a user. This operation should only be used in cases where you have already verified a user's email address or phone number in your own system.","href":"/api-reference/server-api/enroll-verified-authenticator"},{"title":"Batch Enroll Verified Authenticators","openapi":"server-api POST /users/authenticators","href":"/api-reference/server-api/batch-enroll-verified-authenticators"},{"title":"Get Authenticators","openapi":"server-api GET /users/{userId}/authenticators","description":"Gets a list of the user's currently enrolled authenticators.","href":"/api-reference/server-api/get-authenticators"},{"title":"Delete Authenticator","openapi":"server-api DELETE /users/{userId}/authenticators/{userAuthenticatorId}","href":"/api-reference/server-api/delete-authenticator"},{"title":"Get Authenticator Configurations","openapi":"server-api GET /authenticators","href":"/api-reference/server-api/get-authenticator-configurations"}]},{"group":"Challenges","pages":[{"title":"Initiate Challenge","openapi":"server-api POST /challenge","href":"/api-reference/server-api/initiate-challenge"},{"title":"Verify Challenge","openapi":"server-api POST /verify","href":"/api-reference/server-api/verify-challenge"},{"title":"Claim Challenge","openapi":"server-api POST /claim","href":"/api-reference/server-api/claim-challenge"},{"title":"Get Challenge","openapi":"server-api GET /challenges","href":"/api-reference/server-api/get-challenge"}]},{"group":"Sessions","pages":[{"title":"Create Session","openapi":"server-api POST /sessions","href":"/api-reference/server-api/create-session"},{"title":"Validate Session","openapi":"server-api POST /sessions/validate","href":"/api-reference/server-api/validate-session"},{"title":"Refresh Session","openapi":"server-api POST /sessions/refresh","href":"/api-reference/server-api/refresh-session"},{"title":"Revoke Session","openapi":"server-api POST /sessions/revoke","href":"/api-reference/server-api/revoke-session"},{"title":"Revoke User Sessions","openapi":"server-api POST /sessions/user/revoke","href":"/api-reference/server-api/revoke-user-sessions"}]},{"group":"Devices","pages":[{"title":"Get Devices","openapi":"server-api GET /users/{userId}/devices","href":"/api-reference/server-api/get-devices"},{"title":"Update Device","openapi":"server-api PATCH /users/{userId}/devices/{deviceId}","href":"/api-reference/server-api/update-device"},{"title":"Invalidate Device","openapi":"server-api POST /users/{userId}/devices/{deviceId}/invalidate","href":"/api-reference/server-api/invalidate-device"}]},{"group":"Flows","tag":"New","pages":[{"title":"Start Flow","openapi":"server-api POST /flows","href":"/api-reference/server-api/start-flow"},{"title":"Verify Flow","openapi":"server-api POST /flows/verify","href":"/api-reference/server-api/verify-flow"}]}]},{"group":"Client API","pages":[{"title":"Client API - Overview","sidebarTitle":"Overview","href":"/api-reference/client-api/overview"},{"group":"Authenticators","pages":[{"title":"Get Authenticators","openapi":"client-api GET /user-authenticators","href":"/api-reference/client-api/get-authenticators"},{"title":"Get Authenticator Configurations","openapi":"client-api GET /authenticators","href":"/api-reference/client-api/get-authenticator-configurations"}]},{"group":"SMS","pages":[{"title":"Start SMS Enrollment","openapi":"client-api POST /user-authenticators/sms","href":"/api-reference/client-api/start-sms-enrollment"},{"title":"Start SMS Challenge","openapi":"client-api POST /challenge/sms","href":"/api-reference/client-api/start-sms-challenge"},{"title":"Verify SMS Challenge","openapi":"client-api POST /verify/sms","href":"/api-reference/client-api/verify-sms-challenge"}]},{"group":"WhatsApp","pages":[{"title":"Start WhatsApp Challenge","openapi":"client-api POST /challenge/whatsapp","href":"/api-reference/client-api/start-whatsapp-challenge"},{"title":"Verify WhatsApp Challenge","openapi":"client-api POST /verify/whatsapp","href":"/api-reference/client-api/verify-whatsapp-challenge"}]},{"group":"Email OTP","pages":[{"title":"Start Email OTP Enrollment","openapi":"client-api POST /user-authenticators/email-otp","href":"/api-reference/client-api/start-email-otp-enrollment"},{"title":"Start Email OTP Challenge","openapi":"client-api POST /challenge/email-otp","href":"/api-reference/client-api/start-email-otp-challenge"},{"title":"Verify Email OTP Challenge","openapi":"client-api POST /verify/email-otp","href":"/api-reference/client-api/verify-email-otp-challenge"}]},{"group":"Email magic link","pages":[{"title":"Start Email Magic Link Enrollment","openapi":"client-api POST /user-authenticators/email-magic-link","href":"/api-reference/client-api/start-email-magic-link-enrollment"},{"title":"Start Email Magic Link Challenge","openapi":"client-api POST /challenge/email-magic-link","href":"/api-reference/client-api/start-email-magic-link-challenge"},{"title":"Finalize Email Magic Link Challenge","openapi":"client-api POST /verify/email-magic-link/finalize","href":"/api-reference/client-api/finalize-email-magic-link-challenge"}]},{"group":"Authenticator app","pages":[{"title":"Start Authenticator App Enrollment","openapi":"client-api POST /user-authenticators/totp","href":"/api-reference/client-api/start-authenticator-app-enrollment"},{"title":"Verify Authenticator App Challenge","openapi":"client-api POST /verify/totp","href":"/api-reference/client-api/verify-authenticator-app-challenge"}]},{"group":"Passkey","pages":[{"title":"Overview","href":"/api-reference/client-api/passkey-overview"},{"title":"Generate Passkey Registration Options","openapi":"client-api POST /user-authenticators/passkey/registration-options","href":"/api-reference/client-api/generate-passkey-registration-options"},{"title":"Verify Passkey Registration","openapi":"client-api POST /user-authenticators/passkey","href":"/api-reference/client-api/verify-passkey-registration"},{"title":"Generate Passkey Authentication Options","openapi":"client-api POST /user-authenticators/passkey/authentication-options","href":"/api-reference/client-api/generate-passkey-authentication-options"},{"title":"Verify Passkey Authentication","openapi":"client-api POST /verify/passkey","href":"/api-reference/client-api/verify-passkey-authentication"},{"title":"Initiate Challenge","openapi":"client-api POST /challenge","href":"/api-reference/client-api/initiate-challenge"}]},{"group":"Push","pages":[{"title":"Push API - Overview","sidebarTitle":"Overview","href":"/api-reference/client-api/push-overview"},{"title":"Start Push Challenge","openapi":"client-api POST /challenge/push","href":"/api-reference/client-api/start-push-challenge"},{"title":"Verify Push Challenge","openapi":"client-api POST /verify/push","href":"/api-reference/client-api/verify-push-challenge"}]},{"group":"QR code","pages":[{"title":"Overview","href":"/api-reference/client-api/qr-code-overview"},{"title":"Start QR Code Challenge","openapi":"client-api POST /challenge/qr-code","href":"/api-reference/client-api/start-qr-code-challenge"},{"title":"Verify QR Code Challenge","openapi":"client-api POST /verify/qr-code","href":"/api-reference/client-api/verify-qr-code-challenge"},{"title":"WebSocket","asyncapi":"challenge-websocket.json ws-v1-challenge","href":"/api-reference/client-api/qr-code-websocket"}]},{"group":"iProov (face biometrics)","pages":[{"title":"iProov API - Overview","sidebarTitle":"Overview","href":"/api-reference/client-api/iproov-overview"},{"title":"Start iProov Challenge","openapi":"client-api POST /challenge/iproov","href":"/api-reference/client-api/start-iproov-challenge"},{"title":"Verify iProov Challenge","openapi":"client-api POST /verify/iproov","href":"/api-reference/client-api/verify-iproov-challenge"}]}]},{"group":"Management API","pages":[{"title":"Management API - Overview","sidebarTitle":"Overview","href":"/api-reference/management-api/overview"},{"group":"Tenants","pages":[{"title":"Get Tenant","openapi":"management-api GET /tenant","href":"/api-reference/management-api/get-tenant"},{"title":"Update Tenant","openapi":"management-api PATCH /tenant","href":"/api-reference/management-api/update-tenant"}]},{"group":"Action configurations","pages":[{"title":"Create Action Configuration","openapi":"management-api POST /action-configurations","href":"/api-reference/management-api/create-action-configurations"},{"title":"List Action Configurations","openapi":"management-api GET /action-configurations","href":"/api-reference/management-api/list-action-configurations"},{"title":"Get Action Configuration","openapi":"management-api GET /action-configurations/{action_code}","href":"/api-reference/management-api/get-action-configurations"},{"title":"Update Action Configuration","openapi":"management-api PATCH /action-configurations/{action_code}","href":"/api-reference/management-api/update-action-configurations"},{"title":"Delete Action Configuration","openapi":"management-api DELETE /action-configurations/{action_code}","href":"/api-reference/management-api/delete-action-configurations"}]},{"group":"Authenticator configurations","pages":[{"group":"SMS OTP","pages":[{"title":"Create SMS OTP authenticator configuration","openapi":"management-api POST /authenticator-configurations/sms","href":"/api-reference/management-api/create-sms-otp-authenticator-configuration"},{"title":"Get SMS OTP authenticator configuration","openapi":"management-api GET /authenticator-configurations/sms","href":"/api-reference/management-api/get-sms-otp-authenticator-configuration"},{"title":"Update SMS OTP authenticator configuration","openapi":"management-api PATCH /authenticator-configurations/sms","href":"/api-reference/management-api/update-sms-otp-authenticator-configuration"},{"title":"Delete SMS OTP authenticator configuration","openapi":"management-api DELETE /authenticator-configurations/sms","href":"/api-reference/management-api/delete-sms-otp-authenticator-configuration"}]},{"group":"Email OTP","pages":[{"title":"Create Email OTP authenticator configuration","openapi":"management-api POST /authenticator-configurations/email-otp","href":"/api-reference/management-api/create-email-otp-authenticator-configuration"},{"title":"Get Email OTP authenticator configuration","openapi":"management-api GET /authenticator-configurations/email-otp","href":"/api-reference/management-api/get-email-otp-authenticator-configuration"},{"title":"Update Email OTP authenticator configuration","openapi":"management-api PATCH /authenticator-configurations/email-otp","href":"/api-reference/management-api/update-email-otp-authenticator-configuration"},{"title":"Delete Email OTP authenticator configuration","openapi":"management-api DELETE /authenticator-configurations/email-otp","href":"/api-reference/management-api/delete-email-otp-authenticator-configuration"}]},{"group":"Passkey","pages":[{"title":"Create passkey authenticator configuration","openapi":"management-api POST /authenticator-configurations/passkey","href":"/api-reference/management-api/create-passkey-authenticator-configuration"},{"title":"Get passkey authenticator configuration","openapi":"management-api GET /authenticator-configurations/passkey","href":"/api-reference/management-api/get-passkey-authenticator-configuration"},{"title":"Update passkey authenticator configuration","openapi":"management-api PATCH /authenticator-configurations/passkey","href":"/api-reference/management-api/update-passkey-authenticator-configuration"},{"title":"Delete passkey authenticator configuration","openapi":"management-api DELETE /authenticator-configurations/passkey","href":"/api-reference/management-api/delete-passkey-authenticator-configuration"}]},{"group":"Push","pages":[{"title":"Create push authenticator configuration","openapi":"management-api POST /authenticator-configurations/push","href":"/api-reference/management-api/create-push-authenticator-configuration"},{"title":"Get push authenticator configuration","openapi":"management-api GET /authenticator-configurations/push","href":"/api-reference/management-api/get-push-authenticator-configuration"},{"title":"Update push authenticator configuration","openapi":"management-api PATCH /authenticator-configurations/push","href":"/api-reference/management-api/update-push-authenticator-configuration"},{"title":"Delete push authenticator configuration","openapi":"management-api DELETE /authenticator-configurations/push","href":"/api-reference/management-api/delete-push-authenticator-configuration"}]}]},{"group":"Rules","pages":[{"title":"Create Rule","openapi":"management-api POST /action-configurations/{action_code}/rules","href":"/api-reference/management-api/create-rules"},{"title":"List Rules","openapi":"management-api GET /action-configurations/{action_code}/rules","href":"/api-reference/management-api/list-rules"},{"title":"Get Rule","openapi":"management-api GET /action-configurations/{action_code}/rules/{rule_id}","href":"/api-reference/management-api/get-rules"},{"title":"Update Rule","openapi":"management-api PATCH /action-configurations/{action_code}/rules/{rule_id}","href":"/api-reference/management-api/update-rules"},{"title":"Delete Rule","openapi":"management-api DELETE /action-configurations/{action_code}/rules/{rule_id}","href":"/api-reference/management-api/delete-rules"}]},{"group":"Custom lists","pages":[{"title":"Create Custom List","openapi":"management-api POST /value-lists","href":"/api-reference/management-api/create-custom-lists"},{"title":"List Custom Lists","openapi":"management-api GET /value-lists","href":"/api-reference/management-api/list-custom-lists"},{"title":"Get Custom List","openapi":"management-api GET /value-lists/{value_list_alias}","href":"/api-reference/management-api/get-custom-lists"},{"title":"Update Custom List","openapi":"management-api PATCH /value-lists/{value_list_alias}","href":"/api-reference/management-api/update-custom-lists"},{"title":"Delete Custom List","openapi":"management-api DELETE /value-lists/{value_list_alias}","href":"/api-reference/management-api/delete-custom-lists"}]},{"group":"Custom data points","pages":[{"title":"Create Custom Data Point","openapi":"management-api POST /custom-data-points","href":"/api-reference/management-api/create-custom-data-points"},{"title":"List Custom Data Points","openapi":"management-api GET /custom-data-points","href":"/api-reference/management-api/list-custom-data-points"},{"title":"Get Custom Data Point","openapi":"management-api GET /custom-data-points/{id}","href":"/api-reference/management-api/get-custom-data-points"},{"title":"Update Custom Data Point","openapi":"management-api PATCH /custom-data-points/{id}","href":"/api-reference/management-api/update-custom-data-points"},{"title":"Delete Custom Data Point","openapi":"management-api DELETE /custom-data-points/{id}","href":"/api-reference/management-api/delete-custom-data-points"}]},{"group":"Theme","pages":[{"title":"Get Theme","openapi":"management-api GET /theme","href":"/api-reference/management-api/get-theme"},{"title":"Update Theme","openapi":"management-api PATCH /theme","href":"/api-reference/management-api/update-theme"}]},{"group":"Message Overrides","pages":[{"title":"Get Message Overrides","openapi":"management-api GET /message-overrides","href":"/api-reference/management-api/get-message-overrides"},{"title":"Update Message Overrides","openapi":"management-api PATCH /message-overrides","href":"/api-reference/management-api/update-message-overrides"},{"title":"Get Message Overrides Catalog","openapi":"management-api GET /message-overrides/catalog","href":"/api-reference/management-api/get-message-overrides-catalog"}]}]},{"group":"Call Connect API","pages":[{"title":"Call Connect API - Overview","sidebarTitle":"Overview","href":"/api-reference/call-connect-api/overview"},{"group":"Caller authentication","pages":[{"title":"Start Call Connect Session","openapi":"call-connect-api POST /call/start","href":"/api-reference/call-connect-api/start-call-connect"},{"title":"Finish Call Connect Session","openapi":"call-connect-api POST /call/finish","href":"/api-reference/call-connect-api/finish-call-connect"}]}]},{"group":"Terminal API","pages":[{"title":"Terminal API - Overview","sidebarTitle":"Overview","href":"/api-reference/terminal-api/overview"},{"group":"Payment sessions","pages":[{"title":"Create Payment Session","openapi":"terminal-api POST /terminal/payment-session","href":"/api-reference/terminal-api/create-payment-session"},{"title":"Get Payment Session","openapi":"terminal-api GET /terminal/payment-session/{challengeId}","href":"/api-reference/terminal-api/get-payment-session"}]},{"group":"In-person verifications","pages":[{"title":"Create In-person Verification","openapi":"terminal-api POST /terminal/proximity-verifications","href":"/api-reference/terminal-api/create-in-person-verification"},{"title":"Get In-person Verification","openapi":"terminal-api GET /terminal/proximity-verifications/{verificationId}","href":"/api-reference/terminal-api/get-in-person-verification"},{"title":"Cancel In-person Verification","openapi":"terminal-api POST /terminal/proximity-verifications/{verificationId}/cancel","href":"/api-reference/terminal-api/cancel-in-person-verification"}]}]}]},{"tab":"Webhooks","icon":"webhook","pages":[{"title":"Webhooks","href":"/advanced-usage/webhooks/introduction"}]},{"tab":"Knowledge base","icon":"books","pages":[{"title":"Knowledge base","href":"/knowledge-base/overview"}]},{"tab":"Changelog","icon":"clock-rotate-left","pages":[{"title":"Changelog","href":"/changelog/product-updates"}]}]},"basePath":"","title":"Batch Enroll Verified Authenticators - Authsignal","buildId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","deploymentId":"dpl_DTau1J5HqS9UTgVSDwGksstFWtPa","dynamics":["c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["OpenApiReferenceProvider-5FCzAcfS.js","utils-SLtAG4EZ.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-2DZi8ZMu.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-D7J3nkzE.js","snippetPresets-D0Alv0AH.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","Page-D9ithiIZ.js","ApiExamples-BI4qNJ2c.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BD3uyr8j.js","shallow-D8iEBr5z.js","getApiPlaygroundDisplay-CgNP4lzR.js","CodeSnippet-CX-QHuMs.js","CodeSnippets-VlXE-ZUf.js","getPastedJson-DYNQkZ1M.js","icon-CzacdwOi.js","MethodPill-2JVqoYKi.js","DuplicateIcon-_xVXs-U8.js","createIcon-BRHrweLo.js","DynamicMarkdown-mQG_iQiE.js","SectionHeading-DMpJzv8f.js","axios-vUo_bRtp.js","Markdown-5FGIym-8.js","clsx-D-TRO5q5.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CdrJecqK.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-CHlcWBLM.js"]}