Returns the WebAuthn registration options needed to register a new passkey.
GET
/
sdk
/
{environmentId}
/
users
/
passkeys
/
register
Get user passkeys
curl --request GET \
--url https://app.dynamicauth.com/api/v0/sdk/{environmentId}/users/passkeys/register \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.dynamicauth.com/api/v0/sdk/{environmentId}/users/passkeys/register"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.dynamicauth.com/api/v0/sdk/{environmentId}/users/passkeys/register', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.dynamicauth.com/api/v0/sdk/{environmentId}/users/passkeys/register",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.dynamicauth.com/api/v0/sdk/{environmentId}/users/passkeys/register"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.dynamicauth.com/api/v0/sdk/{environmentId}/users/passkeys/register")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.dynamicauth.com/api/v0/sdk/{environmentId}/users/passkeys/register")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"attestation": "direct",
"authenticatorSelection": {
"authenticatorAttachment": "cross-platform",
"requireResidentKey": true,
"residentKey": "discouraged",
"userVerification": "discouraged"
},
"challenge": "<string>",
"excludeCredentials": [
{
"id": "<string>",
"type": "public-key",
"transports": [
"usb"
]
}
],
"pubKeyCredParams": [
{
"alg": 123,
"type": "public-key"
}
],
"rp": {
"id": "<string>",
"name": "<string>"
},
"timeout": 123,
"user": {
"displayName": "<string>",
"id": "<string>",
"name": "<string>"
},
"extensions": {
"appid": "<string>",
"appidExclude": "<string>",
"credProps": true,
"uvm": true
},
"hints": [
"<string>"
]
}{
"error": "<string>"
}{
"error": "No jwt provided!"
}{
"error": "Internal Server Error"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
ID of the environment
Required string length:
36Pattern:
^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$Example:
"95b11417-f18f-457f-8804-68e361f9164f"
Response
returns passkey registration options
Available options:
direct, enterprise, indirect, none Show child attributes
Show child attributes
Base64URL encoded challenge
List of credentials to exclude from registration
Show child attributes
Show child attributes
List of acceptable public key credential parameters
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Timeout in milliseconds
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Optional hints for the authenticator
Last modified on September 1, 2026
Was this page helpful?
⌘I
Get user passkeys
curl --request GET \
--url https://app.dynamicauth.com/api/v0/sdk/{environmentId}/users/passkeys/register \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.dynamicauth.com/api/v0/sdk/{environmentId}/users/passkeys/register"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.dynamicauth.com/api/v0/sdk/{environmentId}/users/passkeys/register', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.dynamicauth.com/api/v0/sdk/{environmentId}/users/passkeys/register",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.dynamicauth.com/api/v0/sdk/{environmentId}/users/passkeys/register"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.dynamicauth.com/api/v0/sdk/{environmentId}/users/passkeys/register")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.dynamicauth.com/api/v0/sdk/{environmentId}/users/passkeys/register")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"attestation": "direct",
"authenticatorSelection": {
"authenticatorAttachment": "cross-platform",
"requireResidentKey": true,
"residentKey": "discouraged",
"userVerification": "discouraged"
},
"challenge": "<string>",
"excludeCredentials": [
{
"id": "<string>",
"type": "public-key",
"transports": [
"usb"
]
}
],
"pubKeyCredParams": [
{
"alg": 123,
"type": "public-key"
}
],
"rp": {
"id": "<string>",
"name": "<string>"
},
"timeout": 123,
"user": {
"displayName": "<string>",
"id": "<string>",
"name": "<string>"
},
"extensions": {
"appid": "<string>",
"appidExclude": "<string>",
"credProps": true,
"uvm": true
},
"hints": [
"<string>"
]
}{
"error": "<string>"
}{
"error": "No jwt provided!"
}{
"error": "Internal Server Error"
}