DESTRUCTIVE

restore_revision

Put an earlier version of an artefact back, which writes a new version that names the one restored and announces it.

Put an earlier version of a revisable artefact back onto the record. The version's captured columns, the status included, are written onto the artefact and a new version is written with the reason restore, pointing at the one put back; nothing earlier is rewritten, and the artefact's family announces it (epic.restored for an epic).

Destructive in the MCP sense: the record as it stands is replaced, so read the version with get_revision and confirm with the person you act for before calling. Needs activity:read and the artefact's own update ability (epic:update for an epic). A version identical to the current record is refused, since there is nothing to restore.

Arguments

revision_id*string

UUID of the version to put back; read it with get_revision first.

What it returns

{  "data": {    "id": "f9a0b1c2-d3e4-4f5a-8b6c-7d8e9f0a1b2c",    "project_id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13",    "revisable_type": "epic",    "revisable_id": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",    "version": 4,    "reason": "restore",    "actor_kind": "mcp",    "author_id": "c3d4e5f6-a7b8-4c9d-8e0f-1a2b3c4d5e6f",    "author_name": "Nimal Fernando",    "ai_feature": null,    "restored_from_id": "d6e7f8a9-b0c1-4d2e-9f3a-4b5c6d7e8f90",    "restored_from_version": 1,    "summary": "Restored version 1",    "changed_fields": ["priority", "due_on"],    "diff": {      "priority": { "from": "must", "to": "should" },      "due_on": { "from": "2027-03-31", "to": null }    },    "snapshot": {      "title": "Loyalty tiers",      "summary": null,      "goal": "Reward the top fifth of members so they keep buying from the client.",      "business_value": null,      "hypothesis": null,      "success_metrics": null,      "owner_id": null,      "priority": "should",      "status": "draft",      "starts_on": null,      "due_on": null,      "color": null    },    "created_at": "2026-11-06T10:00:00+00:00"  }}

How it fails

RESOURCE_NOT_FOUND

unknown revision_id, a version of an artefact outside the token's scope or the person's visibility, or any version read through a guest token.

TOKEN_MISSING_ABILITY

token lacks activity:read or the artefact's update ability, such as epic:update.

VALIDATION_FAILED

the version is identical to the current record.

FORBIDDEN

the token holder's role on the project does not carry the artefact's update permission.

How is this guide?

Last updated on