---
title: "Fetch the review payload (data schema + layout + records)."
method: GET
path: "/internal/api/scribe/review-bundle/{client_id}/{document_id}"
tags: ["scribe-review"]
---

# Fetch the review payload (data schema + layout + records).

`GET /internal/api/scribe/review-bundle/{client_id}/{document_id}`

## Request

- Base URL: `https://api.signalshq.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.signalshq.io/internal/api/scribe/review-bundle/{client_id}/{document_id}`
- Auth: OAuth 2
  - Password
  - Token URL: `/auth/login`

## Path parameters

- `client_id` string, uuid, required
- `document_id` string, uuid, required

## Response `200`

Successful Response

- ReviewBundleResponse: Wire payload of ``GET /scribe/review-bundle/...``. Pydantic's default ``extra="forbid"`` is intentionally relaxed here because the bundle's ``fields`` / ``layout`` / ``records`` shapes evolve faster than the response model can — the FE's ``wireBundleAdapter`` is the actual type-checker on the consumer side. This model serves OpenAPI doc generation, not runtime enforcement.
  - `doctype` string, required
  - `display_name` string, required
  - `schema_version` integer, required
  - `tax_year` integer, required
  - `fields` object[], required
  - `layout` object, required
  - `records` object[], required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/signalshq/apis/signals-api.md) - [All operations](https://skmtc.dev/signalshq/apis/signals-api/llms.txt) - [OpenAPI document](https://skmtc.dev/signalshq/apis/signals-api/revisions/2c22af3b5576?raw)
