curl --request POST \
  --url https://api.turnkey.com/public/v1/submit/otp_auth \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --header "X-Stamp: <YOUR_API_KEY.YOUR_API_SECRET>" \
  --data '{
    "type": "ACTIVITY_TYPE_OTP_AUTH",
    "timestampMs": "<string> (e.g., 1745474677472)",
    "organizationId": "<string> (Your Organization ID)",
    "parameters": {
        "otpId": "<string>",
        "otpCode": "<string>",
        "targetPublicKey": "<string>",
        "apiKeyName": "<string>",
        "expirationSeconds": "<string>",
        "invalidateExisting": true
    }
}'
{
  "activity": {
    "id": "<activity-id>",
    "status": "ACTIVITY_STATUS_COMPLETED",
    "type": "ACTIVITY_TYPE_OTP_AUTH",
    "organizationId": "<organization-id>",
    "timestampMs": "<timestamp> (e.g., 1745474677472)",
    "result": {
      "activity": {
        "type": "<string>",
        "intent": {
          "otpAuthIntent": {
            "otpId": "<string>",
            "otpCode": "<string>",
            "targetPublicKey": "<string>",
            "apiKeyName": "<string>",
            "expirationSeconds": "<string>",
            "invalidateExisting": true
          }
        },
        "result": {
          "otpAuthResult": {
            "userId": "<string>",
            "apiKeyId": "<string>",
            "credentialBundle": "<string>"
          }
        }
      }
    }
  }
}
POST
/
public
/
v1
/
submit
/
otp_auth

Authorizations

X-Stamp
string
header
required

Body

type
enum<string>
required

Enum options: ACTIVITY_TYPE_OTP_AUTH

timestampMs
string
required

Timestamp (in milliseconds) of the request, used to verify liveness of user requests.

organizationId
string
required

Unique identifier for a given Organization.

parameters
object
required

parameters field

Response

A successful response returns the following fields:

activity
object
required

The activity object containing type, intent, and result

curl --request POST \
  --url https://api.turnkey.com/public/v1/submit/otp_auth \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --header "X-Stamp: <YOUR_API_KEY.YOUR_API_SECRET>" \
  --data '{
    "type": "ACTIVITY_TYPE_OTP_AUTH",
    "timestampMs": "<string> (e.g., 1745474677472)",
    "organizationId": "<string> (Your Organization ID)",
    "parameters": {
        "otpId": "<string>",
        "otpCode": "<string>",
        "targetPublicKey": "<string>",
        "apiKeyName": "<string>",
        "expirationSeconds": "<string>",
        "invalidateExisting": true
    }
}'
{
  "activity": {
    "id": "<activity-id>",
    "status": "ACTIVITY_STATUS_COMPLETED",
    "type": "ACTIVITY_TYPE_OTP_AUTH",
    "organizationId": "<organization-id>",
    "timestampMs": "<timestamp> (e.g., 1745474677472)",
    "result": {
      "activity": {
        "type": "<string>",
        "intent": {
          "otpAuthIntent": {
            "otpId": "<string>",
            "otpCode": "<string>",
            "targetPublicKey": "<string>",
            "apiKeyName": "<string>",
            "expirationSeconds": "<string>",
            "invalidateExisting": true
          }
        },
        "result": {
          "otpAuthResult": {
            "userId": "<string>",
            "apiKeyId": "<string>",
            "credentialBundle": "<string>"
          }
        }
      }
    }
  }
}