Create a policy
const url = 'https://api-staging.asqary.com/v1/policies';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"name":"example","description":"example","product":"example","rules":[{"code":"example","enabled":true,"weight":1,"config":{}}],"thresholds":{"medium":1,"high":1,"critical":1},"actions":{"low":"approve","medium":"approve","high":"approve","critical":"approve"},"activate":false}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api-staging.asqary.com/v1/policies \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "name": "example", "description": "example", "product": "example", "rules": [ { "code": "example", "enabled": true, "weight": 1, "config": {} } ], "thresholds": { "medium": 1, "high": 1, "critical": 1 }, "actions": { "low": "approve", "medium": "approve", "high": "approve", "critical": "approve" }, "activate": false }'Creates a draft v1, or activates it at once with activate. Requires policies:write.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Header Parameters
Section titled “Header Parameters”Makes retries safe. Reusing a key for a different request returns 409 idempotency_key_reused.
Your own request ID (1–128 of letters, digits and . _ : -), echoed back and stored.
Request Bodyrequired
Section titled “Request Bodyrequired”object
object
object
Lowest score for each level; below medium is low.
object
object
Responses
Section titled “Responses”Replayed (same Idempotency-Key and request)
object
Newest first. Present on single-policy responses.
object
object
object
object
object
object
The configuration as submitted.
object
SHA-256 of the resolved configuration.
Example
{ "status": "draft", "versions": [ { "status": "draft", "actions": { "low": "approve", "medium": "approve", "high": "approve", "critical": "approve" } } ]}Headers
Section titled “Headers”Present (true) when an earlier result was returned.
Created
object
Newest first. Present on single-policy responses.
object
object
object
object
object
object
The configuration as submitted.
object
SHA-256 of the resolved configuration.
Example
{ "status": "draft", "versions": [ { "status": "draft", "actions": { "low": "approve", "medium": "approve", "high": "approve", "critical": "approve" } } ]}Malformed request (invalid_request), including unknown fields.
object
Invalid_request, unauthorized, key_expired, key_revoked, forbidden, ip_not_allowed, quota_exceeded, not_found, method_not_allowed, conflict, policy_in_use, policy_active, policy_archived, idempotency_key_reused, validation_failed, rule_not_available, backtest_invalid_rows, backtest_too_large, rate_limited, internal_error
object
object
Example generated
{ "error_code": "example", "message": "example", "retryable": true, "request_id": "example", "details": {}}Missing, invalid, expired or revoked API key.
object
Invalid_request, unauthorized, key_expired, key_revoked, forbidden, ip_not_allowed, quota_exceeded, not_found, method_not_allowed, conflict, policy_in_use, policy_active, policy_archived, idempotency_key_reused, validation_failed, rule_not_available, backtest_invalid_rows, backtest_too_large, rate_limited, internal_error
object
object
Example generated
{ "error_code": "example", "message": "example", "retryable": true, "request_id": "example", "details": {}}Missing scope or role, IP not allowed, or monthly quota exceeded (quota_exceeded).
object
Invalid_request, unauthorized, key_expired, key_revoked, forbidden, ip_not_allowed, quota_exceeded, not_found, method_not_allowed, conflict, policy_in_use, policy_active, policy_archived, idempotency_key_reused, validation_failed, rule_not_available, backtest_invalid_rows, backtest_too_large, rate_limited, internal_error
object
object
Example generated
{ "error_code": "example", "message": "example", "retryable": true, "request_id": "example", "details": {}}Lifecycle conflict (e.g. policy_in_use, policy_active) or idempotency_key_reused.
object
Invalid_request, unauthorized, key_expired, key_revoked, forbidden, ip_not_allowed, quota_exceeded, not_found, method_not_allowed, conflict, policy_in_use, policy_active, policy_archived, idempotency_key_reused, validation_failed, rule_not_available, backtest_invalid_rows, backtest_too_large, rate_limited, internal_error
object
object
Example generated
{ "error_code": "example", "message": "example", "retryable": true, "request_id": "example", "details": {}}validation_failed (details: field errors), rule_not_available, or backtest_invalid_rows.
object
Invalid_request, unauthorized, key_expired, key_revoked, forbidden, ip_not_allowed, quota_exceeded, not_found, method_not_allowed, conflict, policy_in_use, policy_active, policy_archived, idempotency_key_reused, validation_failed, rule_not_available, backtest_invalid_rows, backtest_too_large, rate_limited, internal_error
object
object
Example generated
{ "error_code": "example", "message": "example", "retryable": true, "request_id": "example", "details": {}}