---
title: "The version history of an expert's instructions, newest first"
method: GET
path: "/api/v1/experts/{id}/versions"
tags: ["Experts"]
---

# The version history of an expert's instructions, newest first

`GET /api/v1/experts/{id}/versions`

## Request

- Base URL: `https://api.roma.app`
- URL: `https://api.roma.app/api/v1/experts/{id}/versions`
- Auth: HTTP bearer

List the version history of one item or expert, newest first: one entry per write, each with who made it (user, ai or system, and the name it was signed with when there is one) and the cause (an edit in the app, an edit over this connection, a restore, Roma's own passes). Each entry is the body as it was BEFORE that write, so the entry naming an edit is the state that undoes it; restore_version puts one back. Use it to undo an edit, or to see how a body or an expert's instructions changed over time.

## Path parameters

- `id` string, required

## Response `200`

The tool's result.

- object
  - `id` string, required
  - `hint` string, required
  - `versions` object[], required
    - `id` string, required
    - `createdAt` string, required
    - `actor` string, required: Who made the write this entry precedes: user, ai or system.
    - `actorName` string, nullable: The name the write was signed with, when it was.
    - `cause` string, required: Why: userEdit (in the app), mcpEdit (over this connection), operatorEdit, restore, and Roma's own passes.
    - `sizeChars` number
    - `preview` string, nullable

## Other responses

- `400`: The request was understood and refused; the error says what to change.
- `401`: No usable bearer token.
- `404`: No such item for this account.
- `405`: The path exists but not with this method; Allow lists the ones that work.
- `429`: Over the rate limit; wait for Retry-After.

---

[API](https://skmtc.dev/roma/apis/roma-api.md) - [All operations](https://skmtc.dev/roma/apis/roma-api/llms.txt) - [OpenAPI document](https://skmtc.dev/roma/apis/roma-api/revisions/3dd91459b0fb?raw)
