Nuvelics documentation
APIAPI reference

Passkeys

Add, rename and remove the passkeys you sign in with.

GET
/api/tenant/v1/me/passkeys

Authorization

headerx-api-key<token>

A service key (nvs_...) in the x-api-key header. A service key belongs to one organization: an X-Org-Id header is optional and, when sent, must name that organization. This header also accepts any credential the bearer scheme does, and when a request sends both headers, this one is used.

Response Body

The calling user's own passkeys, oldest first. Empty while Nuvelics staff act in your organization

application/json
  1. response
items*array<>
Example Request
curl -X GET 'https://api.nuvelics.com/api/tenant/v1/me/passkeys'
Example Response
{  "items": [    {      "id": "string",      "nickname": "string",      "transports": [        "string"      ],      "createdAt": "2019-08-24T14:15:22Z",      "lastUsedAt": "2019-08-24T14:15:22Z"    }  ]}

Finish adding a passkey

POST
/api/tenant/v1/me/passkeys

Authorization

headerx-api-key<token>

A service key (nvs_...) in the x-api-key header. A service key belongs to one organization: an X-Org-Id header is optional and, when sent, must name that organization. This header also accepts any credential the bearer scheme does, and when a request sends both headers, this one is used.

Request Body

application/json
  1. body
challengeToken*string

The token the registration-options call returned

Length1 <= length <= 2048
response*
nickname?string

A label for this passkey. When omitted or blank it is named after the browser and system in the request's user agent ("Chrome on macOS"), or "Passkey" when that says nothing recognisable

Lengthlength <= 64

Response Body

The passkey, stored and recorded as passkey.added in the active organization

application/json
  1. response
id*string

The passkey's own id -- what a remove request targets

Match^[0-7][0-9A-HJKMNP-TV-Z]{25}$
nickname*string

The passkey's label: the one the user gave or renamed it to, else the browser and system that created it ("Chrome on macOS"), else "Passkey"

transports*array<string>

How the browser can reach the authenticator (internal, hybrid, usb, nfc, ble), as it reported at registration

createdAt*string

ISO 8601 timestamp of when this passkey was added

Formatdate-time
lastUsedAt*string

ISO 8601 timestamp of the last sign-in with this passkey, or null if never

Formatdate-time
Example Request
curl -X POST 'https://api.nuvelics.com/api/tenant/v1/me/passkeys' \  -H 'Content-Type: application/json' \  -d '{  "challengeToken": "string",  "response": {    "id": "string",    "rawId": "string",    "type": "public-key",    "response": {      "clientDataJSON": "string",      "attestationObject": "string",      "property1": null,      "property2": null    },    "clientExtensionResults": {      "property1": null,      "property2": null    },    "property1": null,    "property2": null  }}'
Example Response
{  "id": "string",  "nickname": "string",  "transports": [    "string"  ],  "createdAt": "2019-08-24T14:15:22Z",  "lastUsedAt": "2019-08-24T14:15:22Z"}

Start adding a passkey

POST
/api/tenant/v1/me/passkeys/registration-options

Authorization

headerx-api-key<token>

A service key (nvs_...) in the x-api-key header. A service key belongs to one organization: an X-Org-Id header is optional and, when sent, must name that organization. This header also accepts any credential the bearer scheme does, and when a request sends both headers, this one is used.

Response Body

WebAuthn creation options for a discoverable passkey, plus the two-minute token the registration call must hand back

application/json
  1. response
options*
challengeToken*string

Signed, two-minute token vouching for the options' challenge and the caller it was issued to. The web app keeps it in an httpOnly cookie and hands it back with the browser's response

Example Request
curl -X POST 'https://api.nuvelics.com/api/tenant/v1/me/passkeys/registration-options'
Example Response
{  "options": {    "challenge": "string",    "rp": {      "id": "string",      "name": "string",      "property1": null,      "property2": null    },    "user": {      "id": "string",      "name": "string",      "displayName": "string",      "property1": null,      "property2": null    },    "pubKeyCredParams": [      {        "type": "string",        "alg": 0,        "property1": null,        "property2": null      }    ],    "excludeCredentials": [      {        "id": "string",        "type": "string",        "property1": null,        "property2": null      }    ],    "property1": null,    "property2": null  },  "challengeToken": "string"}
PATCH
/api/tenant/v1/me/passkeys/{id}

Authorization

headerx-api-key<token>

A service key (nvs_...) in the x-api-key header. A service key belongs to one organization: an X-Org-Id header is optional and, when sent, must name that organization. This header also accepts any credential the bearer scheme does, and when a request sends both headers, this one is used.

Path Parameters

id*string

UUID v7, base32-encoded (26 Crockford chars)

Match^[0-7][0-9A-HJKMNP-TV-Z]{25}$

Request Body

application/json
  1. body
nickname*string

The passkey's new label, 1 to 64 characters after trimming

Length1 <= length <= 64

Response Body

The renamed passkey, recorded as passkey.renamed in the active organization (no event when the name is unchanged)

application/json
  1. response
id*string

The passkey's own id -- what a remove request targets

Match^[0-7][0-9A-HJKMNP-TV-Z]{25}$
nickname*string

The passkey's label: the one the user gave or renamed it to, else the browser and system that created it ("Chrome on macOS"), else "Passkey"

transports*array<string>

How the browser can reach the authenticator (internal, hybrid, usb, nfc, ble), as it reported at registration

createdAt*string

ISO 8601 timestamp of when this passkey was added

Formatdate-time
lastUsedAt*string

ISO 8601 timestamp of the last sign-in with this passkey, or null if never

Formatdate-time
Example Request
curl -X PATCH 'https://api.nuvelics.com/api/tenant/v1/me/passkeys/string' \  -H 'Content-Type: application/json' \  -d '{  "nickname": "string"}'
Example Response
{  "id": "string",  "nickname": "string",  "transports": [    "string"  ],  "createdAt": "2019-08-24T14:15:22Z",  "lastUsedAt": "2019-08-24T14:15:22Z"}
DELETE
/api/tenant/v1/me/passkeys/{id}

Authorization

headerx-api-key<token>

A service key (nvs_...) in the x-api-key header. A service key belongs to one organization: an X-Org-Id header is optional and, when sent, must name that organization. This header also accepts any credential the bearer scheme does, and when a request sends both headers, this one is used.

Path Parameters

id*string

UUID v7, base32-encoded (26 Crockford chars)

Match^[0-7][0-9A-HJKMNP-TV-Z]{25}$

Response Body

Removed, and recorded as passkey.removed in the active organization

Example Request
curl -X DELETE 'https://api.nuvelics.com/api/tenant/v1/me/passkeys/string'
Example Response
Empty

Report a problem with this page

On this page