Activities
- Overview
- Create API Keys
- Create Authenticators
- Create Invitations
- Create Oauth Providers
- Create Policies
- Create Policy
- Create Private Key Tag
- Create Private Keys
- Create Read Only Session
- Create Read Write Session
- Create Sub-Organization
- Create User Tag
- Create Users
- Create Wallet
- Create Wallet Accounts
- Delete API Keys
- Delete Authenticators
- Delete Invitation
- Delete Oauth Providers
- Delete Policy
- Delete Private Key Tags
- Delete Private Keys
- Delete Sub Organization
- Delete User Tags
- Delete Users
- Delete Wallets
- Export Private Key
- Export Wallet
- Export Wallet Account
- Import Private Key
- Import Wallet
- Init Email Recovery
- Init Import Private Key
- Init Import Wallet
- Init OTP auth
- Oauth
- OTP auth
- Perform Email Auth
- Recover a user
- Remove Organization Feature
- Set Organization Feature
- Sign Raw Payload
- Sign Raw Payloads
- Sign Transaction
- Update Policy
- Update Private Key Tag
- Update Root Quorum
- Update User
- Update User Tag
- Update Wallet
Queries
- Overview
- Get Activity
- Get API key
- Get Authenticator
- Get Authenticators
- Get Configs
- Get Oauth providers
- Get Policy
- Get Private Key
- Get Suborgs
- Get User
- Get Verified Suborgs
- Get Wallet
- Get Wallet Account
- List Activities
- List Policies
- List Private Key Tags
- List Private Keys
- List User Tags
- List Users
- List Wallets
- List Wallets Accounts
- Who am I?
Create Authenticators
Create Authenticators to authenticate requests to Turnkey
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/create_authenticators \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: <YOUR_API_KEY.YOUR_API_SECRET>" \
--data '{
"type": "ACTIVITY_TYPE_CREATE_AUTHENTICATORS_V2",
"timestampMs": "<string> (e.g., 1745474677465)",
"organizationId": "<string> (Your Organization ID)",
"parameters": {
"authenticators": [
{
"authenticatorName": "<string>",
"challenge": "<string>",
"attestation": {
"credentialId": "<string>",
"clientDataJson": "<string>",
"attestationObject": "<string>",
"transports": [
"<AUTHENTICATOR_TRANSPORT_BLE>"
]
}
}
],
"userId": "<string>"
}
}'
{
"activity": {
"id": "<activity-id>",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_CREATE_AUTHENTICATORS_V2",
"organizationId": "<organization-id>",
"timestampMs": "<timestamp> (e.g., 1745474677465)",
"result": {
"activity": {
"type": "<string>",
"intent": {
"createAuthenticatorsIntent": {
"authenticators": [
{
"authenticatorName": "<string>",
"userId": "<string>",
"attestation": {
"id": "<string>",
"type": "<public-key>",
"rawId": "<string>",
"authenticatorAttachment": "<cross-platform>",
"response": {
"clientDataJson": "<string>",
"attestationObject": "<string>",
"transports": [
"<AUTHENTICATOR_TRANSPORT_BLE>"
],
"authenticatorAttachment": "<cross-platform>"
},
"clientExtensionResults": {
"appid": true,
"appidExclude": true,
"credProps": {
"rk": true
}
}
},
"challenge": "<string>"
}
],
"userId": "<string>"
}
},
"result": {
"createAuthenticatorsResult": {
"authenticatorIds": [
"<string_element>"
]
}
}
}
}
}
}
Authorizations
Body
Enum options: ACTIVITY_TYPE_CREATE_AUTHENTICATORS_V2
Timestamp (in milliseconds) of the request, used to verify liveness of user requests.
Unique identifier for a given Organization.
parameters field
A list of Authenticators.
attestation field
The cbor encoded then base64 url encoded id of the credential.
A base64 url encoded payload containing metadata about the signing context and the challenge.
A base64 url encoded payload containing authenticator data and any attestation the webauthn provider chooses.
Response
A successful response returns the following fields:
The activity object containing type, intent, and result
The intent of the activity
The createAuthenticatorsIntent object
A list of Authenticators.
Human-readable name for an Authenticator.
Unique identifier for a given User.
attestation field
type field
Enum options: public-key
rawId field
authenticatorAttachment field
Enum options: cross-platform
, platform
response field
clientDataJson field
attestationObject field
clientExtensionResults field
appid field
appidExclude field
The result of the activity
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/create_authenticators \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: <YOUR_API_KEY.YOUR_API_SECRET>" \
--data '{
"type": "ACTIVITY_TYPE_CREATE_AUTHENTICATORS_V2",
"timestampMs": "<string> (e.g., 1745474677465)",
"organizationId": "<string> (Your Organization ID)",
"parameters": {
"authenticators": [
{
"authenticatorName": "<string>",
"challenge": "<string>",
"attestation": {
"credentialId": "<string>",
"clientDataJson": "<string>",
"attestationObject": "<string>",
"transports": [
"<AUTHENTICATOR_TRANSPORT_BLE>"
]
}
}
],
"userId": "<string>"
}
}'
{
"activity": {
"id": "<activity-id>",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_CREATE_AUTHENTICATORS_V2",
"organizationId": "<organization-id>",
"timestampMs": "<timestamp> (e.g., 1745474677465)",
"result": {
"activity": {
"type": "<string>",
"intent": {
"createAuthenticatorsIntent": {
"authenticators": [
{
"authenticatorName": "<string>",
"userId": "<string>",
"attestation": {
"id": "<string>",
"type": "<public-key>",
"rawId": "<string>",
"authenticatorAttachment": "<cross-platform>",
"response": {
"clientDataJson": "<string>",
"attestationObject": "<string>",
"transports": [
"<AUTHENTICATOR_TRANSPORT_BLE>"
],
"authenticatorAttachment": "<cross-platform>"
},
"clientExtensionResults": {
"appid": true,
"appidExclude": true,
"credProps": {
"rk": true
}
}
},
"challenge": "<string>"
}
],
"userId": "<string>"
}
},
"result": {
"createAuthenticatorsResult": {
"authenticatorIds": [
"<string_element>"
]
}
}
}
}
}
}
Was this page helpful?
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/create_authenticators \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: <YOUR_API_KEY.YOUR_API_SECRET>" \
--data '{
"type": "ACTIVITY_TYPE_CREATE_AUTHENTICATORS_V2",
"timestampMs": "<string> (e.g., 1745474677465)",
"organizationId": "<string> (Your Organization ID)",
"parameters": {
"authenticators": [
{
"authenticatorName": "<string>",
"challenge": "<string>",
"attestation": {
"credentialId": "<string>",
"clientDataJson": "<string>",
"attestationObject": "<string>",
"transports": [
"<AUTHENTICATOR_TRANSPORT_BLE>"
]
}
}
],
"userId": "<string>"
}
}'
{
"activity": {
"id": "<activity-id>",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_CREATE_AUTHENTICATORS_V2",
"organizationId": "<organization-id>",
"timestampMs": "<timestamp> (e.g., 1745474677465)",
"result": {
"activity": {
"type": "<string>",
"intent": {
"createAuthenticatorsIntent": {
"authenticators": [
{
"authenticatorName": "<string>",
"userId": "<string>",
"attestation": {
"id": "<string>",
"type": "<public-key>",
"rawId": "<string>",
"authenticatorAttachment": "<cross-platform>",
"response": {
"clientDataJson": "<string>",
"attestationObject": "<string>",
"transports": [
"<AUTHENTICATOR_TRANSPORT_BLE>"
],
"authenticatorAttachment": "<cross-platform>"
},
"clientExtensionResults": {
"appid": true,
"appidExclude": true,
"credProps": {
"rk": true
}
}
},
"challenge": "<string>"
}
],
"userId": "<string>"
}
},
"result": {
"createAuthenticatorsResult": {
"authenticatorIds": [
"<string_element>"
]
}
}
}
}
}
}