Authorizations
API Key
WebAuthn (Passkey)
Cryptographically signed (stamped) request to be passed in as a header. For more info, see
here.
Cryptographically signed (stamped) request to be passed in as a header. For more info, see
here.
Body
Enum options: ACTIVITY_TYPE_CREATE_OAUTH2_CREDENTIAL
Timestamp (in milliseconds) of the request, used to verify liveness of user requests.
Unique identifier for a given Organization.
The parameters object containing the specific intent data for this activity.
Enum options: OAUTH2_PROVIDER_X, OAUTH2_PROVIDER_DISCORD
The Client ID issued by the OAuth 2.0 provider
parameters.encryptedClientSecret
The client secret issued by the OAuth 2.0 provider encrypted to the TLS Fetcher quorum key
Enable to have your activity generate and return App Proofs, enabling verifiability.
Response
A successful response returns the following fields:
The activity object containing type, intent, and result
Unique identifier for a given Activity object.
Unique identifier for a given Organization.
The intent of the activity
activity.intent.createOauth2CredentialIntent
The createOauth2CredentialIntent objectShow createOauth2CredentialIntent details
activity.intent.createOauth2CredentialIntent.provider
provider fieldEnum options: OAUTH2_PROVIDER_X, OAUTH2_PROVIDER_DISCORD
activity.intent.createOauth2CredentialIntent.clientId
The Client ID issued by the OAuth 2.0 provider
activity.intent.createOauth2CredentialIntent.encryptedClientSecret
The client secret issued by the OAuth 2.0 provider encrypted to the TLS Fetcher quorum key
The result of the activity
activity.result.createOauth2CredentialResult
The createOauth2CredentialResult objectShow createOauth2CredentialResult details
activity.result.createOauth2CredentialResult.oauth2CredentialId
Unique identifier of the OAuth 2.0 credential that was created
A list of objects representing a particular User’s approval or rejection of a Consensus request, including all relevant metadata.
An artifact verifying a User’s action.
Whether the activity can be approved.
Whether the activity can be rejected.
The last update timestamp.
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/create_oauth2_credential \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: <string> (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_CREATE_OAUTH2_CREDENTIAL",
"timestampMs": "<string> (e.g. 1746736509954)",
"organizationId": "<string> (Your Organization ID)",
"parameters": {
"provider": "<OAUTH2_PROVIDER_X>",
"clientId": "<string>",
"encryptedClientSecret": "<string>"
}
}'
{
"activity": {
"id": "<activity-id>",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_CREATE_OAUTH2_CREDENTIAL",
"organizationId": "<organization-id>",
"timestampMs": "<timestamp> (e.g. 1746736509954)",
"result": {
"activity": {
"id": "<string>",
"organizationId": "<string>",
"status": "<string>",
"type": "<string>",
"intent": {
"createOauth2CredentialIntent": {
"provider": "<OAUTH2_PROVIDER_X>",
"clientId": "<string>",
"encryptedClientSecret": "<string>"
}
},
"result": {
"createOauth2CredentialResult": {
"oauth2CredentialId": "<string>"
}
},
"votes": "<array>",
"fingerprint": "<string>",
"canApprove": "<boolean>",
"canReject": "<boolean>",
"createdAt": "<string>",
"updatedAt": "<string>"
}
}
}
}