Reference
Get a version
A saved version: its full configuration and what changed since then.
| REST | GET /api/v1/agents/{agent_id}/versions/{version} |
| MCP tool | get_version |
| Classification | Read (changes nothing) |
| Scope | agents:read |
| Minimum role on the agent | editor |
| Confirmation | Not needed |
| Retry safety | Safe to retry with the same input |
| Success status | 200 |
What it does
A saved version: its full configuration and what changed since then.
Side effects
None. It only reads.
Inputs
| Name | Type | Required | In | Description |
|---|---|---|---|---|
agent_id | string | yes | path | The agent id (agt_...), from list_agents. |
version | integer | yes | path |
Example
curl "https://covo.lanaai.io/api/v1/agents/agt_4edc89bb2964/versions/3" \
-H "Authorization: Bearer $COVO_TOKEN"{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_version",
"arguments": {
"agent_id": "agt_4edc89bb2964",
"version": 3
}
}
}Response
Returns an object with number, label, revision, created_by, client, created_at, configuration and changes_since. This is a real response, shortened to two items per list.
{
"number": 3,
"label": "Before launch",
"revision": 7,
"created_by": "avery@example.test",
"client": {
"name": "docs-examples",
"interface": "rest"
},
"created_at": "2026-10-07T20:14:41.903Z",
"configuration": {
"links": [
{
"id": "5b81ea7d-47bd-498f-83c7-562142f3ce7c",
"url": "https://cal.example/avery",
"icon": "",
"tags": [],
"title": "Book a discovery call",
"enabled": true,
"category": "booking",
"keywords": [],
"priority": 0,
"image_url": null,
"expires_at": null,
"visibility": "public",
"description": ""
}
],
"offers": [],
"places": [
{
"id": "56a01a61-e1a5-4bdf-b1d7-533d280b81e9",
"key": "pl_a82927d351",
"kind": "profile",
"name": "Main link",
"channel": "",
"context": "",
"enabled": true,
"greeting": "",
"embed_mode": "floating",
"is_default": true,
"allowed_origins": [],
"suggested_prompts": []
}
],
"identity": {
"headline": "Founder, Northwind Labs. Private AI for small firms.",
"location": "",
"long_bio": "",
"expertise": [],
"interests": [],
"short_bio": "Avery builds private AI systems for small professional firms.",
"avatar_url": null,
"occupation": "",
"represents": "individual",
"display_name": "Avery Quinn",
"contact_email": null,
"contact_preferences": ""
},
"knowledge": [
{
"id": "ae45522f-f757-4870-9053-4f4c7f43940e",
"tags": [],
"title": "Northwind Labs",
"is_faq": false,
"content": "Northwind Labs builds private AI systems for small law firms. Engagements run six to ten weeks.",
"category": "company",
"priority": 0,
"question": null,
"visibility": "public",
"knowledge_base_id": null
}
],
"personality": {
"tone": "Warm, direct and practical.",
"greeting": "Hi, I am Avery’s Concierge. Ask me about spring projects.",
"agent_name": "",
"boundaries": "",
"instructions": "",
"assistant_label": "AI Concierge",
"fallback_behavior": "offer_contact",
"lead_capture_mode": "balanced",
"prohibited_topics": [],
"suggested_prompts": []
}
},
"changes_since": []
}Over MCP the same object comes back as the tool result, in structuredContent and as JSON text.
Errors
| Status | Code | Meaning |
|---|---|---|
| 401 | unauthorized | No token, or it is unknown, revoked or expired. OAuth apps refresh or reconnect. |
| 403 | account_suspended | The account that owns the token is paused. |
| 403 | insufficient_scope | The token lacks agents:read. |
| 404 | agent_not_found | Unknown agent, or not reachable with this token. |
| 400 | bad_request | An input is invalid; field names it. |
| 429 | rate_limited | Wait Retry-After seconds. |