Skip to main content
POST
/
users
/
authenticators
Batch enroll verified authenticators
curl --request POST \
  --url https://api.authsignal.com/v1/users/authenticators \
  --header 'Authorization: Basic <encoded-value>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "authenticators": [
    {
      "userId": "user-123",
      "verificationMethod": "PASSKEY",
      "credentialId": "dGVzdC1jcmVkZW50aWFsLWlk",
      "credentialPublicKey": "pQECAyYgASFYIPr...",
      "name": "iPhone"
    },
    {
      "userId": "user-456",
      "verificationMethod": "PASSKEY",
      "credentialId": "YW5vdGhlci1jcmVkZW50aWFs",
      "credentialPublicKey": "pQECAyYgASFYIKm..."
    }
  ]
}
'
{
  "total": 3,
  "succeeded": 2,
  "failed": 1,
  "failures": [
    {
      "userId": "user-789",
      "credentialId": "Y29uZmxpY3RpbmctY3JlZA",
      "errorCode": "conflict",
      "errorDescription": "Credential already exists for a different user."
    }
  ]
}

Authorizations

Authorization
string
header
required

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.

Body

application/json
authenticators
object[]
required

An array of authenticator items to enroll. Maximum 1000 items per request.

Maximum array length: 1000

Response

OK

total
number
required

The total number of items in the request.

succeeded
number
required

The number of authenticators successfully enrolled.

failed
number
required

The number of items that failed to enroll.

failures
object[]
required

A list of items that failed to enroll, with per-item error details. Empty when all items succeed.