---
title: "Получить отзывы объекта или папки"
method: GET
path: "/v3/reviews"
tags: ["reviews"]
---

# Получить отзывы объекта или папки

`GET /v3/reviews`

## Request

- Base URL: `https://api.rewio.ru`
- URL: `https://api.rewio.ru/v3/reviews`
- Auth: API key in header `X-API-Key`

Отзывы объекта или папки с фильтрацией, сортировкой и пагинацией.

Адресат — `object_id` (один объект), `folder_id` (папка целиком) или
**ничего**: тогда лента идёт по всем включённым объектам аккаунта. Объект и
папка сразу — `400 object_and_folder_conflict`.

Ответ — конверт `Page`: `{data, total, limit, offset, has_next}`. По каждому
отзыву: `author`, `text`, `rating` (шкала 1–5), `reply_text` / `reply_date`,
`images` и остальное.

**Сортировка:** `sort_by=review_date` (по умолчанию), `rating` или
`reply_date`. Отзывы без ответа идут **в конце** при обоих направлениях,
поэтому «сначала неотвеченные» — это не сортировка, а `has_reply=false`.

## Query parameters

- `folder_id` integer, nullable: Единая лента по всей папке: все объекты папки и её подпапок. Взаимоисключим с `object_id`; без обоих — лента всего аккаунта. Выключенные и удалённые объекты в состав не входят. В папочном режиме закрепления не применяются, а скрытия применяются по составу папки.
- `object_id` integer, nullable: Идентификатор объекта. Взаимоисключим с `folder_id` — в запросе должен быть ровно один из двух.
- `link_ids` integer[]: Filter by link IDs.
- `source_ids` integer[]: Фильтр по площадкам: id из `GET /v3/sources`. Пусто — все площадки объекта.
- `sort_by` 'review_date' | 'rating' | 'reply_date': Поле сортировки: `review_date` (дата публикации отзыва), `rating` (оценка) или `reply_date` (дата ответа организации; отзывы без ответа — в конце при любом направлении).
- `sort_order` 'desc' | 'asc': Направление сортировки: `desc` / `asc`.
- `min_rating` number, nullable: Минимальная оценка включительно, шкала 1–5. `0` — без нижней границы и **вместе с отзывами без оценки**.
- `max_rating` number, nullable: Максимальная оценка включительно, шкала 1–5.
- `published_from` string, date, nullable: Нижняя граница по дате публикации (`review_date`), включительно. Формат `YYYY-MM-DD`.
- `published_to` string, date, nullable: Верхняя граница по дате публикации (`review_date`), включительно. Формат `YYYY-MM-DD`.
- `has_images` boolean, nullable: Фильтр по наличию изображений.
- `has_videos` boolean, nullable: Фильтр по наличию видео.
- `has_text` boolean, nullable: Фильтр по наличию текста отзыва.
- `has_reply` boolean, nullable: Фильтр по наличию ответа организации.
- `search` string, nullable: Поиск подстроки по тексту отзыва (регистронезависимо).
- `limit` integer: Размер страницы (1–1000). По умолчанию 100.
- `offset` integer: Смещение для пагинации.
- `show_deleted` boolean: Показывать отзывы, помеченные удалёнными на площадке.
- `only_deleted` boolean: Только удалённые отзывы (приоритет над `show_deleted`).
- `show_hidden` boolean: Показывать скрытые отзывы (с флагом `is_hidden`).
- `show_pinned` boolean: Показывать закреплённые отзывы (с флагом `is_pinned`).
- `split_pros_cons` boolean: Разбирать слитый текст на `pros` / `cons`.

## Response `200`

Successful Response

