---
title: "What a report needs, and what is ready, for a framework and period"
method: GET
path: "/reports/readiness"
tags: ["Reports"]
---

# What a report needs, and what is ready, for a framework and period

`GET /reports/readiness`

Resolves the report template exactly as generation will, without writing any prose, in the selected workspace (its period clamps the requested one). Returns every datapoint with its status, source, plain question and requirement, and the required counts. 404 when REPORTS_V2_ENABLED is off.

## Query parameters

- `framework` 'ghg' | 'vsme' | 'management', required
- `module` 'basic' | 'basic_and_comprehensive'
- `start` string, date, required
- `end` string, date, required

## Response `200`

Readiness

- ReportReadinessResponse
  - `data` ReportReadiness, required
    - `items` ReportReadinessItem[], required
      - `answerable` boolean, required
      - `applicable` boolean, required
      - `choices` object[]
        - `label` string, required
        - `value` string, required
      - `citation` string
      - `columns` object[]
      - `display` string, required
      - `help` string
      - `id` string, required
      - `label` string, required
      - `origin` object
      - `question` string
      - `reason` string
      - `requirement` 'required' | 'if_applicable' | 'optional', required
      - `source` 'ledger' | 'profile' | 'derived' | 'user', required
      - `status` 'reported' | 'not_applicable' | 'omitted_sensitive' | 'not_estimated' | 'missing', required
      - `suggestion` ReportingProfileAnswer
        - `answeredAt` string, date-time, required
        - `answeredBy` string, required
        - `reason` string
        - `source` 'user' | 'tally', required
        - `status` 'reported' | 'not_applicable' | 'omitted_sensitive' | 'not_estimated', required
        - `unit` string
        - `value` unknown
      - `suggestionOrigin` 'override_last_year' | 'default_last_year' — Where suggestion came from (last year's override row or last year's Default workspace row). Set only with suggestion.
      - `type` 'number' | 'integer' | 'money_eur' | 'percent' | 'tonnes' | 'text' | 'bool' | 'enum' | 'year' | 'date' | 'list' | 'table', required
      - `unit` string
    - `name` string, required
    - `options` object, required
    - `period` object, required — The period the figures cover, after any workspace clamp.
    - `periodLabel` string, required
    - `profileWritable` boolean, required
    - `profileYear` integer, required
    - `requiredReady` integer, required
    - `requiredTotal` integer, required
    - `templateId` 'ghg' | 'vsme' | 'management', required
    - `templateVersion` integer, required

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `503` — The emissions data could not be read (LEDGER_UNAVAILABLE) or the read timed out (QUERY_TIMEOUT)

## Changes

- **2026-10-04** `77d466d0e73d` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/greentally/apis/esgai-api/changes/reports/readiness/get.md)

---

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