Руководства

Как читать отзывы

Доступ для AI:

Все отзывы читаются одним методом: GET /v3/reviews. Отзывы могут запрашиваться только по одному адресату: object_id – объект, folder_idпапка целиком.

curl "https://api.rewio.ru/v3/reviews?object_id=20&limit=20" \
  -H "X-API-Key: hrev_ВАШ_КЛЮЧ"

Страницы

Окно задают limit (по умолчанию 100) и offset.

total – сколько отзывов подходит под фильтры. has_next – есть ли следующая страница. Листайте, пока has_next не станет false:

import requests

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

def iter_reviews(object_id, **filters):
    offset, limit = 0, 100
    while True:
        r = requests.get(f"{BASE}/reviews", headers=HEADERS, params={
            "object_id": object_id, "limit": limit, "offset": offset, **filters,
        })
        r.raise_for_status()
        page = r.json()
        yield from page["data"]
        if not page["has_next"]:
            break
        offset += limit

for review in iter_reviews(20, min_rating=1, max_rating=3):
    print(review["rating"], review["author"])

Так читают ленту целиком. Чтобы узнавать о новых отзывах и ответах, не опрашивая нас, подпишитесь на вебхуки – мы сами пришлём событие.

Альтернатива: обход курсором

Если задача не «показать страницу», а перенести отзывы в свою базу и дальше держать её актуальной, листать offset не нужно. Для этого есть отдельный метод – поток изменений с курсором: он не теряет отзывы, если лента меняется прямо во время обхода, а на следующем проходе отдаёт только то, что изменилось.

Как это устроено – в Синхронизации данных.

Фильтры

Фильтры складываются: отзыв попадает в выдачу, если проходит все.

ПараметрЧто делает
source_idsТолько эти площадки. Параметр повторяемый.
link_idsТолько эти ссылки внутри объекта.
min_rating / max_ratingДиапазон оценки по шкале 1–5.
published_from / published_toДиапазон даты публикации.
has_text, has_images, has_videos, has_replyНаличие текста, фото, видео, ответа организации.
searchПоиск подстроки в тексте, без морфологии и ранжирования.

Сортировка – sort_by (date, rating или reply_date) и sort_order (desc или asc). reply_date – дата ответа организации: desc показывает, на что отвечали последним, asc – самые давние ответы. Отзывы без ответа при этом уходят в конец списка в обоих направлениях; чтобы получить именно их, возьмите has_reply=false.

Пример: негатив с фотографиями за квартал по двум площадкам.

curl -G "https://api.rewio.ru/v3/reviews" \
  -H "X-API-Key: hrev_ВАШ_КЛЮЧ" \
  --data-urlencode "object_id=20" \
  --data-urlencode "max_rating=3" \
  --data-urlencode "has_images=true" \
  --data-urlencode "published_from=2026-04-01" \
  --data-urlencode "published_to=2026-06-30" \
  --data-urlencode "source_ids=1" \
  --data-urlencode "source_ids=2"

Даты отзыва

У отзыва две даты, и означают они разное:

ПолеЧто означаетЗонаЧем фильтровать
review_dateКогда отзыв опубликован на площадке.Местное время площадкиpublished_from / published_to
created_atКогда отзыв впервые захвачен.UTCнельзя

Когда отзыв пропадает с площадки, мы помечаем его is_deleted и ставим deleted_at – момент, когда мы это заметили. Такие отзывы остаются у вас в истории, по умолчанию скрыты и возвращаются с show_deleted.

Новые отзывы и ответы приходят вебхуками – опрашивать нас для этого не нужно. Если у вас своя база и её надо держать в актуальном состоянии, это отдельная работа: синхронизация – поток изменений с курсором, включая пропажи отзывов с площадок.

Особые флаги

  • show_deleted и only_deleted – показать отзывы, пропавшие с площадки. По умолчанию они скрыты.
  • show_hidden и show_pinned – вернуть скрытые и закреплённые отзывы вместе с их флагами.
  • split_pros_cons – разобрать слитый текст на «достоинства» и «недостатки» там, где площадка их разделяет.

Каждый параметр и все поля ответа есть в справочнике.

On this page