---
title: "Compare two versions of a capsule: title, summary, body lines and field values. `to` defaults to the newest version you can see. Needs a plan with revision history."
method: GET
path: "/api/preview/capsules/{id}/versions/compare"
tags: ["capsule"]
---

# Compare two versions of a capsule: title, summary, body lines and field values. \`to\` defaults to the newest version you can see. Needs a plan with revision history.

`GET /api/preview/capsules/{id}/versions/compare`

## Request

- Base URL: `https://symbol.chat` (the document declares no server; this is the origin it was published from)
- URL: `https://symbol.chat/api/preview/capsules/{id}/versions/compare`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `__Secure-next-auth.session-token`
  - OAuth 2
    - Authorization code: `https://mcp.symbol.chat/authorize`
    - Token URL: `https://mcp.symbol.chat/token`

## Path parameters

- `id` string, required: UUID v4 string

## Query parameters

- `from` string, required: The version number to compare from.
- `to` string: The version number to compare to; defaults to the newest.

## Response `200`

Successful response

- object
  - `capsule_id` string, required: UUID v4 string
  - `changes` object, required
    - `body` union, required: The authored body; null when neither version has one.
      - object
        - `additions` integer, required
        - `deletions` integer, required
        - `rows` union[], required
          - union
            - object
              - …
            - object
              - …
        - `status` 'diffed', required
      - object
        - `after_line_count` integer, required
        - `before_line_count` integer, required
        - `status` 'too_large', required: The texts differ too much to compare line by line; read each version in full instead.
    - `fields` object[], required
      - `after` string, required: The value after, as display text.
      - `before` string, required: The value before, as display text.
      - `change` 'added' | 'removed' | 'changed', required
      - `name` string, required
    - `meta` union, required
      - object
        - `changes` object[], required
          - `after` string, required: The value after, as display text.
          - `before` string, required: The value before, as display text.
          - `change` 'added' | 'removed' | 'changed', required
          - `group` 'prompt' | 'agent', required: Whether the entry is one of the prompt details or one of the agent settings.
          - `name` string, required: The entry's label, as the history view shows it.
        - `status` 'compared', required
      - object
        - `may_have_changed` boolean, required: True when exactly one side recorded them and it holds some, or nothing else changed: the revisions between may have changed only these, so `unchanged` is false.
        - `sides` string[], required
        - `status` 'not_captured', required: A version written before Symbol recorded prompt details and agent settings; they are unknown there, not changed.
    - `summary` object, nullable, required
      - `after` string, nullable, required
      - `before` string, nullable, required
    - `title` object, nullable, required
      - `after` string, required
      - `before` string, required
  - `from_version_num` integer, required
  - `to_version_num` integer, required
  - `unchanged` boolean, required

## Changes

- **2026-10-19** `5778844d1f9e`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/symbol/apis/symbol-api/changes/api/preview/capsules/:id/versions/compare/get.md)

---

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