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 Policy
Create a new Policy
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/create_policy \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: <YOUR_API_KEY.YOUR_API_SECRET>" \
--data '{
"type": "ACTIVITY_TYPE_CREATE_POLICY_V3",
"timestampMs": "<string> (e.g., 1745474677465)",
"organizationId": "<string> (Your Organization ID)",
"parameters": {
"policyName": "<string>",
"effect": "<EFFECT_ALLOW>",
"condition": "<string>",
"consensus": "<string>",
"notes": "<string>"
}
}'
{
"activity": {
"id": "<activity-id>",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_CREATE_POLICY_V3",
"organizationId": "<organization-id>",
"timestampMs": "<timestamp> (e.g., 1745474677465)",
"result": {
"activity": {
"type": "<string>",
"intent": {
"createPolicyIntent": {
"policyName": "<string>",
"selectors": [
{
"subject": "<string>",
"operator": "<OPERATOR_EQUAL>",
"target": "<string>"
}
],
"effect": "<EFFECT_ALLOW>",
"notes": "<string>"
}
},
"result": {
"createPolicyResult": {
"policyId": "<string>"
}
}
}
}
}
}
Authorizations
Body
Enum options: ACTIVITY_TYPE_CREATE_POLICY_V3
Timestamp (in milliseconds) of the request, used to verify liveness of user requests.
Unique identifier for a given Organization.
parameters field
Response
A successful response returns the following fields:
The activity object containing type, intent, and result
The intent of the activity
The createPolicyIntent object
A list of simple functions each including a subject, target and boolean. See Policy Engine Language section for additional details.
operator field
Enum options: OPERATOR_EQUAL
, OPERATOR_MORE_THAN
, OPERATOR_MORE_THAN_OR_EQUAL
, OPERATOR_LESS_THAN
, OPERATOR_LESS_THAN_OR_EQUAL
, OPERATOR_CONTAINS
, OPERATOR_NOT_EQUAL
, OPERATOR_IN
, OPERATOR_NOT_IN
, OPERATOR_CONTAINS_ONE
, OPERATOR_CONTAINS_ALL
effect field
Enum options: EFFECT_ALLOW
, EFFECT_DENY
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/create_policy \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: <YOUR_API_KEY.YOUR_API_SECRET>" \
--data '{
"type": "ACTIVITY_TYPE_CREATE_POLICY_V3",
"timestampMs": "<string> (e.g., 1745474677465)",
"organizationId": "<string> (Your Organization ID)",
"parameters": {
"policyName": "<string>",
"effect": "<EFFECT_ALLOW>",
"condition": "<string>",
"consensus": "<string>",
"notes": "<string>"
}
}'
{
"activity": {
"id": "<activity-id>",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_CREATE_POLICY_V3",
"organizationId": "<organization-id>",
"timestampMs": "<timestamp> (e.g., 1745474677465)",
"result": {
"activity": {
"type": "<string>",
"intent": {
"createPolicyIntent": {
"policyName": "<string>",
"selectors": [
{
"subject": "<string>",
"operator": "<OPERATOR_EQUAL>",
"target": "<string>"
}
],
"effect": "<EFFECT_ALLOW>",
"notes": "<string>"
}
},
"result": {
"createPolicyResult": {
"policyId": "<string>"
}
}
}
}
}
}
Was this page helpful?
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/create_policy \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: <YOUR_API_KEY.YOUR_API_SECRET>" \
--data '{
"type": "ACTIVITY_TYPE_CREATE_POLICY_V3",
"timestampMs": "<string> (e.g., 1745474677465)",
"organizationId": "<string> (Your Organization ID)",
"parameters": {
"policyName": "<string>",
"effect": "<EFFECT_ALLOW>",
"condition": "<string>",
"consensus": "<string>",
"notes": "<string>"
}
}'
{
"activity": {
"id": "<activity-id>",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_CREATE_POLICY_V3",
"organizationId": "<organization-id>",
"timestampMs": "<timestamp> (e.g., 1745474677465)",
"result": {
"activity": {
"type": "<string>",
"intent": {
"createPolicyIntent": {
"policyName": "<string>",
"selectors": [
{
"subject": "<string>",
"operator": "<OPERATOR_EQUAL>",
"target": "<string>"
}
],
"effect": "<EFFECT_ALLOW>",
"notes": "<string>"
}
},
"result": {
"createPolicyResult": {
"policyId": "<string>"
}
}
}
}
}
}