Skip to main content
POST
/
policies
Create a new policy
curl --request POST \
  --url https://api.platform.dakota.xyz/policies \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --header 'x-idempotency-key: <x-idempotency-key>' \
  --data '
{
  "name": "High Value Transaction Policy",
  "description": "Requires approval for transactions above $10,000",
  "signer_group_id": "grp_2N4YkKpKu7M3mKpGYmF8kcJ8oZT",
  "rules": [
    {
      "rule_type": "amount_threshold",
      "action": "deny",
      "definition": {
        "amount": "10000",
        "currency": "USD"
      }
    }
  ]
}
'
{
  "id": "pol_2N4YkKpKu7M3mKpGYmF8kcJ8oZT",
  "version": 1,
  "name": "High Value Transaction Policy",
  "created_at": 1640995200,
  "updated_at": 1640995200,
  "client_id": "1NFHrqBHb3cTfLVkFSGmHZqdDPi",
  "description": "Requires approval for transactions above $10,000",
  "rules": [
    {
      "id": "rule_2N4YkKpKu7M3mKpGYmF8kcJ8oZT",
      "policy_id": "pol_2N4YkKpKu7M3mKpGYmF8kcJ8oZT",
      "rule_type": "amount_threshold",
      "action": "deny",
      "definition": {
        "amount": "10000",
        "currency": "USD"
      },
      "created_at": 1640995200
    }
  ]
}

Authorizations

x-api-key
string
header
required

Headers

x-idempotency-key
string<uuid>
required

Unique key to ensure request idempotency. If the same key is used within a certain time window, the original response will be returned instead of executing the request again.

Body

application/json
name
string
required

Human-readable name for the policy

Example:

"High Value Transaction Policy"

description
string | null

Optional description of the policy's purpose

Example:

"Requires approval for transactions above $10,000"

signer_group_id
string | null

ID of the signer group to associate with this policy

Example:

"grp_2N4YkKpKu7M3mKpGYmF8kcJ8oZT"

rules
object[]

Initial rules for this policy

Response

Policy created successfully

id
string
required

Unique identifier for the policy

Example:

"pol_2N4YkKpKu7M3mKpGYmF8kcJ8oZT"

version
integer<int32>
required

Version number of the policy (incremented on rule changes)

Example:

1

name
string
required

Human-readable name for the policy

Example:

"High Value Transaction Policy"

created_at
integer
required

Unix timestamp when the policy was created

Example:

1640995200

updated_at
integer
required

Unix timestamp when the policy was last updated

Example:

1640995200

client_id
string

KSUID is a 27-character globally unique ID that combines a timestamp with a random component. Used for all entity identifiers in the Dakota platform.

Required string length: 27
Example:

"1NFHrqBHb3cTfLVkFSGmHZqdDPi"

description
string | null

Optional description of the policy's purpose

Example:

"Requires approval for transactions above $10,000"

rules
object[]

Rules that make up this policy