---
title: "Revision history: for each period the store has seen revised, every value it ever held and when it stored it. The rows an asOf read is reconstructed from."
method: GET
path: "/v1/sources/{source}/series/{seriesId}/revisions"
---

# Revision history: for each period the store has seen revised, every value it ever held and when it stored it. The rows an asOf read is reconstructed from.

`GET /v1/sources/{source}/series/{seriesId}/revisions`

## Request

- Base URL: `https://starwell.dev/api/starwell`
- URL: `https://starwell.dev/api/starwell/v1/sources/{source}/series/{seriesId}/revisions`
- Auth: one of:
  - HTTP bearer
  - none

## Path parameters

- `source` string, required
- `seriesId` string, required

## Query parameters

- `period` string, date
- `start` string, date
- `end` string, date
- `limit` integer
- `offset` integer

## Response `200`

OK

- object
  - `success` true, required
  - `data` object[], required
    - `period` string, date
    - `revisions` object[]: Oldest first.
      - `revision` integer
      - `value` number, nullable
      - `status` string
      - `decimals` integer, nullable
      - `current` boolean: True on the row /observations serves today.
      - `provenance` Provenance: Where this exact value came from — stored append-only, never inferred.
        - `sourceUrl` string, required: The exact source API request or table URL.
        - `retrievedAt` string, date-time, required
        - `connectorVersion` string, required
        - `releaseTime` string, date-time, nullable
        - `storedAt` string, date-time: asOf reads and /revisions only: when Starwell's store inserted this row (database-assigned, immutable) — the clock a point-in-time read keys on.
  - `meta` object
    - `series` object
    - `verification` Verification
      - `status` 'passing' | 'stale' | 'failing' | 'unverified', required: passing: golden-value + freshness checks pass against the live source. stale: newer official data exists (or the source has not been re-checked within its cadence window). failing: a golden check disagrees with the source — do not rely on it. unverified: not yet through the harness.
      - `lastVerifiedAt` string, date-time, nullable
    - `license` License
      - `code` 'public-domain' | 'statcan-open' | 'cc-by-4.0' | 'open-government' | 'third-party-restricted' | 'unknown'
      - `url` string, nullable
      - `attribution` string, nullable: The exact attribution line to print alongside the data.
      - `redistributable` boolean
      - `trainingEligible` boolean
    - `citation` Citation
      - `source` string
      - `authority` string, nullable
      - `dataset` string
      - `datasetExternalId` string
      - `url` string, nullable: Human-facing official table page.
      - `termsUrl` string, nullable
      - `text` string: Ready-to-print citation line.
    - `returned` integer: Periods in THIS response.
    - `offset` integer
    - `hasMore` boolean: True when rows exist past this page — fetch them with offset = offset + the number of rows returned here.
    - `firstIngestAt` string, date-time, nullable: When the store first held this series; history begins here.
    - `note` string: The claim boundary, in words.

## Other responses

- `400`: Invalid parameters.
- `404`: Unknown source, dataset, or series.
- `451`: The series exists but its license does not permit redistribution; no values are served.

---

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