API Reference / Strategy - Initiative Link Proposals
Confirm a proposal — writes a verified MANUAL_OVERRIDE link
https://api.intelig.ai/api/v1/intelig/strategy/initiatives/link-proposals/{proposalId}/confirm
Auth: Authorization: ApiKey <key> (an API key sent as
Bearer is rejected) or Authorization: Bearer <jwt>
for a dashboard session. operationId: confirm
Accepts the proposal and writes the link as MANUAL_OVERRIDE, the authoritative match type: it outranks every inferred rung and later matcher runs will not clear or re-score it. This is what makes approval automatable rather than a click in the UI — find proposal ids with the by-commit, by-pull-request or by-initiative reads. The optional body carries a `reason` recorded on the override for the audit trail. Requires the `strategy:write` scope; a read-only key is rejected.
Example request
curl -X POST "https://api.intelig.ai/api/v1/intelig/strategy/initiatives/link-proposals/1/confirm" \
-H "Authorization: ApiKey $INTELIG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"reason": "Verified against the PR description; this commit implements INI-57 phase 2"
}' Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
proposalId | integer (int64) | yes | — |
Request body
application/json
| Field | Type | Required | Description |
|---|---|---|---|
reason | string | no | Why this proposal was accepted Example: Verified against the PR description; this commit implements INI-57 phase 2 |
Response 200
application/json · ApiResponseResult
| Field | Type | Description |
|---|---|---|
success | boolean | — |
message | string | — |
data | Result | — |
Status codes
200— Confirmed401— Not authenticated403— Insufficient permissions to access strategy pillar404— Proposal not found in this org429— —
Every response is wrapped in { success, message, data }. A 4xx means the request
is wrong — do not retry it unchanged. A 429 carries Retry-After in seconds.