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

API Zhihu Статьи пользователя

POST

Состояние API

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

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

Возможность Zhihu User articles выводит материалы, опубликованные одним автором, по ссылке на его профиль в url. Каждая запись содержит тип, заголовок, полный текст, число лайков, комментариев и добавлений в избранное, время публикации, обложку и ссылку, а также имя автора, описание профиля, число подписчиков и статус верификации на момент вызова. Исследователи и PR-команды используют её, чтобы изучить работы эксперта, прежде чем цитировать его или нанимать, следить за тем, что пишет представитель конкурента, или собирать длинные тексты по отрасли для анализа.

text приходит целиком и без HTML, так что список уже содержит полный текст каждого материала. Поля автора фиксируются при каждом вызове, поэтому, если сохранять их с датой, вы получите историю роста подписчиков и изменений верификации. Сортируйте записи по posted_at, чтобы получить хронологию, или по like_count и collect_count, чтобы увидеть, какие материалы читатели оценили и сохранили.

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

Промпт для ИИ

Помогите мне написать скрипт для сбора данных через эндпоинт EveryInfra Zhihu Статьи пользователя (zhihu/user_articles).

Как работает эндпоинт:
- Запрос: POST https://api.everyinfra.com/api/v1/social с заголовком Authorization: Bearer <API key>. Читайте ключ из переменной окружения EVERYINFRA_API_KEY и никогда не прописывайте его в коде.
- В теле запроса укажите platform: zhihu и action: user_articles, а параметры передайте в params.
- Обязательные параметры:
  - url: URL контента или профиля, обязательный для соответствующих действий. content_detail и content_comments принимают ссылки на ответы, статьи или видео (страницы вопросов не поддерживаются).
- Необязательные параметры:
  - 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": "user_articles",
  "params": {
    "url": "https://www.zhihu.com/people/zhihuadmin"
  }
}
- Цена: $0.56 за 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ДаzhihuИдентификатор платформы, фиксированное значение.
actionbodystringДаuser_articlesИдентификатор возможности, фиксированное значение.
urlbody.paramsstringДа-URL контента или профиля, обязательный для соответствующих действий. content_detail и content_comments принимают ссылки на ответы, статьи или видео (страницы вопросов не поддерживаются); profile и user_articles принимают ссылки на профили zhihu.com/people/.
limitbody.paramsinteger (1–100)Нет20Максимальное число записей в этом вызове, целое число от 1 до 100. Если параметр не указан, применяется значение по умолчанию; вызов может вернуть меньше записей. При значениях выше максимума эндпоинт возвращает ошибку 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": "zhihu",
  "action": "user_articles",
  "params": {
    "url": "https://www.zhihu.com/people/zhihuadmin"
  }
}'

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

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

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

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

json
{
  "id": "req_…",
  "platform": "zhihu",
  "action": "user_articles",
  "results": [
    {
      "id": "•••",
      "url": "https://zhuanlan.zhihu.com/p/2096920883935851275",
      "title": "知乎关于持续强化“自媒体”创作者信息来源标注的公告",
      "text": "为切实维护平台健康有序、真实可靠的内容生态秩序,充分保障广大网民依法获取真实、准确、有效信息的合法权益,知乎严格落实中央网信办关于规范信息来源标注、加强内容标识提示、强化信息真实性管理相关工作部署要求,切实履行平台主体责任,持续加强站内“…",
      "like_count": 36,
      "comment_count": 5,
      "collect_count": 6,
      "posted_at": "2026-10-23T03:08:59+00:00",
      "platform": "zhihu",
      "author_id": "•••",
      "author_name": "•••",
      "author_url": "https://www.zhihu.com/people/zhihuadmin",
      "author_avatar_url": "https://picx.zhimg.com/•••",
      "author_bio": "•••",
      "author_verified": true,
      "author_verification_label": "知乎 官方账号"
    },
    {
      "id": "•••",
      "url": "https://zhuanlan.zhihu.com/p/2096918782090523453",
      "title": "关于开展「清朗·整治AI技术滥用」专项行动的社区公告",
      "text": "维护和谐、健康的网络生态,营造认真、专业、友善的社区氛围,保障用户的内容创作和讨论环境,知乎积极响应「清朗·整治AI技术滥用」专项行动要求,切实开展对各类AI技术滥用的违规行为的全面整治工作。重点整治如下: 从严打击利用AI 制作发布社会谣言、不…",
      "like_count": 4,
      "comment_count": 0,
      "collect_count": 1,
      "posted_at": "2026-10-23T03:01:54+00:00",
      "platform": "zhihu",
      "author_id": "•••",
      "author_name": "•••",
      "author_url": "https://www.zhihu.com/people/zhihuadmin",
      "author_avatar_url": "https://picx.zhimg.com/•••",
      "author_bio": "•••",
      "author_verified": true,
      "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_urlURL обложки.
platformИдентификатор исходной платформы. Совпадает со значением platform в запросе (например, xiaohongshu, tiktok).
author_idУникальный ID автора на платформе.
author_nameОтображаемое имя автора.
author_urlСсылка на профиль автора на платформе.
author_avatar_urlURL аватара автора; в результатах комментариев — аватар комментатора.
author_bioОписание профиля автора в том виде, в каком оно указано на Zhihu.
author_follower_countЧисло подписчиков автора. null означает, что значение не раскрыто.
author_verifiedВерифицирован ли автор.
author_verification_labelОписание верификации автора, например профессия или организация.

FAQ

Какую ссылку передавать в url?

Ссылку на профиль автора: https://www.zhihu.com/people/ и далее сегмент с именем из адресной строки, как в примере zhihuadmin на этой странице. Ссылка на отдельный ответ или статью указывает на контент, а не на человека; такая ссылка подходит для возможностей Zhihu Content detail и Content comments.

Можно ли прочитать комментарии к одной из этих статей?

Да. Передайте url записи в возможность Zhihu Content comments, которая принимает ссылки на статьи, а оживлённые ветки раскрывайте с помощью Zhihu Comment replies. comment_count в каждой записи показывает, для каких статей стоит делать этот второй вызов.

Заменяют ли поля автора запрос профиля?

Часто да: каждая запись повторяет имя автора, описание профиля, число подписчиков, а также наличие и вид верификации на момент вызова. Если нужен только профиль, без статей, вызовите возможность Zhihu Details с той же ссылкой на профиль.

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

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

Ошибки

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

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