# Сайт и файлы

Операций в разделе: **17**.

> у 8 описание выведено из имени операции, у 1 описания пока нет вовсе. Спецификация написана каталогом путей, прозы для них там не было; выдумывать поведение мы не стали. Подробнее — [Чего в справочнике ещё нет](/api/reference/#chego-v-spravochnike-eshhe-net).

## GET /v1/files

список

**Параметры:**

- `limit` — сколько вернуть, 1…1000, по умолчанию 50
- `cursor` — позиция продолжения из `next_cursor`
- `sort` — сортировка, минус для убывания
- `expand` — развернуть связи
- `fields` — вернуть только эти поля
- `X-On-Behalf-Of` — заголовок, действие от лица пользователя

**Запрос:**

```bash
curl -X GET 'https://school.example.com/api/v1/files' \
  -H 'Authorization: Bearer lms_live_a8f3c1e9d2b74a5f8e0c1d3b5a7f9e2c' \
  -H 'Accept: application/json'
```

**Коды ответа:** `200`, `401`, `403`, `429`, `500`, `503`.

> **Чего здесь нет:** состав полей ответа. Публичного API в продукте пока нет, выводить состав полей не из чего — см. [Чего в справочнике ещё нет](/api/reference/#chego-v-spravochnike-eshhe-net).

Как выглядит ошибка и что делать с каждым кодом — в разделе [Ошибки](/api/errors/).

## DELETE /v1/files/{id}

Удалить файл. <small>Фраза выведена из имени операции: в спецификации описания нет.</small>

**В пути:** `id`

**Параметры:**

- `Idempotency-Key` — заголовок, защита от двойного выполнения
- `X-On-Behalf-Of` — заголовок, действие от лица пользователя

**Запрос:**

```bash
curl -X DELETE 'https://school.example.com/api/v1/files/{id}' \
  -H 'Authorization: Bearer lms_live_a8f3c1e9d2b74a5f8e0c1d3b5a7f9e2c' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 6f1e2a34-9c8b-4d7e-a1f0-3b5c7d9e1f2a' \
  -H 'Accept: application/json'
```

Вместо `{…}` подставьте идентификатор объекта — про их формат в разделе [Формат](/api/format/#identifikatory).

**Коды ответа:** `200`, `400`, `401`, `403`, `404`, `409`, `422`, `429`, `500`, `503`.

> **Чего здесь нет:** тело запроса и состав полей ответа. Публичного API в продукте пока нет, выводить состав полей не из чего — см. [Чего в справочнике ещё нет](/api/reference/#chego-v-spravochnike-eshhe-net).

Как выглядит ошибка и что делать с каждым кодом — в разделе [Ошибки](/api/errors/).

## GET /v1/files/{id}

метаданные

**В пути:** `id`

**Параметры:**

- `X-On-Behalf-Of` — заголовок, действие от лица пользователя

**Запрос:**

```bash
curl -X GET 'https://school.example.com/api/v1/files/{id}' \
  -H 'Authorization: Bearer lms_live_a8f3c1e9d2b74a5f8e0c1d3b5a7f9e2c' \
  -H 'Accept: application/json'
```

Вместо `{…}` подставьте идентификатор объекта — про их формат в разделе [Формат](/api/format/#identifikatory).

**Коды ответа:** `200`, `401`, `403`, `404`, `429`, `500`, `503`.

> **Чего здесь нет:** состав полей ответа. Публичного API в продукте пока нет, выводить состав полей не из чего — см. [Чего в справочнике ещё нет](/api/reference/#chego-v-spravochnike-eshhe-net).

Как выглядит ошибка и что делать с каждым кодом — в разделе [Ошибки](/api/errors/).

## POST /v1/files/upload-url

подписанный URL для прямой загрузки в S3

**Параметры:**

- `Idempotency-Key` — заголовок, защита от двойного выполнения
- `X-On-Behalf-Of` — заголовок, действие от лица пользователя

**Запрос:**

```bash
curl -X POST 'https://school.example.com/api/v1/files/upload-url' \
  -H 'Authorization: Bearer lms_live_a8f3c1e9d2b74a5f8e0c1d3b5a7f9e2c' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 6f1e2a34-9c8b-4d7e-a1f0-3b5c7d9e1f2a' \
  -H 'Accept: application/json'
```

**Коды ответа:** `201`, `400`, `401`, `403`, `409`, `422`, `429`, `500`, `503`.

> **Чего здесь нет:** тело запроса и состав полей ответа. Публичного API в продукте пока нет, выводить состав полей не из чего — см. [Чего в справочнике ещё нет](/api/reference/#chego-v-spravochnike-eshhe-net).

Как выглядит ошибка и что делать с каждым кодом — в разделе [Ошибки](/api/errors/).

## GET /v1/form-submissions

заявки с форм

**Параметры:**

- `limit` — сколько вернуть, 1…1000, по умолчанию 50
- `cursor` — позиция продолжения из `next_cursor`
- `sort` — сортировка, минус для убывания
- `expand` — развернуть связи
- `fields` — вернуть только эти поля
- `X-On-Behalf-Of` — заголовок, действие от лица пользователя

**Запрос:**

```bash
curl -X GET 'https://school.example.com/api/v1/form-submissions' \
  -H 'Authorization: Bearer lms_live_a8f3c1e9d2b74a5f8e0c1d3b5a7f9e2c' \
  -H 'Accept: application/json'
```

**Коды ответа:** `200`, `401`, `403`, `429`, `500`, `503`.

> **Чего здесь нет:** состав полей ответа. Публичного API в продукте пока нет, выводить состав полей не из чего — см. [Чего в справочнике ещё нет](/api/reference/#chego-v-spravochnike-eshhe-net).

Как выглядит ошибка и что делать с каждым кодом — в разделе [Ошибки](/api/errors/).

## POST /v1/form-submissions

принять заявку с внешнего лендинга (Tilda)

**Параметры:**

- `Idempotency-Key` — заголовок, защита от двойного выполнения
- `X-On-Behalf-Of` — заголовок, действие от лица пользователя

**Запрос:**

```bash
curl -X POST 'https://school.example.com/api/v1/form-submissions' \
  -H 'Authorization: Bearer lms_live_a8f3c1e9d2b74a5f8e0c1d3b5a7f9e2c' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 6f1e2a34-9c8b-4d7e-a1f0-3b5c7d9e1f2a' \
  -H 'Accept: application/json'
```

**Коды ответа:** `201`, `400`, `401`, `403`, `409`, `422`, `429`, `500`, `503`.

> **Чего здесь нет:** тело запроса и состав полей ответа. Публичного API в продукте пока нет, выводить состав полей не из чего — см. [Чего в справочнике ещё нет](/api/reference/#chego-v-spravochnike-eshhe-net).

Как выглядит ошибка и что делать с каждым кодом — в разделе [Ошибки](/api/errors/).

## GET /v1/forms

Список форм школы. <small>Фраза выведена из имени операции: в спецификации описания нет.</small>

**Параметры:**

- `limit` — сколько вернуть, 1…1000, по умолчанию 50
- `cursor` — позиция продолжения из `next_cursor`
- `sort` — сортировка, минус для убывания
- `expand` — развернуть связи
- `fields` — вернуть только эти поля
- `X-On-Behalf-Of` — заголовок, действие от лица пользователя

**Запрос:**

```bash
curl -X GET 'https://school.example.com/api/v1/forms' \
  -H 'Authorization: Bearer lms_live_a8f3c1e9d2b74a5f8e0c1d3b5a7f9e2c' \
  -H 'Accept: application/json'
```

**Коды ответа:** `200`, `401`, `403`, `429`, `500`, `503`.

> **Чего здесь нет:** состав полей ответа. Публичного API в продукте пока нет, выводить состав полей не из чего — см. [Чего в справочнике ещё нет](/api/reference/#chego-v-spravochnike-eshhe-net).

Как выглядит ошибка и что делать с каждым кодом — в разделе [Ошибки](/api/errors/).

## POST /v1/forms

Создать форму. <small>Фраза выведена из имени операции: в спецификации описания нет.</small>

> ⚠️ **Адрес предположительный.** В спецификации он не написан прямо — он выведен из сокращённой записи каталога («`POST, PATCH, DELETE`»). Когда API будет реализовано, адрес может оказаться другим. Не закладывайтесь на него в коде.

**Параметры:**

- `Idempotency-Key` — заголовок, защита от двойного выполнения
- `X-On-Behalf-Of` — заголовок, действие от лица пользователя

**Запрос:**

```bash
curl -X POST 'https://school.example.com/api/v1/forms' \
  -H 'Authorization: Bearer lms_live_a8f3c1e9d2b74a5f8e0c1d3b5a7f9e2c' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 6f1e2a34-9c8b-4d7e-a1f0-3b5c7d9e1f2a' \
  -H 'Accept: application/json'
```

**Коды ответа:** `201`, `400`, `401`, `403`, `409`, `422`, `429`, `500`, `503`.

> **Чего здесь нет:** тело запроса и состав полей ответа. Публичного API в продукте пока нет, выводить состав полей не из чего — см. [Чего в справочнике ещё нет](/api/reference/#chego-v-spravochnike-eshhe-net).

Как выглядит ошибка и что делать с каждым кодом — в разделе [Ошибки](/api/errors/).

## PATCH /v1/forms/{id}

Изменить форму. <small>Фраза выведена из имени операции: в спецификации описания нет.</small>

> ⚠️ **Адрес предположительный.** В спецификации он не написан прямо — он выведен из сокращённой записи каталога («`POST, PATCH, DELETE`»). Когда API будет реализовано, адрес может оказаться другим. Не закладывайтесь на него в коде.

**В пути:** `id`

**Параметры:**

- `Idempotency-Key` — заголовок, защита от двойного выполнения
- `X-On-Behalf-Of` — заголовок, действие от лица пользователя

**Запрос:**

```bash
curl -X PATCH 'https://school.example.com/api/v1/forms/{id}' \
  -H 'Authorization: Bearer lms_live_a8f3c1e9d2b74a5f8e0c1d3b5a7f9e2c' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 6f1e2a34-9c8b-4d7e-a1f0-3b5c7d9e1f2a' \
  -H 'Accept: application/json'
```

Вместо `{…}` подставьте идентификатор объекта — про их формат в разделе [Формат](/api/format/#identifikatory).

**Коды ответа:** `200`, `400`, `401`, `403`, `404`, `409`, `422`, `429`, `500`, `503`.

> **Чего здесь нет:** тело запроса и состав полей ответа. Публичного API в продукте пока нет, выводить состав полей не из чего — см. [Чего в справочнике ещё нет](/api/reference/#chego-v-spravochnike-eshhe-net).

Как выглядит ошибка и что делать с каждым кодом — в разделе [Ошибки](/api/errors/).

## GET /v1/pages

Список страниц школы. <small>Фраза выведена из имени операции: в спецификации описания нет.</small>

**Параметры:**

- `limit` — сколько вернуть, 1…1000, по умолчанию 50
- `cursor` — позиция продолжения из `next_cursor`
- `sort` — сортировка, минус для убывания
- `expand` — развернуть связи
- `fields` — вернуть только эти поля
- `X-On-Behalf-Of` — заголовок, действие от лица пользователя

**Запрос:**

```bash
curl -X GET 'https://school.example.com/api/v1/pages' \
  -H 'Authorization: Bearer lms_live_a8f3c1e9d2b74a5f8e0c1d3b5a7f9e2c' \
  -H 'Accept: application/json'
```

**Коды ответа:** `200`, `401`, `403`, `429`, `500`, `503`.

> **Чего здесь нет:** состав полей ответа. Публичного API в продукте пока нет, выводить состав полей не из чего — см. [Чего в справочнике ещё нет](/api/reference/#chego-v-spravochnike-eshhe-net).

Как выглядит ошибка и что делать с каждым кодом — в разделе [Ошибки](/api/errors/).

## POST /v1/pages

Создать страницу. <small>Фраза выведена из имени операции: в спецификации описания нет.</small>

> ⚠️ **Адрес предположительный.** В спецификации он не написан прямо — он выведен из сокращённой записи каталога («`POST, PATCH, DELETE`»). Когда API будет реализовано, адрес может оказаться другим. Не закладывайтесь на него в коде.

**Параметры:**

- `Idempotency-Key` — заголовок, защита от двойного выполнения
- `X-On-Behalf-Of` — заголовок, действие от лица пользователя

**Запрос:**

```bash
curl -X POST 'https://school.example.com/api/v1/pages' \
  -H 'Authorization: Bearer lms_live_a8f3c1e9d2b74a5f8e0c1d3b5a7f9e2c' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 6f1e2a34-9c8b-4d7e-a1f0-3b5c7d9e1f2a' \
  -H 'Accept: application/json'
```

**Коды ответа:** `201`, `400`, `401`, `403`, `409`, `422`, `429`, `500`, `503`.

> **Чего здесь нет:** тело запроса и состав полей ответа. Публичного API в продукте пока нет, выводить состав полей не из чего — см. [Чего в справочнике ещё нет](/api/reference/#chego-v-spravochnike-eshhe-net).

Как выглядит ошибка и что делать с каждым кодом — в разделе [Ошибки](/api/errors/).

## DELETE /v1/pages/{id}

Удалить страницу. <small>Фраза выведена из имени операции: в спецификации описания нет.</small>

> ⚠️ **Адрес предположительный.** В спецификации он не написан прямо — он выведен из сокращённой записи каталога («`POST, PATCH, DELETE`»). Когда API будет реализовано, адрес может оказаться другим. Не закладывайтесь на него в коде.

**В пути:** `id`

**Параметры:**

- `Idempotency-Key` — заголовок, защита от двойного выполнения
- `X-On-Behalf-Of` — заголовок, действие от лица пользователя

**Запрос:**

```bash
curl -X DELETE 'https://school.example.com/api/v1/pages/{id}' \
  -H 'Authorization: Bearer lms_live_a8f3c1e9d2b74a5f8e0c1d3b5a7f9e2c' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 6f1e2a34-9c8b-4d7e-a1f0-3b5c7d9e1f2a' \
  -H 'Accept: application/json'
```

Вместо `{…}` подставьте идентификатор объекта — про их формат в разделе [Формат](/api/format/#identifikatory).

**Коды ответа:** `200`, `400`, `401`, `403`, `404`, `409`, `422`, `429`, `500`, `503`.

> **Чего здесь нет:** тело запроса и состав полей ответа. Публичного API в продукте пока нет, выводить состав полей не из чего — см. [Чего в справочнике ещё нет](/api/reference/#chego-v-spravochnike-eshhe-net).

Как выглядит ошибка и что делать с каждым кодом — в разделе [Ошибки](/api/errors/).

## PATCH /v1/pages/{id}

Изменить страницу. <small>Фраза выведена из имени операции: в спецификации описания нет.</small>

> ⚠️ **Адрес предположительный.** В спецификации он не написан прямо — он выведен из сокращённой записи каталога («`POST, PATCH, DELETE`»). Когда API будет реализовано, адрес может оказаться другим. Не закладывайтесь на него в коде.

**В пути:** `id`

**Параметры:**

- `Idempotency-Key` — заголовок, защита от двойного выполнения
- `X-On-Behalf-Of` — заголовок, действие от лица пользователя

**Запрос:**

```bash
curl -X PATCH 'https://school.example.com/api/v1/pages/{id}' \
  -H 'Authorization: Bearer lms_live_a8f3c1e9d2b74a5f8e0c1d3b5a7f9e2c' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 6f1e2a34-9c8b-4d7e-a1f0-3b5c7d9e1f2a' \
  -H 'Accept: application/json'
```

Вместо `{…}` подставьте идентификатор объекта — про их формат в разделе [Формат](/api/format/#identifikatory).

**Коды ответа:** `200`, `400`, `401`, `403`, `404`, `409`, `422`, `429`, `500`, `503`.

> **Чего здесь нет:** тело запроса и состав полей ответа. Публичного API в продукте пока нет, выводить состав полей не из чего — см. [Чего в справочнике ещё нет](/api/reference/#chego-v-spravochnike-eshhe-net).

Как выглядит ошибка и что делать с каждым кодом — в разделе [Ошибки](/api/errors/).

## PUT /v1/pages/{id}/content

_Назначение пока не описано: из имени операции оно не следует, а в спецификации его нет. Описание пишется отдельно._

**В пути:** `id`

**Параметры:**

- `Idempotency-Key` — заголовок, защита от двойного выполнения
- `X-On-Behalf-Of` — заголовок, действие от лица пользователя

**Запрос:**

```bash
curl -X PUT 'https://school.example.com/api/v1/pages/{id}/content' \
  -H 'Authorization: Bearer lms_live_a8f3c1e9d2b74a5f8e0c1d3b5a7f9e2c' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 6f1e2a34-9c8b-4d7e-a1f0-3b5c7d9e1f2a' \
  -H 'Accept: application/json'
```

Вместо `{…}` подставьте идентификатор объекта — про их формат в разделе [Формат](/api/format/#identifikatory).

**Коды ответа:** `200`, `400`, `401`, `403`, `404`, `409`, `422`, `429`, `500`, `503`.

> **Чего здесь нет:** тело запроса и состав полей ответа. Публичного API в продукте пока нет, выводить состав полей не из чего — см. [Чего в справочнике ещё нет](/api/reference/#chego-v-spravochnike-eshhe-net).

Как выглядит ошибка и что делать с каждым кодом — в разделе [Ошибки](/api/errors/).

## POST /v1/videos

загрузка видео к видеопровайдеру

**Параметры:**

- `Idempotency-Key` — заголовок, защита от двойного выполнения
- `X-On-Behalf-Of` — заголовок, действие от лица пользователя

**Запрос:**

```bash
curl -X POST 'https://school.example.com/api/v1/videos' \
  -H 'Authorization: Bearer lms_live_a8f3c1e9d2b74a5f8e0c1d3b5a7f9e2c' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 6f1e2a34-9c8b-4d7e-a1f0-3b5c7d9e1f2a' \
  -H 'Accept: application/json'
```

**Коды ответа:** `201`, `400`, `401`, `403`, `409`, `422`, `429`, `500`, `503`.

> **Чего здесь нет:** тело запроса и состав полей ответа. Публичного API в продукте пока нет, выводить состав полей не из чего — см. [Чего в справочнике ещё нет](/api/reference/#chego-v-spravochnike-eshhe-net).

Как выглядит ошибка и что делать с каждым кодом — в разделе [Ошибки](/api/errors/).

## GET /v1/videos/{id}

статус обработки, длительность

**В пути:** `id`

**Параметры:**

- `X-On-Behalf-Of` — заголовок, действие от лица пользователя

**Запрос:**

```bash
curl -X GET 'https://school.example.com/api/v1/videos/{id}' \
  -H 'Authorization: Bearer lms_live_a8f3c1e9d2b74a5f8e0c1d3b5a7f9e2c' \
  -H 'Accept: application/json'
```

Вместо `{…}` подставьте идентификатор объекта — про их формат в разделе [Формат](/api/format/#identifikatory).

**Коды ответа:** `200`, `401`, `403`, `404`, `429`, `500`, `503`.

> **Чего здесь нет:** состав полей ответа. Публичного API в продукте пока нет, выводить состав полей не из чего — см. [Чего в справочнике ещё нет](/api/reference/#chego-v-spravochnike-eshhe-net).

Как выглядит ошибка и что делать с каждым кодом — в разделе [Ошибки](/api/errors/).

## GET /v1/videos/{id}/playback-url

подписанная ссылка на воспроизведение

**В пути:** `id`

**Параметры:**

- `limit` — сколько вернуть, 1…1000, по умолчанию 50
- `cursor` — позиция продолжения из `next_cursor`
- `sort` — сортировка, минус для убывания
- `expand` — развернуть связи
- `fields` — вернуть только эти поля
- `X-On-Behalf-Of` — заголовок, действие от лица пользователя

**Запрос:**

```bash
curl -X GET 'https://school.example.com/api/v1/videos/{id}/playback-url' \
  -H 'Authorization: Bearer lms_live_a8f3c1e9d2b74a5f8e0c1d3b5a7f9e2c' \
  -H 'Accept: application/json'
```

Вместо `{…}` подставьте идентификатор объекта — про их формат в разделе [Формат](/api/format/#identifikatory).

**Коды ответа:** `200`, `401`, `403`, `404`, `429`, `500`, `503`.

> **Чего здесь нет:** состав полей ответа. Публичного API в продукте пока нет, выводить состав полей не из чего — см. [Чего в справочнике ещё нет](/api/reference/#chego-v-spravochnike-eshhe-net).

Как выглядит ошибка и что делать с каждым кодом — в разделе [Ошибки](/api/errors/).
