Publish a version
Freeze a draft so it can be deployed.
V4 is already the version’s identity, so a label is description rather than a name.
Publishing and deploying in one call
409 version_immutable;
updating the agent branches a fresh draft instead. Only label and
notes can still be changed.Authorizations
Your API key as a Bearer token, e.g. Authorization: Bearer vk_….
Path Parameters
The agent's id, as GET /v1/agents returns it.
A version number (0, 1, 3) or a version uuid — both resolve. Prefer the number: it is the version's identity to you, it is what every version read returns, and it needs no lookup first.
Body
Freeze a draft. make_live deploys it in the same call.
V<n> is already the version's identity, so label is description rather than
identification and forcing one only buys junk names.
Response
The frozen version. Publishing does NOT deploy unless you sent make_live: true.
One version in an agent's history.
Versions are identified by NUMBER: it is what every version read returns and what ?version= and /versions/{n} take.
This version's number — what you pass in /versions/{n}.
This version's uuid. Published because POST /v1/calls pins a call with agent_version_id, which takes a uuid rather than a number.
True once frozen. Configuration can never be edited again; label and notes still can.
True if this is the version answering calls right now.
This version's edit counter. Send it as If-Match to make a write conditional.
When this version was created (UTC, ISO 8601).
Short name for this version.
Longer free text about this version.
Which version this one was branched from, by NUMBER — null for the agent's first.
Why this version cannot be made live, if it cannot — e.g. it pins a retired model. Check it before offering a deploy button, so the button never fails on click.
The phone number this version will answer on once it is made live. Inert until then.
The WhatsApp number this version will answer on once it is made live. Inert until then.
When it was frozen. null while it is still a draft.