Документация API v2. Версия заморожена и продолжает работать; актуальная — на главной. Что изменилось: переход с v2 на v3.
Руководства

Как собрать виджет отзывов

Доступ для AI:

Виджет показывает отзывы объекта на вашей странице. Управляют показом три инструмента:

Что нужноЧем делается
Поднять отзыв наверхЗакрепление
Убрать отзыв из показаСкрытие
Показать плюсы и минусы отдельными блокамиseparate_pos_neg

Закрепление и скрытие действуют внутри объекта и не меняют собранные данные: в другом объекте тот же отзыв останется как был, на самой площадке не изменится ничего.

Закрепить наверху

Закреплённые отзывы образуют упорядоченный список, максимум 30 на объект. Добавить в конецPOST, задать порядок целикомPUT:

# добавить в конец
curl -X POST "https://api.rewio.ru/v2/groups/20/pinned-reviews" \
  -H "X-API-Key: hrev_ВАШ_КЛЮЧ" -H "Content-Type: application/json" \
  -d '{"review_ids": [143046]}'

# переставить: порядок в запросе становится порядком показа
curl -X PUT "https://api.rewio.ru/v2/groups/20/pinned-reviews" \
  -H "X-API-Key: hrev_ВАШ_КЛЮЧ" -H "Content-Type: application/json" \
  -d '{"ordered_review_ids": [142391, 143046]}'

PUT – замена целиком: отзывы, которых нет в списке, открепляются. Место каждого приходит в pin_position, считая с нуля.

Скрыть и вернуть

# скрыть
curl -X POST "https://api.rewio.ru/v2/groups/20/hidden-reviews" \
  -H "X-API-Key: hrev_ВАШ_КЛЮЧ" -H "Content-Type: application/json" \
  -d '{"review_ids": [143046, 142391]}'

# вернуть в ленту
curl -X DELETE "https://api.rewio.ru/v2/groups/20/hidden-reviews" \
  -H "X-API-Key: hrev_ВАШ_КЛЮЧ" -H "Content-Type: application/json" \
  -d '{"review_ids": [142391]}'

Скрытый отзыв пропадает из обычной ленты. Он остаётся доступен списком скрытых и в обычной ленте с show_hidden=true, там у него приходит флаг is_hidden. За один запрос – до 200 идентификаторов.

Скрытие снимает закрепление. Снятие скрытия его не возвращает – закрепите заново.

Как собрать страницу

В обычной ленте нет ни закреплённых, ни скрытых: GET /v2/reviews по умолчанию исключает и тех и других. Поэтому страница собирается двумя запросами, и дублей между ними не бывает – закреплённые сверху, за ними обычная лента.

import requests

BASE = "https://api.rewio.ru/v2"
HEADERS = {"X-API-Key": "hrev_ВАШ_КЛЮЧ"}
GROUP = 20

pinned = requests.get(f"{BASE}/groups/{GROUP}/pinned-reviews", headers=HEADERS).json()["data"]
feed = requests.get(f"{BASE}/reviews", headers=HEADERS,
                    params={"group_id": GROUP, "limit": 20}).json()["data"]

for review in pinned + feed:      # скрытые не придут ни там, ни там
    print(review["rating"], review["author"])

Нужны закреплённые прямо в общей ленте – передайте show_pinned=true, и они придут вперемешку с остальными, с флагом is_pinned.

Ключ API открывает все данные аккаунта, поэтому в браузерный код он не попадает: запрашивайте отзывы со своего бэкенда и отдавайте странице уже готовый ответ. Подробнее – в Доступе.

Плюсы и минусы отдельными блоками

Часть площадок спрашивает у автора достоинства и недостатки по отдельности. С separate_pos_neg=true они приходят полями positive и negative, и показать их можно двумя колонками. Подробности и список площадок – на отдельной странице.

Средний балл не зависит от показа

Аналитика считает все собранные отзывы объекта. Скрыли отзыв с единицей – он пропал из показа, но средний балл и распределение оценок не изменились.

Это сделано намеренно: скрытие оформляет показ, а не правит данные. Если рядом с отзывами нужен балл, согласованный с показанными, считайте его сами по выдаче.

В папках работает не всё

Папочная лента применяет скрытие, но не закрепление. В ленте по папке закреплённый отзыв приходит обычной строкой, а флагов is_pinned и is_hidden там нет.

Поэтому лента по папке из одного объекта может вернуть больше отзывов, чем лента по этому же объекту – ровно на число закреплённых.

On this page