---
title: "Flat per-concept restatement deltas with materiality filter (premium)"
method: GET
path: "/api/v1/entities/{entity_id}/restatements/diff"
tags: ["Entities"]
---

# Flat per-concept restatement deltas with materiality filter (premium)

`GET /api/v1/entities/{entity_id}/restatements/diff`

## Request

- Base URL: `https://api.hub-equity.com`
- URL: `https://api.hub-equity.com/api/v1/entities/{entity_id}/restatements/diff`
- Auth: HTTP bearer

Returns a flat sorted list of (concept × period) deltas, with optional filters. `source=amendments` (default): the 10-K/A filings of the entity. `source=comparatives`: the silent restatements, figures a later filing reprinted differently in its comparative columns with no amendment filed (`kind` is `modified`, or `added` for a newly disclosed figure, with `old_value` null).

- `fiscal_year` — restrict to one FY's amendment
- `hub_concept_code` — only deltas on this hub concept (e.g. `REVENUE`)
- `min_diff_pct` — drop deltas with `|new-old|/old < threshold` (0.01 = 1%, default). Set 0 to include all deltas including unchanged.
- `kind` — `added` (concept absent from base 10-K), `modified` (value changed), `unchanged` (re-asserted with same value).

Differs from `/amendments` which returns the per-amendment summary structure with companion changes ; this endpoint flattens across amendments so callers can answer 'all REVENUE restatements for X' or 'all FY24 deltas > 5%' in one round-trip.

## Path parameters

- `entity_id` string, required

## Query parameters

- `fiscal_year` integer, nullable: Restrict to one fiscal year's amendment. Omit for all.
- `hub_concept_code` string, nullable: Filter to a single hub concept (e.g. REVENUE).
- `min_diff_pct` number: Materiality threshold as a fraction (0.01 = 1%, default). 0 to include all deltas.
- `kind` string, nullable: Filter by change kind: 'added', 'modified', 'unchanged'.
- `source` string: 'amendments' (10-K/A, default) or 'comparatives' (silent restatements).

## Response `200`

Per-concept restatement deltas.

- ApiResponseAmendmentDiffResult
  - `success` boolean, required
  - `data` AmendmentDiffResult
    - `entity_id` string, required
    - `entity_name` string, required
    - `changes` ConceptChange[], required
      - `hub_concept_code` string, nullable
      - `label` string, nullable
      - `fiscal_year` integer, required
      - `fiscal_period` string, nullable
      - `period_end` string, nullable
      - `old_value` number, nullable
      - `new_value` number, nullable
      - `diff_abs` number, nullable
      - `diff_pct` number, nullable: In percent (21.5 = 21.5 %)
      - `kind` string, nullable: added | modified | unchanged
      - `base_filing` Source: Filing source for a fact (always attached so the LLM can cite). `anchor` says what kind of number this is: `tagged` (read off one tag of the issuer) or `derived` (computed by Hub-Equity from several tags, so no single place in the document holds it, by construction). `fact_url` opens the issuer's own document AT the tagged number (the iXBRL element id, resolved in the filing that SERVES the value, which is not always the filing of that fiscal year); it is served by `get_fact` and on the parent of `get_fact_decomposition`, and left empty by `get_metric_history`, whose points carry `anchor` only: one `get_fact` call gives the deep link of the point to cite.
        - `filing_id` string, required
        - `form_type` string, nullable
        - `filing_date` string, nullable
        - `period_end` string, nullable
        - `viewer_url` string, required: Hub-Equity deep link to the filing
        - `external_url` string, nullable: Original filing URL (e.g. SEC EDGAR viewer) when available
        - `anchor` 'tagged' | 'derived', nullable: tagged = the value is one tag of the issuer's document; derived = computed by Hub-Equity from several tags, no single anchor exists by construction
        - `fact_url` string, nullable: The issuer's document opened AT the tagged number (iXBRL viewer anchored on the fact id), served by get_fact and the decomposition parent when the id resolved in the serving filing; empty on history points: call get_fact for the year to cite
      - `amendment_filing` Source: Filing source for a fact (always attached so the LLM can cite). `anchor` says what kind of number this is: `tagged` (read off one tag of the issuer) or `derived` (computed by Hub-Equity from several tags, so no single place in the document holds it, by construction). `fact_url` opens the issuer's own document AT the tagged number (the iXBRL element id, resolved in the filing that SERVES the value, which is not always the filing of that fiscal year); it is served by `get_fact` and on the parent of `get_fact_decomposition`, and left empty by `get_metric_history`, whose points carry `anchor` only: one `get_fact` call gives the deep link of the point to cite.
        - `filing_id` string, required
        - `form_type` string, nullable
        - `filing_date` string, nullable
        - `period_end` string, nullable
        - `viewer_url` string, required: Hub-Equity deep link to the filing
        - `external_url` string, nullable: Original filing URL (e.g. SEC EDGAR viewer) when available
        - `anchor` 'tagged' | 'derived', nullable: tagged = the value is one tag of the issuer's document; derived = computed by Hub-Equity from several tags, no single anchor exists by construction
        - `fact_url` string, nullable: The issuer's document opened AT the tagged number (iXBRL viewer anchored on the fact id), served by get_fact and the decomposition parent when the id resolved in the serving filing; empty on history points: call get_fact for the year to cite
    - `total_count` integer, required
    - `applied_filters` object
    - `notes` string[]
  - `error` ApiError: API error details.
    - `code` string, required
    - `message` string, required
    - `details` object, nullable
  - `meta` ApiMeta: API response metadata. Pagination fields (``page`` / ``per_page`` / ``total``) are populated on collection endpoints only. They are omitted from the payload on single-resource endpoints.
    - `timestamp` string, date-time
    - `request_id` string, nullable
    - `page` integer, nullable
    - `per_page` integer, nullable
    - `total` integer, nullable
  - `links` ApiLinks: HATEOAS-style pagination cursors. Host-relative path + query links for a collection page. Present on collection endpoints, ``null`` fields where a page doesn't exist (``next`` on the last page, ``prev`` on the first). The whole ``links`` object is omitted from single-resource responses (see ``ApiResponse`` serializer).
    - `self` string, nullable
    - `first` string, nullable
    - `prev` string, nullable
    - `next` string, nullable
    - `last` string, nullable

## Other responses

- `404`: Entity not found.
- `422`: Validation Error

---

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