Наша собственная статистика посещений включена всегда. Google Analytics помогает нам понять, как пользуются нашими публичными страницами (но не вашим рабочим пространством после входа), и включается только с вашего разрешения. См. нашу политику конфиденциальности.

API Douban Отзывы

POST

Состояние API

Состояние за 24 ч
Норма
Среднее время за 24 ч
—
  • Стабильно / норма
  • Доступно
  • Ограничено
  • Почти недоступно
Норма

Читайте развёрнутые рецензии Douban на фильм, книгу или альбом по ссылке на страницу произведения. У каждой рецензии есть заголовок, текст, метка оценки, автор и число ответов. Каждая оценка относится к своей рецензии. Выборка не всегда содержит все рецензии на произведение.

Цена: $24 за 1 000 запросов ($0.024 за вызов). Неудачные вызовы и пустые результаты не оплачиваются. Каждая запрошенная запись считается одним вызовом: limit заранее определяет сумму списания, а за записи, которые не вернулись, средства возвращаются. Синхронный режим. Для долгих задач добавьте в тело запроса "mode": "async", получите job_id и опрашивайте статус.

Промпт для ИИ

Помогите мне написать скрипт для сбора данных через эндпоинт EveryInfra Douban Отзывы (douban/reviews).

Как работает эндпоинт:
- Запрос: POST https://api.everyinfra.com/api/v1/social с заголовком Authorization: Bearer <API key>. Читайте ключ из переменной окружения EVERYINFRA_API_KEY и никогда не прописывайте его в коде.
- В теле запроса укажите platform: douban и action: reviews, а параметры передайте в params.
- Обязательные параметры:
  - url: URL целевой страницы в формате /subject/<ID>/ на movie.douban.com, book.douban.com или music.douban.com для действий reviews и comments либо в формате www.douban.com/group/topic/<ID>/ для group_topic.
- Необязательные параметры:
  - limit: Максимальное число записей в этом вызове, целое число от 1 до 50. Если параметр не указан, применяется значение по умолчанию; вызов может вернуть меньше записей. (по умолчанию: 15)
- Возвращает список записей. Основные поля каждой записи: id, url, subject_id, subject_name, subject_type, title, text, rating, rating_scale, rating_label, author_name, author_url; всего полей: 15, полный список: https://api.everyinfra.com/api/v1/social/catalog?platform=douban.
- Пример тела запроса:
{
  "platform": "douban",
  "action": "reviews",
  "params": {
    "url": "https://book.douban.com/subject/2567698/"
  }
}
- Цена: $24 за 1 000 запросов; неудачные и пустые результаты не оплачиваются.
- Для десятков или сотен целей добавьте в тело запроса "mode": "async": вы сразу получите job_id и сможете опрашивать GET https://api.everyinfra.com/api/v1/jobs/{job_id}, чтобы получить результат.
- При ответе 422 исправьте запрос, используя предложенные в ошибке имена параметров и допустимые значения; при ответе 429 или 503 подождите указанное в Retry-After время и повторите попытку.

Прежде чем писать код, спросите меня, какие цели мне нужны, сколько их будет, какие поля мне нужны и в каком формате вывести результат; затем согласуйте со мной план и примерную стоимость.

Параметры запроса

ИмяРасположениеТипОбязательныйПо умолчаниюОписание
AuthorizationheaderstringДа-Укажите Bearer, а после него — ваш API-ключ. Создайте ключ в консоли; никогда не указывайте его в URL и не храните в репозитории кода.
platformbodystringДаdoubanИдентификатор платформы, фиксированное значение.
actionbodystringДаreviewsИдентификатор возможности, фиксированное значение.
urlbody.paramsstringДа-URL целевой страницы в формате /subject/<ID>/ на movie.douban.com, book.douban.com или music.douban.com для действий reviews и comments либо в формате www.douban.com/group/topic/<ID>/ для group_topic. Длинные отзывы, короткие комментарии и ответы в темах групп обрабатываются отдельными эндпоинтами соответствующих действий.
limitbody.paramsinteger (1–50)Нет15Максимальное число записей в этом вызове, целое число от 1 до 50. Если параметр не указан, применяется значение по умолчанию; вызов может вернуть меньше записей. При значениях выше максимума эндпоинт возвращает ошибку 422 до списания средств.

Примеры кода

bash
curl -X POST 'https://api.everyinfra.com/api/v1/social' \
  -H "Authorization: Bearer $EVERYINFRA_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "platform": "douban",
  "action": "reviews",
  "params": {
    "url": "https://book.douban.com/subject/2567698/"
  }
}'

Спецификация OpenAPI (JSON)Примеры читают ключ из переменной окружения EVERYINFRA_API_KEY; скопированный код никогда не содержит ваш ключ.

Пример ответа

Реальный ответ

Получено September 26, 2026 at 08:56 (UTC) вызовом этого API с параметрами из примера кода выше. results и count — реальный ответ этого вызова, из которого удалены персональные данные (имена, никнеймы, аватары, ссылки на профили, контакты); в списке оставлены первые 2. id, billing и quota меняются при каждом вызове, поэтому показана только их структура.

