API Reference · Control Plane

File a proposal

File a change for the owner's review. With `patch` (a full desired workload body, exactly what the equivalent update call would carry) the proposal becomes executable — approving applies it; without one it is informational. Agents in `suggest` mode don't need to call this directly: their gated update calls are converted automatically.

POST/v1/tenants/{name}/proposals

Authorization

x-api-keystringrequired
Your per-workspace API key, e.g. llc_AbC123…. Also accepted as Authorization: Bearer <key>. Mint keys on your workspace's API keys page — each key belongs to one workspace.

Path parameters

namestringrequired
Workspace (tenant) name.

Body

workloadIdstringrequired
kindenumoptional
One of: incident · drift · cost · change.
titlestringrequired
summarystringoptional
patchobjectoptional
The full desired workload JSON (optional).
verifystringoptional
How to confirm the change worked.
taskIdstringoptional
The run that produced it.

Response

201The filed proposal.

idstring
workloadIdstring
kindenum
One of: incident · drift · cost · change.
openum
What approving executes \u2014 apply the patch, delete the resource, converge the machine, or just acknowledge.
titlestring
summarystring
patchobject
op=update: the full desired workload JSON.
diffstring
Pre-rendered diff / check output for review.
verifystring
statusenum
One of: pending · approved · rejected.
createdBystring
taskIdstring
createdAtstring · date-time
resolvedAtstring · date-time
notestring
Resolution note.
curl -X POST https://api.live-llm.com/v1/tenants/acme/proposals \
  -H "x-api-key: $LIVELLM_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "workloadId": "…",
    "title": "…"
  }'
Try itPOSThttps://api.live-llm.com/v1/tenants/{name}/proposals
Fill required path param: name.
Example response201
{
  "id": "prop_8f31ab",
  "workloadId": "vm-1",
  "kind": "drift",
  "op": "converge",
  "title": "vm-1 drifted from its machine state",
  "summary": "3 change(s) pending. Approving re-applies the blueprint.",
  "status": "pending",
  "createdAt": "2026-08-13T09:00:00Z"
}