curl --request DELETE \
--url https://api.platform.dakota.xyz/policies/{policy_id}/rules/{rule_id} \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--header 'x-idempotency-key: <x-idempotency-key>' \
--data '
{
"signatures": [
"LS0tLS1CRUdJ...0tLS0tCg=="
],
"intent": {
"type": "remove_policy_rule",
"policy_id": "pol_2N4YkKpKu7M3mKpGYmF8kcJ8oZT",
"rule_id": "rule_2N4YkKpKu7M3mKpGYmF8kcJ8oZT",
"idempotency_key": "idem_2N4YkKpKu7M3mKpGYmF8kcJ8oZT"
}
}
'const options = {
method: 'DELETE',
headers: {
'x-idempotency-key': '<x-idempotency-key>',
'x-api-key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
signatures: ['LS0tLS1CRUdJ...0tLS0tCg=='],
intent: {
type: 'remove_policy_rule',
policy_id: 'pol_2N4YkKpKu7M3mKpGYmF8kcJ8oZT',
rule_id: 'rule_2N4YkKpKu7M3mKpGYmF8kcJ8oZT',
idempotency_key: 'idem_2N4YkKpKu7M3mKpGYmF8kcJ8oZT'
}
})
};
fetch('https://api.platform.dakota.xyz/policies/{policy_id}/rules/{rule_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.platform.dakota.xyz/policies/{policy_id}/rules/{rule_id}"
payload = {
"signatures": ["LS0tLS1CRUdJ...0tLS0tCg=="],
"intent": {
"type": "remove_policy_rule",
"policy_id": "pol_2N4YkKpKu7M3mKpGYmF8kcJ8oZT",
"rule_id": "rule_2N4YkKpKu7M3mKpGYmF8kcJ8oZT",
"idempotency_key": "idem_2N4YkKpKu7M3mKpGYmF8kcJ8oZT"
}
}
headers = {
"x-idempotency-key": "<x-idempotency-key>",
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.delete(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.platform.dakota.xyz/policies/{policy_id}/rules/{rule_id}"
payload := strings.NewReader("{\n \"signatures\": [\n \"LS0tLS1CRUdJ...0tLS0tCg==\"\n ],\n \"intent\": {\n \"type\": \"remove_policy_rule\",\n \"policy_id\": \"pol_2N4YkKpKu7M3mKpGYmF8kcJ8oZT\",\n \"rule_id\": \"rule_2N4YkKpKu7M3mKpGYmF8kcJ8oZT\",\n \"idempotency_key\": \"idem_2N4YkKpKu7M3mKpGYmF8kcJ8oZT\"\n }\n}")
req, _ := http.NewRequest("DELETE", url, payload)
req.Header.Add("x-idempotency-key", "<x-idempotency-key>")
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"type": "https://docs.dakota.xyz/api-reference/errors#invalid-request",
"title": "Invalid request",
"status": 400,
"detail": "Invalid request",
"instance": "https://api.platform.dakota.xyz/policies/example-id/rules/example-id",
"request_id": "req_01hzy6y7v8w9x0y1z2a3b4c5d6"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#authentication-error",
"title": "Unauthorized",
"status": 401,
"detail": "Unauthorized",
"instance": "https://api.platform.dakota.xyz/policies/example-id/rules/example-id",
"request_id": "req_01hzy6y7v8w9x0y1z2a3b4c5d6"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#forbidden",
"title": "Forbidden",
"status": 403,
"detail": "Forbidden",
"instance": "https://api.platform.dakota.xyz/policies/example-id/rules/example-id",
"request_id": "req_01hzy6y7v8w9x0y1z2a3b4c5d6"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#not-found",
"title": "Policy or rule not found",
"status": 404,
"detail": "Policy or rule not found",
"instance": "https://api.platform.dakota.xyz/policies/example-id/rules/example-id",
"request_id": "req_01hzy6y7v8w9x0y1z2a3b4c5d6"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#not-implemented",
"title": "Not implemented",
"status": 501,
"detail": "Not implemented",
"instance": "https://api.platform.dakota.xyz/policies/example-id/rules/example-id",
"request_id": "req_01hzy6y7v8w9x0y1z2a3b4c5d6"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#internal-error",
"title": "Unexpected error",
"status": 500,
"detail": "Unexpected error",
"instance": "https://api.platform.dakota.xyz/policies/example-id/rules/example-id",
"request_id": "req_01hzy6y7v8w9x0y1z2a3b4c5d6"
}Remove a rule from a policy
Deletes a policy rule from the specified policy.
curl --request DELETE \
--url https://api.platform.dakota.xyz/policies/{policy_id}/rules/{rule_id} \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--header 'x-idempotency-key: <x-idempotency-key>' \
--data '
{
"signatures": [
"LS0tLS1CRUdJ...0tLS0tCg=="
],
"intent": {
"type": "remove_policy_rule",
"policy_id": "pol_2N4YkKpKu7M3mKpGYmF8kcJ8oZT",
"rule_id": "rule_2N4YkKpKu7M3mKpGYmF8kcJ8oZT",
"idempotency_key": "idem_2N4YkKpKu7M3mKpGYmF8kcJ8oZT"
}
}
'const options = {
method: 'DELETE',
headers: {
'x-idempotency-key': '<x-idempotency-key>',
'x-api-key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
signatures: ['LS0tLS1CRUdJ...0tLS0tCg=='],
intent: {
type: 'remove_policy_rule',
policy_id: 'pol_2N4YkKpKu7M3mKpGYmF8kcJ8oZT',
rule_id: 'rule_2N4YkKpKu7M3mKpGYmF8kcJ8oZT',
idempotency_key: 'idem_2N4YkKpKu7M3mKpGYmF8kcJ8oZT'
}
})
};
fetch('https://api.platform.dakota.xyz/policies/{policy_id}/rules/{rule_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.platform.dakota.xyz/policies/{policy_id}/rules/{rule_id}"
payload = {
"signatures": ["LS0tLS1CRUdJ...0tLS0tCg=="],
"intent": {
"type": "remove_policy_rule",
"policy_id": "pol_2N4YkKpKu7M3mKpGYmF8kcJ8oZT",
"rule_id": "rule_2N4YkKpKu7M3mKpGYmF8kcJ8oZT",
"idempotency_key": "idem_2N4YkKpKu7M3mKpGYmF8kcJ8oZT"
}
}
headers = {
"x-idempotency-key": "<x-idempotency-key>",
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.delete(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.platform.dakota.xyz/policies/{policy_id}/rules/{rule_id}"
payload := strings.NewReader("{\n \"signatures\": [\n \"LS0tLS1CRUdJ...0tLS0tCg==\"\n ],\n \"intent\": {\n \"type\": \"remove_policy_rule\",\n \"policy_id\": \"pol_2N4YkKpKu7M3mKpGYmF8kcJ8oZT\",\n \"rule_id\": \"rule_2N4YkKpKu7M3mKpGYmF8kcJ8oZT\",\n \"idempotency_key\": \"idem_2N4YkKpKu7M3mKpGYmF8kcJ8oZT\"\n }\n}")
req, _ := http.NewRequest("DELETE", url, payload)
req.Header.Add("x-idempotency-key", "<x-idempotency-key>")
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"type": "https://docs.dakota.xyz/api-reference/errors#invalid-request",
"title": "Invalid request",
"status": 400,
"detail": "Invalid request",
"instance": "https://api.platform.dakota.xyz/policies/example-id/rules/example-id",
"request_id": "req_01hzy6y7v8w9x0y1z2a3b4c5d6"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#authentication-error",
"title": "Unauthorized",
"status": 401,
"detail": "Unauthorized",
"instance": "https://api.platform.dakota.xyz/policies/example-id/rules/example-id",
"request_id": "req_01hzy6y7v8w9x0y1z2a3b4c5d6"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#forbidden",
"title": "Forbidden",
"status": 403,
"detail": "Forbidden",
"instance": "https://api.platform.dakota.xyz/policies/example-id/rules/example-id",
"request_id": "req_01hzy6y7v8w9x0y1z2a3b4c5d6"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#not-found",
"title": "Policy or rule not found",
"status": 404,
"detail": "Policy or rule not found",
"instance": "https://api.platform.dakota.xyz/policies/example-id/rules/example-id",
"request_id": "req_01hzy6y7v8w9x0y1z2a3b4c5d6"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#not-implemented",
"title": "Not implemented",
"status": 501,
"detail": "Not implemented",
"instance": "https://api.platform.dakota.xyz/policies/example-id/rules/example-id",
"request_id": "req_01hzy6y7v8w9x0y1z2a3b4c5d6"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#internal-error",
"title": "Unexpected error",
"status": 500,
"detail": "Unexpected error",
"instance": "https://api.platform.dakota.xyz/policies/example-id/rules/example-id",
"request_id": "req_01hzy6y7v8w9x0y1z2a3b4c5d6"
}Authorizations
Headers
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.
Path Parameters
Unique identifier of the policy
Unique identifier of the rule
Body
List of signatures over the intent
Cryptographic signature over the intent, base64-encoded. For an ES256 signer this is the ASN.1 DER ECDSA signature over the SHA-256 of the canonical intent. For a WEBAUTHN signer this is the base64 of the WebAuthn assertion JSON (id, rawId, type, and response.authenticatorData / clientDataJSON / signature). See the WebAuthn & Passkey Signing guide.
The intent being endorsed
- Option 1
- Option 2
- Option 3
- Option 4
- Option 5
- Option 6
- Option 7
- Option 8
- Option 9
Show child attributes
Show child attributes
Response
Policy rule deleted successfully
Was this page helpful?

