POST
/
public
/
v1
/
submit
/
create_api_keys
Authorizations
Body
enum<string>
required
Enum options:
ACTIVITY_TYPE_CREATE_API_KEYS_V2string
required
Timestamp (in milliseconds) of the request, used to verify liveness of user requests.
string
required
Unique identifier for a given Organization.
object
required
The parameters object containing the specific intent data for this activity.
Show details
Show details
array
required
A list of API Keys.
Show item details
Show item details
The public component of a cryptographic key pair used to sign messages and transactions.
Enum options:
API_KEY_CURVE_P256, API_KEY_CURVE_SECP256K1, API_KEY_CURVE_ED25519boolean
Enable to have your activity generate and return App Proofs, enabling verifiability.
Response
A successful response returns the following fields:object
required
The activity object containing type, intent, and result
Show activity details
Show activity details
The intent of the activity
Show intent details
Show intent details
The createApiKeysIntentV2 object
Show createApiKeysIntentV2 details
Show createApiKeysIntentV2 details
A list of API Keys.
Show apiKeys details
Show apiKeys details
Human-readable name for an API Key.
The public component of a cryptographic key pair used to sign messages and transactions.
curveType fieldEnum options:
API_KEY_CURVE_P256, API_KEY_CURVE_SECP256K1, API_KEY_CURVE_ED25519The result of the activity
Show result details
Show result details
A list of objects representing a particular User’s approval or rejection of a Consensus request, including all relevant metadata.
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/create_api_keys \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: <string> (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_CREATE_API_KEYS_V2",
"timestampMs": "<string> (e.g. 1746736509954)",
"organizationId": "<string> (Your Organization ID)",
"parameters": {
"apiKeys": [
{
"apiKeyName": "<string>",
"publicKey": "<string>",
"curveType": "<API_KEY_CURVE_P256>",
"expirationSeconds": "<string>"
}
],
"userId": "<string>"
}
}'
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().createApiKeys({
apiKeys: [{ // A list of API Keys.,
apiKeyName: "<string> (Human-readable name for an API Key.)",
publicKey: "<string> (The public component of a cryptographic key pair used to sign messages and transactions.)",
curveType: "<API_KEY_CURVE_P256>" // curveType field,
expirationSeconds: "<string> (Optional window (in seconds) indicating how long the API Key should last.)",
}],
userId: "<string> (Unique identifier for a given User.)"
});
{
"activity": {
"id": "<activity-id>",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_CREATE_API_KEYS_V2",
"organizationId": "<organization-id>",
"timestampMs": "<timestamp> (e.g. 1746736509954)",
"result": {
"activity": {
"id": "<string>",
"organizationId": "<string>",
"status": "<string>",
"type": "<string>",
"intent": {
"createApiKeysIntentV2": {
"apiKeys": [
{
"apiKeyName": "<string>",
"publicKey": "<string>",
"curveType": "<API_KEY_CURVE_P256>",
"expirationSeconds": "<string>"
}
],
"userId": "<string>"
}
},
"result": {
"createApiKeysResult": {
"apiKeyIds": [
"<string>"
]
}
},
"votes": "<array>",
"fingerprint": "<string>",
"canApprove": "<boolean>",
"canReject": "<boolean>",
"createdAt": "<string>",
"updatedAt": "<string>"
}
}
}
}