Skip to content

Delete an approval policy override

The approval_policies.overrides.delete operation: DELETE /api/v1/approval_policy/overrides/{id} in the REST API and the approval_policies_overrides_delete tool in the MCP server.

DELETE/api/v1/approval_policy/overrides/{id}

Deletes one approval policy override (apol_…, from overrides in approval_policies.get). Calls at its entity, or by its agent or app, follow the organization's policy (and any other override that applies) again. Send the override's version to avoid deleting a change you haven't seen. The organization's own policy can't be deleted; change it with approval_policies.update. Returns the whole approval policy. Owners and admins only, with a sign-in in the last 15 minutes.

At a glance

  • REST: DELETE /api/v1/approval_policy/overrides/{id}
  • MCP tool: approval_policies_overrides_delete
  • Operation ID: approval_policies.overrides.delete
  • Scope: Organization
  • Permission: approvals:admin
  • Risk tier: security
  • Dry run: Supported (send Ownrecord-Dry-Run: true)
  • Idempotency: Idempotency-Key optional
  • Modes: Test and live
  • Authentication: API key with the approvals:admin scope
  • Fresh sign-in: In the console, a sign-in within the last 15 minutes
  • Since: M10

Request

Path parameters

FieldTypeDescription
idapol_… ID

Body

A JSON object (Content-Type: application/json):

FieldTypeRequiredDescription
versioninteger (at least 1)No

Response

200 OK with a JSON object:

FieldTypeDescription
object"approval_policy"
idapol_… ID or null
orgIdorg_… ID
tiersobject
tiers.writeone of allow, require_approval, deny
tiers.financialone of allow, require_approval, deny
tiers.complianceone of allow, require_approval, deny
tiers.securityone of allow, require_approval, deny
twoPersonForarray of string
amountLimitsarray of object
amountLimits[].operationIdstring
amountLimits[].perCallmoney
versioninteger (at least 0)
updatedAtdate-time or null
overridesarray of object
overrides[].idapol_… ID
overrides[].object"approval_policy_override"
overrides[].entityIdent_… ID or null
overrides[].agentIdagt_… ID or null
overrides[].clientIdocl_… ID or null
overrides[].tiersobject
overrides[].tiers.writeone of allow, require_approval, deny or null
overrides[].tiers.financialone of allow, require_approval, deny or null
overrides[].tiers.complianceone of allow, require_approval, deny or null
overrides[].tiers.securityone of allow, require_approval, deny or null
overrides[].twoPersonForarray of string
overrides[].amountLimitsarray of object
overrides[].amountLimits[].operationIdstring
overrides[].amountLimits[].perCallmoney
overrides[].versioninteger (at least 1)
overrides[].updatedAtdate-time
availableOperationsarray of object
availableOperations[].idstring
availableOperations[].summarystring
availableOperations[].riskTierone of write, financial, compliance, security
availableOperations[].scopeone of org, entity, brand
availableOperations[].amountsboolean

Examples

Remove an agent's override

HTTP
DELETE /api/v1/approval_policy/overrides/apol_01m4ttwd3veh9apbewxheq5xhb
Authorization: Bearer or_test_…
Content-Type: application/json

{
  "version": 1
}

Response (200):

JSON
{
  "object": "approval_policy",
  "id": "apol_01m4ttwd3veh9apbewxheq5xh9",
  "orgId": "org_01m4ttwd3veh9apbewxheq5xh3",
  "tiers": {
    "write": "allow",
    "financial": "allow",
    "compliance": "require_approval",
    "security": "require_approval"
  },
  "twoPersonFor": ["brands.update"],
  "amountLimits": [],
  "version": 2,
  "updatedAt": "2026-10-13T14:30:00.000Z",
  "overrides": [],
  "availableOperations": [
    {
      "id": "brands.update",
      "summary": "Update a brand",
      "riskTier": "write",
      "scope": "brand",
      "amounts": false
    },
    {
      "id": "members.remove",
      "summary": "Remove a member",
      "riskTier": "security",
      "scope": "org",
      "amounts": false
    }
  ]
}

Errors

CodeHTTP statusWhenWhat to do
resource_not_found404No override with this ID exists in the organization (the organization's own policy isn't one).Check the ID and that your credentials are scoped to the right organization, entity, brand and mode.
version_conflict409The override changed since you read it (version); read it again.Fetch the object again and retry the change.
fresh_auth_required403You last signed in more than 15 minutes ago.Sign in again, then repeat the action within 15 minutes.
permission_denied403Only owners and admins change the approval policy.Ask an organization owner or admin for a role or scope that allows this action.

It can also return these common errors: validation_failed, api_version_unsupported, invalid_json, unsupported_media_type, authentication_required, api_key_invalid, idempotency_key_reused, idempotency_in_progress, approval_required, approval_rejected, approval_expired, stale_approval, approval_policy_denied, rate_limited, internal_error.