v1

latestOpenAPI 3.1.02026-07-13250151.3 KB
intents

Update intent content fields (title, objective, outcomes, constraints, etc.). Does NOT change status — use the /status endpoint.

Content-only update; status/shipped_at/verified_at are NOT touched here. Always sets updated_at. Requires at least one updatable field (otherwise 400). When edgeCases is provided, the prior intent state is snapshotted first so a failed edge-case sync can roll back. Response is re-fetched with INTENT_WITH_RELATIONS_SELECT so edgeCases/evidenceIds/relations are fully populated. No rate limiting on this PATCH.

patch/api/v1/intents/{id}

Path parameters

idstring required

id path parameter.

Query parameters

workspace_idstring

Required ONLY for cookie-session auth; identifies the target workspace. Ignored for API-key auth.

Request body

titlestring

Non-empty after trim if provided. Stored as user_goal.

objectivestring

Non-empty after trim if provided.

outcomesstring[]

Replaces both outcomes_v2 and the flat outcomes text list.

constraintsstring[]

Replaces constraints (coerced to trimmed non-empty strings).

healthMetricsstring[]

Replaces health_metrics (coerced to trimmed non-empty strings).

edgeCasesstring[]

Replace-all semantics via replaceIntentEdgeCasesRpc; on failure the intent is rolled back to its prior snapshot and 500 returned.

verificationobject

Replaces verification plan.

problemSeverity'low' | 'medium' | 'high' | 'critical'

Nullable severity enum.

evidenceAnchorsstring

Map of anchor key (e.g. 'objective', 'outcome:0', 'edgeCase:<uuid>') to evidence id arrays.

scopestring

Nullable scope object.

Response

OK — returns the full updated intent (re-fetched with relations)

object required