{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "#/components/schemas/api_webauthn_v1_RegisterRequest", "title": "api_webauthn_v1_RegisterRequest", "type": "object", "properties": { "user_id": { "type": "string", "description": "The `user_id` of an active user the Passkey or WebAuthn registration should be tied to. You may use an `external_id` here if one is set for the user." }, "public_key_credential": { "type": "string", "description": "The response of the [navigator.credentials.create()](https://www.w3.org/TR/webauthn-2/#sctn-createCredential)." }, "session_token": { "type": "string", "description": "The `session_token` associated with a User's existing Session." }, "session_duration_minutes": { "type": "integer", "format": "int32", "description": "Set the session lifetime to be this many minutes from now. This will start a new session if one doesn't already exist,\n returning both an opaque `session_token` and `session_jwt` for this session. Remember that the `session_jwt` will have a fixed lifetime of\n five minutes regardless of the underlying session duration, and will need to be refreshed over time.\n\n This value must be a minimum of 5 and a maximum of 527040 minutes (366 days).\n\n If a `session_token` or `session_jwt` is provided then a successful authentication will continue to extend the session this many minutes.\n\n If the `session_duration_minutes` parameter is not specified, a Stytch session will not be created." }, "session_jwt": { "type": "string", "description": "The `session_jwt` associated with a User's existing Session." }, "session_custom_claims": { "type": "object", "additionalProperties": true, "description": "Add a custom claims map to the Session being authenticated. Claims are only created if a Session is initialized by providing a value in `session_duration_minutes`. Claims will be included on the Session object and in the JWT. To update a key in an existing Session, supply a new value. To delete a key, supply a null value.\n\n Custom claims made with reserved claims (\"iss\", \"sub\", \"aud\", \"exp\", \"nbf\", \"iat\", \"jti\") will be ignored. Total custom claims size cannot exceed four kilobytes." }, "telemetry_id": { "type": "string", "description": "If the `telemetry_id` is passed, as part of this request, Stytch will call the [Fingerprint Lookup API](https://stytch.com/docs/fraud/api/fingerprint-lookup) and store the associated fingerprints and IPGEO information for the User. Your workspace must be enabled for Device Fingerprinting to use this feature." } }, "description": "Request type", "required": [ "user_id", "public_key_credential" ] }