3 min read

Source: Roblox Creator Hub · CC BY 4.0 · View source · Code samples: MIT Imported 2026-10-03. Formatting adapted for this site.

POST /v1/passkey/finish-ar-preauth-registration — openapi

Finishes account recovery pre-auth passkey registration by validating the recovery session, deactivating the user's password, and completing passkey registration.

Endpoint

Method: POST

Path: /v1/passkey/finish-ar-preauth-registration

Servers:

Request Body

The request body containing recovery session and passkey details.

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/Roblox.Authentication.Api.Models.Request.FinishARPreAuthPasskeyRegistrationRequest"
      }
    },
    "text/json": {
      "schema": {
        "$ref": "#/components/schemas/Roblox.Authentication.Api.Models.Request.FinishARPreAuthPasskeyRegistrationRequest"
      }
    }
  },
  "description": "The request body containing recovery session and passkey details.",
  "required": true
}

Responses

StatusDescription
200OK
4000: An unknown error occurred with the request.
4010: An unknown error occurred with the request.
4030: Token Validation Failed 1: Reached limit of pass keys registered.
5000: An unknown error occurred with the request.
5032: Feature disabled.
{
  "200": {
    "description": "OK",
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/Roblox.Web.WebAPI.ApiEmptyResponseModel"
        }
      },
      "text/json": {
        "schema": {
          "$ref": "#/components/schemas/Roblox.Web.WebAPI.ApiEmptyResponseModel"
        }
      }
    }
  },
  "400": {
    "description": "0: An unknown error occurred with the request."
  },
  "401": {
    "description": "0: An unknown error occurred with the request."
  },
  "403": {
    "description": "0: Token Validation Failed\r\n1: Reached limit of pass keys registered."
  },
  "500": {
    "description": "0: An unknown error occurred with the request."
  },
  "503": {
    "description": "2: Feature disabled."
  }
}

Authentication

{
  "security": [
    {}
  ],
  "securitySchemes": {
    "roblox-api-key": {
      "type": "apiKey",
      "description": "A configurable key that allows granular access to Roblox resources. See https://create.roblox.com/docs/cloud/auth/api-keys for more information.",
      "name": "x-api-key",
      "in": "header"
    },
    "roblox-legacy-cookie": {
      "type": "apiKey",
      "description": "A browser cookie that represents the identity of a Roblox user. DO NOT SHARE THIS. Sharing this will allow someone to log in as you and to steal your Robux and items. We do not recommend using cookies to call endpoints. When possible, use API keys with the x-api-key header or OAuth 2.0 instead for authentication.",
      "in": "cookie",
      "name": ".ROBLOSECURITY"
    },
    "roblox-oauth2": {
      "type": "oauth2",
      "description": "Build or authorize apps to access Roblox resources. See https://create.roblox.com/docs/cloud/auth/oauth2-overview for more information.",
      "flows": {
        "authorizationCode": {
          "authorizationUrl": "https://apis.roblox.com/oauth/v1/authorize",
          "tokenUrl": "https://apis.roblox.com/oauth/v1/token",
          "refreshUrl": "https://apis.roblox.com/oauth/v1/token",
          "scopes": {}
        }
      }
    }
  }
}

Complete Operation Definition

{
  "tags": [
    "Accounts"
  ],
  "summary": "Finishes account recovery pre-auth passkey registration by validating the recovery session,\ndeactivating the user's password, and completing passkey registration.",
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/Roblox.Authentication.Api.Models.Request.FinishARPreAuthPasskeyRegistrationRequest"
        }
      },
      "text/json": {
        "schema": {
          "$ref": "#/components/schemas/Roblox.Authentication.Api.Models.Request.FinishARPreAuthPasskeyRegistrationRequest"
        }
      }
    },
    "description": "The request body containing recovery session and passkey details.",
    "required": true
  },
  "responses": {
    "200": {
      "description": "OK",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Roblox.Web.WebAPI.ApiEmptyResponseModel"
          }
        },
        "text/json": {
          "schema": {
            "$ref": "#/components/schemas/Roblox.Web.WebAPI.ApiEmptyResponseModel"
          }
        }
      }
    },
    "400": {
      "description": "0: An unknown error occurred with the request."
    },
    "401": {
      "description": "0: An unknown error occurred with the request."
    },
    "403": {
      "description": "0: Token Validation Failed\r\n1: Reached limit of pass keys registered."
    },
    "500": {
      "description": "0: An unknown error occurred with the request."
    },
    "503": {
      "description": "2: Feature disabled."
    }
  },
  "servers": [
    {
      "url": "https://auth.roblox.com"
    }
  ],
  "x-roblox-engine-usability": {
    "apiKeyWithHttpService": false
  },
  "security": [
    {}
  ],
  "externalDocs": {
    "url": "https://create.roblox.com/docs/cloud/reference/features/accounts#auth_post_v1_passkey_finish_ar_preauth_registration"
  }
}