---
title: "Set or remove reporting profile answers"
method: PATCH
path: "/reporting-profile/{year}"
tags: ["Reports"]
---

# Set or remove reporting profile answers

`PATCH /reporting-profile/{year}`

Each answer is checked against its datapoint's declared type in any template. Status "missing" removes an answer. Idempotent. A workspace that is not a reporting entity gets 409 WORKSPACE_SCOPE_UNSUPPORTED: its answers are kept in the Default workspace. Needs report.create.

## Request body

- ReportingProfilePatchRequest
  - `answers` object, required

## Response `200`

The profile after the change

- ReportingProfileResponse
  - `data` ReportingProfile, required
    - `answers` object, required
    - `override` boolean, required — True when writes go to this workspace's own override row.
    - `suggestionOrigins` object, required — Where each suggestion came from, keyed like suggestions.
    - `suggestions` object, required
    - `writable` boolean, required — False in a workspace that is not a reporting entity: it reads the Default workspace's answers.
    - `year` integer, required

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `409` — Conflict

## Changes

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

[Change history](https://skmtc.dev/greentally/apis/esgai-api/changes/reporting-profile/:year/patch.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)
