---
title: "Compare the record before a fix with the record after it (licence or owner): findings cleared and new by fingerprint, rows now passing and now failing, every machine file whose bytes changed, a verdict (improved / unchanged / mixed / regressed), each regression pinned to the changed file it reads, and the rollback step for that file (restore the stored bytes, or remove a file that did not exist before)"
method: GET
path: "/api/rollback"
---

# Compare the record before a fix with the record after it (licence or owner): findings cleared and new by fingerprint, rows now passing and now failing, every machine file whose bytes changed, a verdict (improved / unchanged / mixed / regressed), each regression pinned to the changed file it reads, and the rollback step for that file (restore the stored bytes, or remove a file that did not exist before)

`GET /api/rollback`

## Request

- Base URL: `https://crawlcheck.io`
- URL: `https://crawlcheck.io/api/rollback`
- Auth: none required

## Query parameters

- `from` string
- `to` string
- `domain` string

## Response `200`

verification

- object, nullable
  - `ok` boolean, nullable
  - `kind` string, nullable
  - `domain` string, nullable
  - `before` object, nullable
    - `id` string, nullable
    - `at` string, nullable
    - `grade` string, nullable
    - `score` number, nullable
    - `score_version` number, nullable
    - `refused` boolean, nullable
  - `after` object, nullable
    - `id` string, nullable
    - `at` string, nullable
    - `grade` string, nullable
    - `score` number, nullable
    - `score_version` number, nullable
    - `refused` boolean, nullable
  - `comparable` boolean, nullable
  - `verdict` string, nullable
  - `findings` object, nullable
    - `cleared` object[], nullable
      - `code` string, nullable
      - `path` string, nullable
      - `severity` number, nullable
      - `title` string, nullable
    - `new` object[], nullable
      - `code` string, nullable
      - `path` string, nullable
      - `severity` number, nullable
      - `title` string, nullable
    - `kept` object[], nullable
      - `code` string, nullable
      - `path` string, nullable
      - `severity` number, nullable
      - `title` string, nullable
  - `rows` object, nullable
    - `now_passing` unknown[], nullable
      - unknown
    - `now_failing` unknown[], nullable
      - unknown
  - `files` object[], nullable
    - `path` string, nullable
    - `state` string, nullable
    - `before` object, nullable
      - `status` number, nullable
      - `sha256` string, nullable
      - `bytes` number, nullable
      - `real_file` boolean, nullable
      - `stored` boolean, nullable
    - `after` object, nullable
      - `status` number, nullable
      - `sha256` string, nullable
      - `bytes` number, nullable
      - `real_file` boolean, nullable
  - `regressions` object[], nullable
    - `kind` string, nullable
    - `code` string, nullable
    - `path` string, nullable
    - `severity` number, nullable
    - `caused_by_files` string[], nullable
    - `reads_settings` unknown[], nullable
      - unknown
  - `rollback` object, nullable
    - `needed` boolean, nullable
    - `steps` object[], nullable
      - `kind` string, nullable
      - `path` string, nullable
      - `regressions` string[], nullable
      - `would_also_undo` unknown[], nullable
        - unknown
      - `what` string, nullable
      - `before_sha256` string, nullable
      - `bytes` number, nullable
      - `content_type` string, nullable
      - `file` string, nullable
    - `note` string, nullable
  - `summary` string, nullable

## Other responses

- `400`: no pair of records named
- `403`: needs a licence or the owner's session
- `422`: the two records cannot be compared (different domains, or the order is reversed)

---

[API](https://skmtc.dev/crawlcheck/apis/crawlcheck-api.md) · [All operations](https://skmtc.dev/crawlcheck/apis/crawlcheck-api/llms.txt) · [OpenAPI document](https://skmtc.dev/crawlcheck/apis/crawlcheck-api/revisions/57acbd6d4489?raw)
