---
title: "Record an attributable retention-request review decision"
method: PATCH
path: "/v1/operator/data-requests/{request_id}"
tags: ["Operator"]
---

# Record an attributable retention-request review decision

`PATCH /v1/operator/data-requests/{request_id}`

## Request

- Base URL: `https://api.supplyslate.com`
- URL: `https://api.supplyslate.com/v1/operator/data-requests/{request_id}`
- Auth: one of:
  - OAuth 2 (authorization code, authorization URL `https://mcp.supplyslate.com/authorize`, token URL `https://mcp.supplyslate.com/oauth/token`)
  - HTTP bearer

## Path parameters

- `request_id` string, required

## Headers

- `Idempotency-Key` string

## Request body

- DataRequestReviewWrite
  - `status` 'reviewing' | 'approved' | 'rejected' | 'cancelled', required
  - `note` string, required

## Response `200`

Successful response

- DataRequestResponse
  - `data_request` DataRequest, required
    - `id` string, required
    - `request_type` 'export' | 'delete' | 'restrict' | 'restore', required
    - `status` 'requested' | 'reviewing' | 'approved' | 'processing' | 'completed' | 'rejected' | 'cancelled', required
    - `scope` object
    - `download_url` string, nullable
    - `result_checksum_sha256` string, nullable
    - `result_size_bytes` integer, nullable
    - `requested_at` string, date-time, required
    - `completed_at` string, date-time, nullable
    - `review_note` string, nullable
  - `request_id` string

## Other responses

- `400`: Invalid request
- `401`: Authentication required
- `403`: Scope or tenant boundary denied
- `404`: Resource not found
- `409`: State conflict or idempotency mismatch
- `429`: Rate limited

---

[API](https://skmtc.dev/supplyslate/apis/supplyslate-agent-native-supply-api.md) · [All operations](https://skmtc.dev/supplyslate/apis/supplyslate-agent-native-supply-api/llms.txt) · [OpenAPI document](https://skmtc.dev/supplyslate/apis/supplyslate-agent-native-supply-api/revisions/f7989551f167?raw)
