Agents
Versions
Every change to an agent is saved as a version, with who made it and what changed field by field, so you can see an agent's history and restore an earlier configuration.
When a version is saved
| Action | action | Notes |
|---|---|---|
POST /api/v1/agents | create | Version 1. |
PUT /api/v1/agents/{id} | update | Only if something changed. A save with no changes does not create a version. |
POST /api/v1/agents/{id}/duplicate | duplicate | Version 1 of the new agent. |
POST /api/v1/agents/{id}/versions/{version}/restore | restore | A new version with the old configuration. |
The agent’s version field is its current version number. The last 10 versions of each agent are kept; older ones are deleted. Deleting an agent deletes its versions.
Connecting a number from the Phone numbers page changes the agent’s
phone_numberand version number, but does not add an entry to the version list.
List versions
curl https://voxa.abhinavyadav.in/api/v1/agents/$AGENT_ID/versions -H "X-API-Key: $VOXA_API_KEY"
Newest first, without the full configuration:
[
{
"version": 4,
"at": "2026-10-01T16:05:12.004000+05:30",
"by_name": "Asha Rao",
"action": "restore",
"restored_from": 2,
"changes": {"llm.temperature": [0.8, 0.4], "call.max_duration_seconds": [900, 600]}
},
{
"version": 3,
"at": "2026-10-01T15:41:40.551000+05:30",
"by_name": "key:backend",
"action": "update",
"restored_from": null,
"changes": {"llm.temperature": [0.4, 0.8], "call.max_duration_seconds": [600, 900]}
}
]
| Field | Meaning |
|---|---|
version | The version number. |
at | When it was saved. |
by_name | Who saved it: a person’s name, or key:<key name> for an API key. |
action | create, update, duplicate or restore. |
restored_from | For restore, the version that was restored. Otherwise null. |
changes | Each changed field, by its dotted path, as [before, after]. Tool headers are masked. Empty for create and duplicate. |
Get one version
curl https://voxa.abhinavyadav.in/api/v1/agents/$AGENT_ID/versions/2 -H "X-API-Key: $VOXA_API_KEY"
The response has the same fields plus config: the agent’s full configuration at that version (every field from the agent object except the read-only ones).
Restore a version
curl -X POST https://voxa.abhinavyadav.in/api/v1/agents/$AGENT_ID/versions/2/restore -H "X-API-Key: $VOXA_API_KEY"
The agent’s configuration is replaced with version 2’s and saved as a new version with action: "restore". The response is the updated agent. Nothing is lost: the version you replaced stays in the list.
A restore is checked like any save: the providers must be available to your workspace, and the phone number must not belong to another workspace.
Errors
| Status | When |
|---|---|
404 version not found (only the last 10 are kept) | The version doesn’t exist or is older than the last 10. |
422 | The version uses a provider your workspace can no longer use. |