Skip to content

Search stays in your browser.

Open app

Record one immutable human Decision against an exact proposal action.

POST /api/v1/interactions/{interactionId}/decisions

Requires exact revisionId, actionId, proposal fingerprint, current strong If-Match, and Idempotency-Key. The first valid result is immutable; replay never retargets a later revision. A Decision is intent, not Fulfillment or execution evidence.

Use a credential with the authentication scheme documented in the API contract.

Provider access, workspace membership, and agent grants are enforced separately. A token does not expand access to a repository or resource. Set up developer access.

Name Location Type Required Description
interactionId path string Yes Opaque Interaction id.
If-Match header string Yes
Idempotency-Key header string Yes

Required. Supported content types: application/json.

Field Type Required Description
revisionId string Yes
actionId string Yes
proposalFingerprint string Yes
outcome "approve" · "reject" · "abstain" · "conflict" · "acknowledge" · "choose" · "answer" · "comment" · "request_revision" · "snooze" Yes
consequence object or null No

Replace path placeholders and your credential. For body operations, create request.json using the required fields above; this command does not invent resource identifiers or consent.

Terminal window
curl --request POST \
'https://commentary.dev/api/v1/interactions/<interactionId>/decisions' \
--header 'Authorization: Bearer <your-token>' \
--header 'Content-Type: application/json' \
--data-binary @request.json
Status Meaning Payload
200 Successful response. object
201 Successful response. object
400 The request was invalid. ExternalError
401 Authentication is required. ExternalError
403 The token or session does not have permission for this resource. ExternalError
404 The resource was not found. ExternalError
409 Revision, action, fingerprint, revocation, or idempotency conflict. See response headers or body contract
410 Proposal expired or content was purged. See response headers or body contract
412 If-Match is stale or malformed. See response headers or body contract
428 If-Match is required. See response headers or body contract
429 The request was rate limited. ExternalError
Field Type Required Description
data InteractionDecisionResult No

Use the returned status and error body. Correct invalid fields before retrying; reconnect or narrow the target for authentication and permission errors. For conditional writes, reload the latest version before preparing a new request. Respect rate-limit headers and retry only when the operation’s idempotency contract permits it.

Operation ID: createInteractionDecision. Download the OpenAPI contract for complete constraints and code generation. Browse endpoints.