json
{
  "id": "req_…",
  "platform": "douban",
  "action": "reviews",
  "results": [
    {
      "id": "1342728",
      "url": "https://book.douban.com/review/1342728/",
      "subject_id": "2567698",
      "subject_name": "三体",
      "subject_type": "book",
      "title": "《三体》:当代史的科幻书写",
      "text": "评论刘慈欣的《三体》是件困难的事情,因为可以选择的角度太多。反复思量过后挑了这个角度,在我看来,写一部好的科幻小说,或者一部适合评论家们的科幻小说都不是难事,但是当作家的心思并不是用在这些上面,而是捎带着完成了这两件事的时候,就并不是那么容易了。很容易看出,刘慈欣在《三体》中表现出来的野心很大,不仅是试图将自己的作品序列进行系统化整理和某种程度上的超越,更重要的是试图给出一些达到“科幻”这个语词内涵之中的尝试。这些尝试的可贵之处勇气可嘉,以至于《三体》作为一部小说这样那样的问题都不足以稍稍削弱这种尝试中闪耀着的光芒。\n\n作为一部小说的《三体》,并不是一部…",
      "rating": 4,
      "rating_label": "推荐",
      "author_name": "•••",
      "author_url": "https://www.douban.com/•••",
      "author_avatar_url": "https://img3.doubanio.com/•••",
      "reply_count": 268,
      "posted_at": "2008-04-02T19:20:04+00:00",
      "platform": "douban",
      "rating_scale": 10
    },
    {
      "id": "1347293",
      "url": "https://book.douban.com/review/1347293/",
      "subject_id": "2567698",
      "subject_name": "三体",
      "subject_type": "book",
      "title": ",外星人,躲在暗处",
      "text": "三个质量相同或相近的物体,会在引力作用下进行着无规律、永不重复的复杂运动。《三体》那本书里,半人马座的三颗星,就是“三体运动”中的“三体”,三颗恒星的光和热蕴育了一种智慧生命。\n只是,太阳有3颗,是件麻烦事儿——有时太热,有时又太冷。那里的人把太阳正常的时期叫恒纪元,其他都是乱纪元。乱纪元时候,休眠;恒纪元的时候,才能繁衍生息,文明才能发展。经常地,当预言师拿出一份万年历,认为一段长期的恒纪元即将开始时,居民刚刚结束休眠,乱纪元却忽然出现,文明毁灭于大火或冰冻中。前191次被毁灭的文明都试图找到一份准确的万年历,直到第192次被毁灭的文明时,人们才终于明…",
      "rating": 5,
      "rating_label": "力荐",
      "author_name": "•••",
      "author_url": "https://www.douban.com/•••",
      "author_avatar_url": "https://img2.doubanio.com/•••",
      "reply_count": 149,
      "posted_at": "2008-04-08T01:25:48+00:00",
      "platform": "douban",
      "rating_scale": 10
    }
  ],
  "count": 15,
  "billing": {
    "charged": …,
    "charged_usd": …,
    "balance_after_usd": …,
    …
  },
  "quota": { … }
}

Поля ответа

Бизнес-данные находятся в results. В таблице перечислены поля, которые может содержать запись; значения, которые платформа не показывает, никогда не выдумываются.

ПолеЗначение
idУникальный ID записи на платформе. Уникален только в пределах одной платформы; на разных платформах ID могут повторяться.
urlСсылка на запись на платформе.
subject_idТрактуется так же, как на самой платформе
subject_nameТрактуется так же, как на самой платформе
subject_typeТрактуется так же, как на самой платформе
titleЗаголовок. null, если на платформе нет заголовков (например, у текстовых постов).
textОсновной текст без HTML возвращается полностью и никогда не обрезается (на нескольких платформах результаты списковых запросов содержат только фрагмент; это указано в примечаниях к полям платформы).
ratingРейтинг. Шкала зависит от платформы: rating_scale в той же записи задаёт максимум (обычно 5; у Booking, Douban, iQIYI и NAVER — 10). Перед сравнением между платформами пересчитайте значения с учётом rating_scale, иначе результат сравнения может оказаться обратным.
rating_scaleМаксимальное значение rating в той же записи: 5 для пятизвёздочных шкал, 10 для десятибалльных. Поле присутствует, только если у записи есть рейтинг.
rating_labelТрактуется так же, как на самой платформе
author_nameОтображаемое имя автора.
author_urlСсылка на профиль автора на платформе.
author_avatar_urlТрактуется так же, как на самой платформе
reply_countОтветы, обычно на комментарий. null означает, что значение не раскрыто.
posted_atВремя публикации в ISO 8601, UTC (например, 2026-08-07T12:34:56+00:00). Нестандартные строки платформы передаются как есть, поэтому учитывайте это при разборе. null означает, что платформа его не раскрывает.
platformИдентификатор исходной платформы. Совпадает со значением platform в запросе (например, xiaohongshu, tiktok).

Ошибки и оплата

401
Ключ отсутствует или недействителен.
402
Недостаточно средств на балансе. Сначала пополните баланс.
422
Недопустимое имя или значение параметра. Исправьте запрос по подсказкам в сообщении об ошибке. Без списания.
429
Достигнут лимит запросов в минуту. Подождите указанное в Retry-After время, затем повторите попытку.
503
Не удалось выполнить. Зарезервированная сумма возвращается на баланс. Если результат неизвестен, проверьте его перед повторной попыткой.
200 (пусто)
Нет данных. Без списания.

Ошибки

Официальные источники

Используются только для проверки объектов и терминов. Они не означают, что платформа разрешила или одобрила работу EveryInfra.

  • Douban Movies: длинные рецензии, короткие отзывы и ограничения видимости ↗

    Douban Movies описывает рецензии и короткие отзывы на фильмы отдельно и отмечает, что в разделе коротких отзывов показаны не все короткие отзывы, а для свёрнутого контента действуют другие правила публичной видимости. Списки рецензий, которые возвращает этот эндпоинт, не следует считать полной историей или совокупностью всех мнений зрителей; этот источник не заменяет отдельных правил для книг и музыки.

    Проверено 2026-09-04