Skip to main content
The /v1/diff/{from}/{to} endpoint returns an item-level diff between any two version directories the server still retains. It first looks for a precomputed diff-from-{from}.json inside the to version directory; if there isn’t one, it computes the diff on demand. Use this endpoint when you need a diff that isn’t simply “the latest” — for example, replaying a sequence of patches against an older cache or comparing a specific historical pair.

Endpoint

GET https://astra.teamfortuna.xyz/v1/diff/{from}/{to}

Path parameters

from
string
required
Manifest ID of the older version. Must match ^[A-Za-z0-9._-]+$, be 1–128 characters, and must not start with a dot or equal current (those names are reserved for pipeline internals).
to
string
required
Manifest ID of the newer version. Same validation rules as from.

Request

The User-Agent header is required for all requests to the Astra API. Use the format AppName/Version (+URL).
curl https://astra.teamfortuna.xyz/v1/diff/VAL_12.06/VAL_12.07 \
  -H "User-Agent: MyApp/1.0 (+https://example.com)"

Response fields

status
number
HTTP status code of the response (e.g. 200).
data
object

Response

{
  "status": 200,
  "data": {
    "fromVersion": "VAL_12.06",
    "toVersion": "VAL_12.07",
    "generatedAt": "2026-04-22T14:25:22.602Z",
    "categories": {
      "agents": {
        "added": [],
        "removed": [],
        "changed": [
          {
            "uuid": "8e9aa2e9-0e34-4d59-b2b3-9a8a7b6c5d4e",
            "fields": ["abilities"]
          }
        ]
      }
    },
    "summary": {
      "totalAdded": 0,
      "totalRemoved": 0,
      "totalChanged": 1
    }
  }
}

Errors

400
status
Returned when either from or to is empty, longer than 128 characters, contains characters outside [A-Za-z0-9._-], equals ./.., starts with a dot, or equals current.
404
status
Returned when either version directory does not exist on disk. Older versions are pruned by retention.
500
status
Returned when a precomputed diff file exists but is unreadable or corrupt.
When the same diff is requested repeatedly, prefer the precomputed path: ask for the exact from/to pair the pipeline already wrote (each version dir has a single diff-from-{prev}.json). On-demand diffs are computed per request and are more expensive.