API Zhihu Поиск
Состояние API
- Состояние за 24 ч
- Норма
- Среднее время за 24 ч
- —
- Стабильно / норма
- Доступно
- Ограничено
- Почти недоступно
Последние 24 часа
Последние 30 дней
Узнайте, что пишут пользователи Zhihu на определённую тему, до 100 результатов за вызов. В результатах есть ответы, статьи и видео с голосами «за», комментариями, добавлениями в избранное и данными о квалификации авторов. Сужайте выборку через content_type и сортируйте через sort по релевантности, числу голосов «за» или новизне. type указывает вид каждой записи.
Возможность «Поиск Zhihu» находит ответы, статьи и видео на Zhihu по keyword и возвращает для каждой записи тип, заголовок, текст, число голосов «за», комментариев и добавлений в избранное, время публикации, а также никнейм автора, описание профиля, число подписчиков и метку верификации. Используйте её, чтобы узнать, что пользователи Zhihu говорят по вопросу и чьё мнение имеет вес: для исследования пользователей, изучения репутации продукта, планирования тем и поиска экспертов в предметной области.
Оставьте только ответы, статьи или видео с помощью content_type и задайте порядок через sort (общий, по числу голосов «за» или по новизне). type показывает, является ли запись ответом, статьёй или видео; у них разные форматы ссылок. author_verification_label описывает подтверждённую квалификацию автора, что полезно для отбора экспертных ответов.
Цена: $0.56 за 1 000 запросов ($0.000556 за вызов). Неудачные вызовы и пустые результаты не оплачиваются. Синхронный режим. Для долгих задач добавьте в тело запроса "mode": "async", получите job_id и опрашивайте статус.
Промпт для ИИ
Помогите мне написать скрипт для сбора данных через эндпоинт EveryInfra Zhihu Поиск (zhihu/search).
Как работает эндпоинт:
- Запрос: POST https://api.everyinfra.com/api/v1/social с заголовком Authorization: Bearer <API key>. Читайте ключ из переменной окружения EVERYINFRA_API_KEY и никогда не прописывайте его в коде.
- В теле запроса укажите platform: zhihu и action: search, а параметры передайте в params.
- Обязательные параметры:
- keyword: Поисковый запрос по контенту для действия search на Zhihu. Не передавайте в этот параметр URL контента, имена авторов или ссылки на профили.
- Необязательные параметры:
- content_type: Фильтрует тип контента для действия search. Допустимые значения: all (по умолчанию), answer, article и video. Параметр сужает выборку, но не меняет схему ответа. (допустимые значения: all / answer / article / video)
- sort: Порядок результатов поиска. Допустимые значения: general (по умолчанию), upvote_count_descending (больше всего голосов «за») и time_descending (сначала новые публикации). (допустимые значения: general / time_descending / upvote_count_descending)
- limit: Максимальное число записей в этом вызове, целое число от 1 до 100. Если параметр не указан, применяется значение по умолчанию; вызов может вернуть меньше записей. (по умолчанию: 20)
- Возвращает список записей. Основные поля каждой записи: id, type, url, title, text, like_count, comment_count, collect_count, posted_at, cover_image_url (URL обложки), author_id, author_name; всего полей: 18, полный список: https://api.everyinfra.com/api/v1/social/catalog?platform=zhihu.
- Пример тела запроса:
{
"platform": "zhihu",
"action": "search",
"params": {
"keyword": "如何学习摄影"
}
}
- Цена: $0.56 за 1 000 запросов; неудачные и пустые результаты не оплачиваются.
- Для десятков или сотен целей добавьте в тело запроса "mode": "async": вы сразу получите job_id и сможете опрашивать GET https://api.everyinfra.com/api/v1/jobs/{job_id}, чтобы получить результат.
- При ответе 422 исправьте запрос, используя предложенные в ошибке имена параметров и допустимые значения; при ответе 429 или 503 подождите указанное в Retry-After время и повторите попытку.
Прежде чем писать код, спросите меня, какие цели мне нужны, сколько их будет, какие поля мне нужны и в каком формате вывести результат; затем согласуйте со мной план и примерную стоимость.Параметры запроса
| Имя | Расположение | Тип | Обязательный | По умолчанию | Описание |
|---|---|---|---|---|---|
Authorization | header | string | Да | - | Укажите Bearer, а после него — ваш API-ключ. Создайте ключ в консоли; никогда не указывайте его в URL и не храните в репозитории кода. |
platform | body | string | Да | zhihu | Идентификатор платформы, фиксированное значение. |
action | body | string | Да | search | Идентификатор возможности, фиксированное значение. |
keyword | body.params | string | Да | - | Поисковый запрос по контенту для действия search на Zhihu. Не передавайте в этот параметр URL контента, имена авторов или ссылки на профили. |
content_type | body.params | string (enum) | Нет | - | Фильтрует тип контента для действия search. Допустимые значения: all (по умолчанию), answer, article и video. Параметр сужает выборку, но не меняет схему ответа.Допустимые значенияallanswerarticlevideo |
sort | body.params | string (enum) | Нет | - | Порядок результатов поиска. Допустимые значения: general (по умолчанию), upvote_count_descending (больше всего голосов «за») и time_descending (сначала новые публикации).Допустимые значенияgeneraltime_descendingupvote_count_descending |
limit | body.params | integer (1–100) | Нет | 20 | Максимальное число записей в этом вызове, целое число от 1 до 100. Если параметр не указан, применяется значение по умолчанию; вызов может вернуть меньше записей. При значениях выше максимума эндпоинт возвращает ошибку 422 до списания средств. |
Примеры кода
curl -X POST 'https://api.everyinfra.com/api/v1/social' \
-H "Authorization: Bearer $EVERYINFRA_API_KEY" \
-H 'Content-Type: application/json' \
--data-raw '{
"platform": "zhihu",
"action": "search",
"params": {
"keyword": "如何学习摄影"
}
}'Спецификация OpenAPI (JSON)Примеры читают ключ из переменной окружения EVERYINFRA_API_KEY; скопированный код никогда не содержит ваш ключ.
Пример ответа
Получено September 26, 2026 at 08:56 (UTC) вызовом этого API с параметрами из примера кода выше. results и count — реальный ответ этого вызова, из которого удалены персональные данные (имена, никнеймы, аватары, ссылки на профили, контакты); в списке оставлены первые 2. id, billing и quota меняются при каждом вызове, поэтому показана только их структура.
{
"id": "req_…",
"platform": "zhihu",
"action": "search",
"results": [
{
"id": "•••",
"type": "answer",
"url": "https://www.zhihu.com/question/1920106849895679845/answer/2031448129422218730",
"title": "新手小白如何系统的学习摄影?",
"text": "也最有效。至于课程,先学《摄影基础》,再补《大学摄影基础》或《新闻摄影》,边学边拍,别把自己学成一个只会收藏课程的摄影旁观者",
"like_count": 208,
"comment_count": 12,
"collect_count": 599,
"posted_at": "2026-04-25T11:02:56+00:00",
"cover_image_url": "https://picx.zhimg.com/80/v2-c4ec584ba597667997b8c2cde7c6616d_qhd.jpg?source=4e949a73",
"platform": "zhihu",
"author_id": "•••",
"author_name": "•••",
"author_url": "https://www.zhihu.com/•••",
"author_avatar_url": "https://picx.zhimg.com/•••",
"author_bio": "•••",
"author_follower_count": 1703,
"author_verified": true,
"author_verification_label": "视觉中国500px总经理、国家地理摄影大赛评委"
},
{
"id": "•••",
"type": "answer",
"url": "https://www.zhihu.com/question/36095338/answer/1982462290939880115",
"title": "新手如何系统性地学习摄影?",
"text": "除非你干婚庆,爱好者不需要“系统性”学习摄影。 第二,提升摄影水平的最好的方式就是去拍那些你能在社交媒体(微信朋友圈/微博/小红书)获得夸奖的图",
"like_count": 49,
"comment_count": 16,
"collect_count": 35,
"posted_at": "2025-12-11T06:50:42+00:00",
"platform": "zhihu",
"author_id": "•••",
"author_name": "•••",
"author_url": "https://www.zhihu.com/•••",
"author_avatar_url": "https://picx.zhimg.com/•••",
"author_bio": "•••",
"author_follower_count": 259,
"author_verified": false,
"author_verification_label": ""
}
],
"count": 20,
"billing": {
"charged": …,
"charged_usd": …,
"balance_after_usd": …,
…
},
"quota": { … }
}Поля ответа
Бизнес-данные находятся в results. В таблице перечислены поля, которые может содержать запись; значения, которые платформа не показывает, никогда не выдумываются.
| Поле | Значение |
|---|---|
id | Уникальный ID записи на платформе. Уникален только в пределах одной платформы; на разных платформах ID могут повторяться. |
type | Тип записи; значения зависят от возможности (например, video / image / text). |
url | Ссылка на запись на платформе. |
title | Заголовок. null, если на платформе нет заголовков (например, у текстовых постов). |
text | Основной текст без HTML возвращается полностью и никогда не обрезается (на нескольких платформах результаты списковых запросов содержат только фрагмент; это указано в примечаниях к полям платформы). |
like_count | Лайки. null означает, что платформа или эта возможность не раскрывает значение; это не 0. |
comment_count | Комментарии. null означает, что значение не раскрыто, а не 0. |
collect_count | Сохранения или добавления в избранное. null означает, что значение не раскрыто, а не 0. |
posted_at | Время публикации в ISO 8601, UTC (например, 2026-08-07T12:34:56+00:00). Нестандартные строки платформы передаются как есть, поэтому учитывайте это при разборе. null означает, что платформа его не раскрывает. |
cover_image_url | URL обложки. |
platform | Идентификатор исходной платформы. Совпадает со значением platform в запросе (например, xiaohongshu, tiktok). |
author_id | Уникальный ID автора на платформе. |
author_name | Отображаемое имя автора. |
author_url | Ссылка на профиль автора на платформе. |
author_avatar_url | URL аватара автора; в результатах комментариев — аватар комментатора. |
author_bio | Описание профиля автора в том виде, в каком оно указано на Zhihu. |
author_follower_count | Число подписчиков автора. null означает, что значение не раскрыто. |
author_verified | Верифицирован ли автор. |
author_verification_label | Описание верификации автора, например профессия или организация. |
FAQ
Как получить только ответы с наибольшим числом голосов «за»?
Задайте для content_type значение answer, чтобы получить только ответы, а для sort — upvote_count_descending, чтобы отсортировать их по числу голосов «за»; like_count в каждой записи — это число голосов «за». Смотрите его вместе с comment_count, чтобы находить ответы, вызвавшие дискуссию.
Может ли keyword быть ссылкой на вопрос?
Нет. keyword — поисковый запрос, а не ссылка на контент, никнейм автора или ссылка на профиль. Если у вас уже есть ссылка на ответ, статью или видео, используйте возможность «Сведения о контенте Zhihu»; страницы вопросов она не принимает.
Как найти авторов, чьё мнение имеет вес?
Проверьте author_verified и квалификацию в author_verification_label, затем оцените author_follower_count и число голосов «за» у ответов автора. Стоит следить за авторами с подтверждённой квалификацией в предметной области, чьи ответы набирают много голосов «за».
Ошибки и оплата
- 401
- Ключ отсутствует или недействителен.
- 402
- Недостаточно средств на балансе. Сначала пополните баланс.
- 422
- Недопустимое имя или значение параметра. Исправьте запрос по подсказкам в сообщении об ошибке. Без списания.
- 429
- Достигнут лимит запросов в минуту. Подождите указанное в Retry-After время, затем повторите попытку.
- 503
- Не удалось выполнить. Зарезервированная сумма возвращается на баланс. Если результат неизвестен, проверьте его перед повторной попыткой.
- 200 (пусто)
- Нет данных. Без списания.
Официальные источники
Используются только для проверки объектов и терминов. Они не означают, что платформа разрешила или одобрила работу EveryInfra.
- Zhihu: права на ответы и статьи, а также правила их использования ↗
Соглашение Zhihu выделяет оригинальный пользовательский контент, такой как ответы и статьи, и требует отдельного разрешения автора на его перепубликацию за пределами платформы; оно также ограничивает автоматизированный сбор и использование контента. Чтение контента через этот API не означает получения разрешения платформы или прав на использование контента.
Проверено 2026-09-04