- ReviewsPageV3: Страница отзывов — конверт `Page` плюс два ключа-флага.
  - `data` ReviewV3[], required: Элементы текущей страницы.
    - `id` integer, required: Идентификатор отзыва в сервисе.
    - `link_id` integer, required: Идентификатор ссылки (страницы объекта на площадке).
    - `source_id` integer, required: Идентификатор площадки, с которой собран отзыв.
    - `source_slug` string, nullable: Слаг площадки, с которой собран отзыв (`2gis`, `google`, `yandex_maps`). Отвечать можно, если он совпадает с `provider` отзыва.
    - `author` string, nullable: Имя автора; `null`, если анонимен.
    - `text` string, nullable: Текст отзыва; `null`, если отзыв без текста.
    - `review_date` string, date-time, nullable: Дата и время публикации отзыва. Приводится к UTC везде, где это возможно; в противном случае — время, как его показывает площадка. ISO 8601 без таймзоны.
    - `rating_original` string, nullable: Исходная оценка в шкале площадки.
    - `rating` number, nullable: Оценка, приведённая к единой шкале 1–5. `null`, если оценки нет.
    - `review_url` string, nullable: Прямая ссылка на отзыв на площадке. `null`, если недоступна.
    - `reply_text` string, nullable: Текст официального ответа организации. `null`, если ответа нет.
    - `reply_date` string, date-time, nullable: Дата и время ответа организации (UTC, ISO 8601).
    - `provider` string, nullable: Площадка-источник самого отзыва внутри `source` (слаг в нижнем регистре). Многие площадки показывают в ленте отзывы других: 2ГИС — `booking`/`tbank`/`flamp`/…, Google — `tripadvisor`. У нативного отзыва совпадает со слагом площадки (`2gis`, `google`), и только на такой отзыв можно опубликовать ответ через эту площадку — на остальные вернётся `409 reply_not_replyable`.
    - `is_replyable` boolean, nullable: Можно ли ответить на отзыв через `PUT /v3/reviews/{review_id}/reply`. Приходит только на площадках, где Rewio публикует ответы (`can_publish_reply` в `GET /v3/sources`); на остальных ключа нет. `true` — ответы на ссылке подключены, и отзыв родной для площадки (`provider` пуст или равен `source_slug`). `false` — ответ вернёт ошибку: отзыв другой площадки (2ГИС показывает отзывы Netmonet, Booking, Т-Банка — `409 reply_not_replyable`) или ответы на ссылке не подключены. Тариф флаг не учитывает.
    - `has_images` boolean, required: Признак наличия изображений в отзыве.
    - `images` ReviewImageV2[]: Список изображений отзыва.
      - `template_url` string, required: URL изображения на CDN площадки в исходном виде. У части площадок содержит шаблон размера (`{size}` или `{width}`/`{height}`) и потому не предназначен для прямой вставки — для показа берите `preview` или `image`.
      - `preview` string, nullable: Готовый URL уменьшенной версии (превью) для списков и сеток.
      - `image` string, nullable: Готовый URL полноразмерной версии для просмотра.
    - `has_videos` boolean: Признак наличия видео в отзыве.
    - `videos` ReviewVideoResponse[]: Список видеовложений отзыва.
      - `kind` 'embed' | 'file' | 'hls', required: Тип вложения: `embed` — встраиваемый плеер площадки (открывать в sandbox-iframe), `file` — прямая ссылка на видеофайл, `hls` — HLS-поток (`.m3u8`).
      - `video_url` string, nullable: URL видео или встраиваемого плеера в зависимости от `kind`.
      - `thumbnail` string, nullable: URL кадра-заставки (превью) видео.
      - `width` integer, nullable: Ширина видео в пикселях, если известна.
      - `height` integer, nullable: Высота видео в пикселях, если известна.
      - `duration_ms` integer, nullable: Длительность видео в миллисекундах, если известна.
    - `is_deleted` boolean: Отзыв обнаружен удалённым на площадке (приходит только когда `true`).
    - `deleted_at` string, date-time, nullable: Момент обнаружения удаления (UTC, ISO 8601).
    - `is_hidden` boolean: Отзыв скрыт в рамках объекта (приходит только когда `true`).
    - `is_pinned` boolean: Отзыв закреплён в рамках объекта (приходит только когда `true`).
    - `pin_position` integer, nullable: Позиция закреплённого отзыва: меньше — выше.
    - `pros` string, nullable: Блок «достоинства» (только при `split_pros_cons=true`).
    - `cons` string, nullable: Блок «недостатки» (только при `split_pros_cons=true`).
  - `total` integer, required: Общее число элементов, подходящих под фильтры (без учёта limit/offset).
  - `limit` integer, required: Размер страницы, применённый к запросу.
  - `offset` integer, required: Смещение от начала выборки, применённое к запросу.
  - `has_next` boolean, required: Есть ли ещё элементы за пределами текущей страницы.
  - `access` AccessInfoV3: Выдача ограничена тарифом — показано не всё.
    - `reason` string, required: Почему выдача ограничена. `trial` — пробный доступ, `manual` — ограничение, согласованное по вашему договору.
    - `limit_per_link` integer, required: Сколько последних отзывов показывается по КАЖДОЙ ссылке (площадке объекта).
    - `hidden_total` integer, required: Сколько отзывов уже собрано сверх показанных. Считается по всему архиву и не зависит от фильтров запроса.
    - `message` string, required: Готовая формулировка для показа человеку.
  - `collecting` CollectingInfoV3: Первый сбор ещё идёт — поэтому отзывов может не быть. Ключ приходит только до первого успешного сбора: дальше пустая страница значит «отзывов нет», и объяснять нечего.
    - `link_count` integer, required: Сколько площадок (ссылок) участвует в выдаче.
    - `links_collecting` integer, required: По скольким из них первый сбор идёт прямо сейчас или стоит в очереди. Отзывы появятся сами — повторите запрос через несколько десятков секунд.
    - `links_failed` integer, required: По скольким из них первый сбор не удался. Состояние каждой площадки — в `scrape_status` / `scrape_error` объекта.
    - `message` string, required: Готовая формулировка. Для своего интерфейса стройте текст по числам выше.

## Other responses

- `default`: Error

---

[API](https://skmtc.dev/rewio/apis/review-aggregator.md) · [All operations](https://skmtc.dev/rewio/apis/review-aggregator/llms.txt) · [OpenAPI document](https://skmtc.dev/rewio/apis/review-aggregator/revisions/9222b6cf28a5?raw)
