Confirm a registered device
const url = 'https://work.optidata.cloud/api/mfa/devices/example/confirm';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://work.optidata.cloud/api/mfa/devices/example/confirm \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{}'Completes enrolment of a device by proving possession of its private key. Only a confirmed device can answer challenges. Requires permission to update the device.
Authorizations
Section titled “Authorizations”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters”Public identifier of the device.
Request Bodyrequired
Section titled “Request Bodyrequired”Enrolment proof produced by the device. The exact fields are defined by the client that registered it.
object
Examplegenerated
{}Responses
Section titled “ Responses ”The confirmed device.
A device registered as a second authentication factor.
object
Public identifier of the device, used in paths.
UUID of the user the device belongs to.
Device-supplied hardware identifier.
Examplegenerated
{ "id": 1, "identifier": "example", "uuid": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "duid": "example", "name": "example", "is_confirmed": true, "created_at": "2026-04-15T12:00:00Z"}Missing, malformed or expired authentication key.
Authentication failures use an error key rather than message.
object
Examples
No bearer token sent
{ "error": "JWT passport exception: Missing bearer token in request"}The caller lacks the permission level the operation requires.
Generic error envelope used by policy, binding and framework failures.
object
Human-readable description of the failure.
Examples
{ "message": "This action is unauthorized."}The resource does not exist, or does not belong to the given drive.
Generic error envelope used by policy, binding and framework failures.
object
Human-readable description of the failure.
Examples
{ "message": "No query results for model [App\\Models\\Node] 99999999"}The request body or query string failed validation.
object
The first validation message.
Validation messages keyed by field name.
object
Examples
{ "message": "The name field is required.", "errors": { "name": [ "The name field is required." ] }}Rate limit exceeded. Retry after the window resets.
Generic error envelope used by policy, binding and framework failures.
object
Human-readable description of the failure.
Examples
{ "message": "Too Many Attempts."}