---
title: "Create a request for the Hanko Authenticator"
method: POST
path: "/v1/uaf/requests"
tags: ["Hanko Authenticator"]
---

# Create a request for the Hanko Authenticator

`POST /v1/uaf/requests`

Using this endpoint you initialize a new registration, authentication, or deregistration by creating a new operation. Be sure to indicate the requested type by setting the operation to the correct enum value. Remember the `id` to take actions regarding this operation.

## Request body

- ModelsCreateRequest
  - `operation` 'AUTH' | 'DEREG' | 'REG', required
  - `username` string
  - `userId` string
  - `displayName` string
  - `clientData` ModelsClientData
    - `remoteAddress` string
    - `userAgent` string
  - `transaction` string
  - `deviceIds` string[]
  - `authenticatorSelectionCriteria` ModelsAuthenticatorSelectionCriteria
    - `authenticatorAttachment` 'platform' | 'cross-platform'
    - `requireResidentKey` boolean
    - `userVerification` 'required' | 'preferred' | 'discouraged'
  - `attestationConveyancePreference` 'direct' | 'indirect' | 'none'
  - `isSecondFactorOnly` boolean

## Response `200`

The full Hanko request for an initialized authentication operation including links

- ModelsHankoRequest
  - `id` string, required
  - `operation` 'AUTH' | 'DEREG' | 'REG', required
  - `username` string, required
  - `userId` string, required
  - `status` 'PENDING' | 'OK' | 'FAILED' | 'INVALIDATED', required
  - `createdAt` string, date-time, required
  - `validUntil` string, date-time, required
  - `relyingParty` ModelsRelyingParty, required
    - `id` string, required
    - `name` string, required
    - `appId` string, required
    - `icon` string, required
  - `clientData` ModelsClientData
    - `remoteAddress` string
    - `userAgent` string
  - `location` ModelsLocation
    - `country` string, required
    - `region` string, required
    - `city` string, required
  - `links` ModelsLink[], required
    - `rel` string, required
    - `method` string, required
    - `href` string, required
  - `transaction` string
  - `request` string, required
  - `deviceID` string, required
  - `device` ModelsRequestDevice
    - `deviceId` string
    - `keyName` string
  - `isSecondFactorOnly` boolean
  - `error` ModelsRequestError
    - `code` integer, required
    - `reason` string

## Other responses

- `400` — Bad request, the service could not process your request.
- `401` — You are not authenticated. Provide your credentials.
- `500` — Internal Server Error.

---

[API](https://skmtc.dev/hanko/apis/hanko-admin-api.md) · [All operations](https://skmtc.dev/hanko/apis/hanko-admin-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/hanko/hanko-admin-api/revisions/d22a127b0978/schema)
