---
title: "Record the user's acceptance of the current legal documents"
method: POST
path: "/v1/legal/acceptances"
tags: ["Legal"]
---

# Record the user's acceptance of the current legal documents

`POST /v1/legal/acceptances`

## Request

- Base URL: `https://api.lizzflix.xyz` (the document declares no server; this is the origin it was published from)
- URL: `https://api.lizzflix.xyz/v1/legal/acceptances`
- Auth: none declared

Records that the signed-in user accepted the listed documents at their current versions (viewer.legal.required from GET /v1/auth/session or /v1/auth/profile), confirmed being 18 or older and, with aiSharingAcknowledged, allowed the third-party AI processing notice. Each record keeps the version, the locale, the surface and a SHA-256 of the exact text. 409 LEGAL_VERSION_MISMATCH when a document changed since it was shown: reload viewer.legal and ask again. Never callable from MCP tools.

## Request body

- LegalAcceptanceRequest
  - `documents` object[], required: The documents shown, each at the version from viewer.legal.required.
    - `slug` string, required
    - `version` string, required
  - `ageConfirmed` true, required: The user confirmed being 18 or older.
  - `aiSharingAcknowledged` true: The user allowed the third-party AI processing notice.
  - `locale` string, required: Language the texts were shown in: en or ru.
  - `surface` 'web' | 'ios' | 'android' | 'mcp', required
  - `contextId` string: Optional context of the acceptance, for example the app being connected.

## Response `201`

Recorded; the user's status after the write

- LegalAcceptanceResponse
  - `accepted` object[], required
    - `slug` string, required
    - `version` string, required
  - `legal` LegalStatus, required
    - `required` object[], required: Documents the user still has to accept. Empty when up to date.
      - `slug` string, required
      - `version` string, required: The version to accept (YYYY-MM-DD); send it back in POST /v1/legal/acceptances.
      - `url` string, required
    - `ageConfirmed` boolean, required
    - `aiSharingAcknowledged` boolean, required: The current third-party AI processing notice was acknowledged. Apps keep generation off until it is.

## Other responses

- `400`: Unknown document or invalid body
- `401`: Unauthorized
- `403`: Not available to MCP tools
- `409`: A document has a newer version than the one sent
- `429`: Too many requests

---

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