---
title: "Start creating a new passkey"
method: POST
path: "/passkey/append/start"
tags: ["Passkeys"]
---

# Start creating a new passkey

`POST /passkey/append/start`

Starts creating a new passkey by initiating the WebAuthn ceremony. To complete the ceremony you need to call [finish](/api-reference/backend-api/passkeys/finish-creating-a-new-passkey).

## Request body

- PasskeyAppendStartReq
  - `userID` string, required — ID of the user
  - `processID` string, required
  - `username` string, required
  - `clientInformation` ClientInformation, required
    - `remoteAddress` string, required — Client's IP address
    - `userAgent` string, required — Client's user agent
    - `clientEnvHandle` string — Client's environment handle
    - `javascriptFingerprint` string — Client's fingerprint
    - `javaScriptHighEntropy` JavaScriptHighEntropy
      - `platform` string, required
      - `platformVersion` string, required
      - `mobile` boolean, required
    - `bluetoothAvailable` boolean — Client's Bluetooth availability
    - `passwordManagerAvailable` boolean — Client's password manager availability
    - `userVerifyingPlatformAuthenticatorAvailable` boolean, required
    - `conditionalMediationAvailable` boolean, required
    - `clientCapabilities` ClientCapabilities, required
      - `conditionalCreate` boolean
      - `conditionalMediation` boolean
      - `hybridTransport` boolean
      - `passkeyPlatformAuthenticator` boolean
      - `userVerifyingPlatformAuthenticator` boolean
    - `privateMode` boolean
    - `parsedDeviceInfo` ParsedDeviceInfo, required
      - `browserName` string, required
      - `browserVersion` string, required
      - `osName` string, required
      - `osVersion` string, required
    - `nativeMeta` NativeMeta
      - `build` string, required
      - `deviceOwnerAuth` string
      - `isPlatformAuthenticatorAPISupported` boolean
      - `isBluetoothAvailable` boolean
      - `isBluetoothOn` boolean
      - `googlePlayServices` boolean
      - `deviceSecure` boolean
      - `brand` string
      - `model` string
  - `passkeyIntelFlags` PasskeyIntelFlags, required
    - `forcePasskeyAppend` boolean, required
    - `askForAutoAppend` boolean
    - `askForConditionalCreate` boolean
    - `askForInAppAppend` string
  - `situation` string, required

## Response `200`

Passkey creation process has been started.

- PasskeyAppendStartRsp
  - `appendAllow` boolean, required
  - `attestationOptions` string, required
  - `detectionInsights` DetectionInsights, required
    - `tags` DetectionTag[], required
      - `category` 'support' | 'clientEnv' | 'history' | 'passkey', required
      - `name` string, required
    - `credentialIds` string[], required
    - `clientEnvIds` string[], required
    - `passwordManagerIds` string[], required
    - `historyData` AppendHistoryData, required
      - `defaultCount` integer, required
      - `afterErrorCount` integer, required
      - `afterHybridCount` integer, required
      - `autoCount` integer, required
      - `defaultCooldown` boolean, required
      - `afterErrorCooldown` boolean, required
      - `afterHybridCooldown` boolean, required
      - `autoCooldown` boolean, required
      - `conditionalCreateCooldown` boolean, required
      - `inAppCooldown` boolean, required
  - `decisionInsights` DecisionInsightsAppend, required
    - `tag` 'env-no-platform-pk-support' | 'env-no-pk-support' | 'user-no-pks' | 'user-login-blacklisted' | 'user-security-key' | 'user-positive-env-history' | 'user-negative-env-history' | 'env-blacklisted' | 'user-platform-pk-high-confidence' | 'user-cross-platform-pk-high-confidence' | 'user-env-no-pks' | 'default-deny' | 'passkey-list-initiated-process' | 'user-append-blacklisted' | 'process-pk-login-sk-completed' | 'process-pk-login-platform-completed' | 'process-pk-login-not-offered' | 'process-pk-login-incomplete' | 'process-pk-login-cross-platform-completed' | 'device-local-platform-passkey-experiment' | 'env-broken' | 'process-pk-login-aborted' | 'env-password-manager-pk-experiment', required
    - `isRestrictedBrowser` boolean, required
    - `variant` 'default' | 'after-error' | 'after-hybrid' | 'passkey-list' | 'after-no-credential' | 'in-app', required
    - `auto` boolean, required
    - `conditional` boolean, required
    - `customData` object

## Other responses

- `default` — Error

---

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