Compatibility alias for pre-commit claim and revalidation
Deprecated
Deprecated alias of POST /v1/authority/grants/{grantId}/claims: the
same handler.
The same handler as /v1/execution/claim-token, with the same body and
responses. New adapters should use the explicit claim route and must
finalize the claim before claim_lease_expires_at.
Authorization
ApiKeyAuth An organization API key. Its scopes decide what it may call;
decision:shadow is the narrowest: SHADOW evaluations through
POST /v1/authority/grants or its alias
POST /v1/authority/enforce-and-bind only (DECISION_SHADOW_MODE_DENIED
in any other mode; DECISION_SHADOW_FIELD_DENIED for a body carrying
context.decionis_policy, evidence or escalation), with no
integration dispatch. A key whose only scope is decision:shadow
(an AgentSafe hosted gateway's) reaches exactly those two,
POST /v1/auth/credential-context, POST /v1/hosted-gateway/keys/confirm
and POST /v1/hosted-gateway/keys/revoke-self; every other route
answers 403 HOSTED_GATEWAY_KEY_PATH_DENIED.
decision:enforce is an enforced hosted gateway's key: evaluations
in SHADOW or ENFORCEMENT through POST /v1/authority/grants or its
alias (400 DECISION_ENFORCE_FIELD_DENIED for a body carrying
context.decionis_policy; it never holds policy:write), and the
grants and managed escalations they bind. A key whose scopes are
decision:enforce (with or without decision:shadow) reaches exactly
POST /v1/authority/enforce-and-bind, POST /v1/authority/grants,
GET /v1/authority/grants/{grant_id},
POST /v1/authority/grants/{grant_id}/claims,
POST /v1/authority/grants/{grant_id}/receipts,
POST /v1/authority/grants/{grant_id}/reconciliations,
POST /v1/execution/verify-token, POST /v1/execution/claim-token,
POST /v1/execution/consume-token, POST /v1/execution/finalize-token,
GET /v1/authority/escalations/{escalation_id},
DELETE /v1/authority/escalations/{escalation_id},
POST /v1/auth/credential-context, POST /v1/hosted-gateway/keys/confirm
and POST /v1/hosted-gateway/keys/revoke-self, each id a UUID; every
other route answers 403 HOSTED_GATEWAY_KEY_PATH_DENIED.
In: header
Request Body
application/json
1 <= length <= 20000^sha256:[0-9a-f]{64}$1 <= length <= 2001 <= length <= 200Pre-commit lease duration. This does not extend the signed execution grant lifetime.
5 <= value <= 30030Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/execution/consume-token" \ -H "Content-Type: application/json" \ -d '{ "execution_token": "string", "intent_hash": "string", "intent": { "protocol_version": "agent-safe.intent/1", "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0", "intent_id": "05704cef-194d-4987-b2cb-c2c20c9cd88a", "captured_at": "2019-08-24T14:15:22Z", "expires_at": "2019-08-24T14:15:22Z", "actor": { "id": "string", "type": "string" }, "action": { "type": "string", "resource": "string", "parameters": {} }, "context": {}, "downstream_target": { "system": "string", "operation": "string" } } }'{ "valid": true, "would_block": true, "verdict": "APPROVE", "reason_codes": [ "string" ], "claims": { "iss": "string", "sub": "string", "aud": "string", "org_id": "a40f5d1f-d889-42e9-94ea-b9b33585fc6b", "dossier_id": "string", "decision_id": "string", "chain_id": "string", "action": "string", "decision": "allow", "scope": "execute", "binding": { "intent_hash": "string", "execution_binding_digest": "string", "execution_payload_digest": "string", "execution_payload_canonicalization_profile": "string", "execution_nonce": "string", "execution_correlation_id": "string", "expected_effect_digest": "string", "expected_state_version": "string", "authority_protocol_version": "1.0" }, "jti": "string", "iat": 0, "nbf": 0, "exp": 0 }, "evidence": {}, "evidence_durably_queued": true, "decision_chain_evidence_recorded": true, "should_execute": true, "claim_token": "string", "claim_validated_at": "2019-08-24T14:15:22Z", "claim_lease_expires_at": "2019-08-24T14:15:22Z", "claim_attestation": "string"}Verify an execution grant without consuming it POST
Deprecated alias of `GET /v1/authority/grants/{grantId}`: the same handler, fed the token and the full intent from a body. Verifies the Ed25519 signature, issuer, audience, lifetime, action, actor, tenant, and exact intent hash. This endpoint does not authorize execution by itself because it does not atomically consume the grant.
Revalidate and atomically claim one execution-bound authorization POST
Deprecated alias of `POST /v1/authority/grants/{grantId}/claims`: the same handler. Required immediately before the downstream commit. Verifies the dossier signature and complete execution binding, resolves current policy, signal, and Presence state, then atomically claims the nonce and mutable concurrency scope. Execution is authorized only when `should_execute` is `true`, `claim_token` is non-null, and `claim_lease_expires_at` is still live at the downstream boundary. `valid` alone is diagnostic; in SHADOW it may describe hypothetical validity without execution authority. A live claim also returns `claim_attestation`: a compact EdDSA JWS, signed with the execution-grant key, that a downstream system of record can verify offline against `/.well-known/decionis-execution-grant-jwks.json`. It names the grant, the decision, the dossier, the binding the grant carried (intent hash, canonical payload digest and its profile, expected effect digest, nonce, correlation), a digest of the claim token, and an expiry equal to the claim lease. The executor forwards it with the downstream request; the provider checks that the request it received is the one the attestation describes. See `ClaimAttestationClaims`.

