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

API Lemmy Поиск

POST

Состояние API

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

Ищите посты Lemmy на одном инстансе по keyword: сообщество, автор, рейтинг, голоса за и против, число комментариев, внешняя ссылка и флаги NSFW, блокировки и закрепления. Поиск идёт на выбранном instance, по умолчанию lemmy.world, и не охватывает весь федиверс.

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

Промпт для ИИ

Помогите мне написать скрипт для сбора данных через эндпоинт EveryInfra Lemmy Поиск (lemmy/search).

Как работает эндпоинт:
- Запрос: POST https://api.everyinfra.com/api/v1/social с заголовком Authorization: Bearer <API key>. Читайте ключ из переменной окружения EVERYINFRA_API_KEY и никогда не прописывайте его в коде.
- В теле запроса укажите platform: lemmy и action: search, а параметры передайте в params.
- Обязательные параметры:
  - keyword: Поисковый запрос для действия search в Lemmy. Поиск выполняется на указанном инстансе, полный поиск по всем федеративным инстансам не гарантируется.
- Необязательные параметры:
  - instance: Выбирает домен инстанса Lemmy, например lemmy.world (он же используется по умолчанию). Полный URL инстанса тоже принимается, но сокращается до имени хоста. Определяет точку входа для запроса, а не название сообщества.
  - sort: Сортирует публикации: hot, active, new, top, most_comments или new_comments. По умолчанию используется hot для search и community, active для feed и most_comments для comments. (допустимые значения: active / hot / most_comments / new / new_comments / top)
  - top_range: Задаёт период подсчёта рейтинга, только если sort равен top: hour, sixhour, twelvehour, day, week (по умолчанию), month, threemonths, sixmonths, ninemonths, year или all. Это не фильтр по дате публикации комментариев. (допустимые значения: all / day / hour / month / ninemonths / sixhour / sixmonths / threemonths)
  - limit: Максимальное число записей в этом вызове, целое число от 1 до 200. Если параметр не указан, применяется значение по умолчанию; вызов может вернуть меньше записей. (по умолчанию: 20)
- Возвращает список записей. Основные поля каждой записи: id, title, body, url, external_url, community, community_url, instance, author_username, author_url, score, upvote_count; всего полей: 21, полный список: https://api.everyinfra.com/api/v1/social/catalog?platform=lemmy.
- Пример тела запроса:
{
  "platform": "lemmy",
  "action": "search",
  "params": {
    "keyword": "self hosting"
  }
}
- Цена: $1.39 за 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ДаlemmyИдентификатор платформы, фиксированное значение.
actionbodystringДаsearchИдентификатор возможности, фиксированное значение.
keywordbody.paramsstringДа-Поисковый запрос для действия search в Lemmy. Поиск выполняется на указанном инстансе, полный поиск по всем федеративным инстансам не гарантируется.
instancebody.paramsstringНет-Выбирает домен инстанса Lemmy, например lemmy.world (он же используется по умолчанию). Полный URL инстанса тоже принимается, но сокращается до имени хоста. Определяет точку входа для запроса, а не название сообщества.
sortbody.paramsstring (enum)Нет-Сортирует публикации: hot, active, new, top, most_comments или new_comments. По умолчанию используется hot для search и community, active для feed и most_comments для comments.Допустимые значенияactivehotmost_commentsnewnew_commentstop
top_rangebody.paramsstring (enum)Нет-Задаёт период подсчёта рейтинга, только если sort равен top: hour, sixhour, twelvehour, day, week (по умолчанию), month, threemonths, sixmonths, ninemonths, year или all. Это не фильтр по дате публикации комментариев.Допустимые значенияalldayhourmonthninemonthssixhoursixmonthsthreemonthstwelvehourweekyear
limitbody.paramsinteger (1–200)Нет20Максимальное число записей в этом вызове, целое число от 1 до 200. Если параметр не указан, применяется значение по умолчанию; вызов может вернуть меньше записей. При значениях выше максимума эндпоинт возвращает ошибку 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": "lemmy",
  "action": "search",
  "params": {
    "keyword": "self hosting"
  }
}'

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

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

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

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

json
{
  "id": "req_…",
  "platform": "lemmy",
  "action": "search",
  "results": [
    {
      "id": "81293",
      "title": "'Every Taxpayer... Should Be Outraged': Anger Spreads Over 'Illegal' US-Funded Pro-Trump Ad",
      "body": "![](https://www.commondreams.org/media-library/a-screenshot-of-trump-s-love-me-ad-shows-him-standing-before-hundreds-of-troops-in-a-red-maga-hat.png?id=67857926&width=1200&height=400&coordinates=0%2C148%2C0%2C235)  \n  \n\nOutrage mounted Friday over a taxpayer-funded television adv…",
      "url": "https://news.abolish.capital/post/81293",
      "external_url": "https://www.commondreams.org/news/trump-taxpayer-funded-propaganda",
      "community": "pravda_news",
      "community_url": "https://news.abolish.capital/c/pravda_news",
      "instance": "lemmy.world",
      "author_username": "•••",
      "author_url": "https://news.abolish.capital/•••",
      "score": 23,
      "upvote_count": 23,
      "downvote_count": 0,
      "comment_count": 0,
      "thumbnail_url": "https://lemmy.world/pictrs/image/5f73fc38-2c80-456a-984b-ea8f0f1c03a5.png",
      "embed_title": "'Every Taxpayer... Should Be Outraged': Anger Spreads Over 'Illegal' US-Funded Pro-Trump Ad | Common Dreams",
      "is_nsfw": false,
      "is_locked": false,
      "is_featured": false,
      "posted_at": "2026-09-25T19:21:32.337190+00:00",
      "platform": "lemmy"
    },
    {
      "id": "45972083",
      "title": "Thoughts on Vikunja and the tension between self-hosting, ownership, and corporate branding",
      "body": "cross-posted from:  https://discuss.online/post/45939555\n\n> See [my post on their forum](https://community.vikunja.io/t/the-tension-between-self-hosting-ownership-and-corporate-branding/5110/1), which I hope is well received.",
      "url": "https://discuss.online/post/45972083",
      "external_url": "https://community.vikunja.io/t/the-tension-between-self-hosting-ownership-and-corporate-branding/5110/1",
      "community": "selfhosted",
      "community_url": "https://lemmy.world/c/selfhosted",
      "instance": "lemmy.world",
      "author_username": "•••",
      "author_url": "https://discuss.online/•••",
      "score": 9,
      "upvote_count": 12,
      "downvote_count": 3,
      "comment_count": 3,
      "thumbnail_url": "https://lemmy.world/pictrs/image/3c6d53ab-8c3b-4818-8d02-4f7b70943fed.png",
      "embed_title": "The Tension Between Self-Hosting, Ownership, and Corporate Branding",
      "is_nsfw": false,
      "is_locked": false,
      "is_featured": false,
      "posted_at": "2026-09-25T17:05:38.204140+00:00",
      "platform": "lemmy"
    }
  ],
  "count": 20,
  "billing": {
    "charged": …,
    "charged_usd": …,
    "balance_after_usd": …,
    …
  },
  "quota": { … }
}

Поля ответа

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

ПолеЗначение
idУникальный ID записи на платформе. Уникален только в пределах одной платформы; на разных платформах ID могут повторяться.
titleЗаголовок. null, если на платформе нет заголовков (например, у текстовых постов).
bodyТрактуется так же, как на самой платформе
urlСсылка на запись на платформе.
external_urlТрактуется так же, как на самой платформе
communityТрактуется так же, как на самой платформе
community_urlТрактуется так же, как на самой платформе
instanceТрактуется так же, как на самой платформе
author_usernameИмя пользователя автора (@handle), обычно подходит для URL.
author_urlСсылка на профиль автора на платформе.
scoreТрактуется так же, как на самой платформе
upvote_countТрактуется так же, как на самой платформе
downvote_countТрактуется так же, как на самой платформе
comment_countКомментарии. null означает, что значение не раскрыто, а не 0.
thumbnail_urlСсылка на миниатюру с более низким разрешением, чем у image_url.
embed_titleТрактуется так же, как на самой платформе
is_nsfwТрактуется так же, как на самой платформе
is_lockedТрактуется так же, как на самой платформе
is_featuredТрактуется так же, как на самой платформе
posted_atВремя публикации в ISO 8601, UTC (например, 2026-08-07T12:34:56+00:00). Нестандартные строки платформы передаются как есть, поэтому учитывайте это при разборе. null означает, что платформа его не раскрывает.
updated_atТрактуется так же, как на самой платформе
platformИдентификатор исходной платформы. Совпадает со значением platform в запросе (например, xiaohongshu, tiktok).

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

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

Ошибки

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

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

  • Lemmy: видимость в инстансе не равна всему федиверсу ↗

    Официальные руководства для новичков поясняют, что инстансами управляют разные операторы: при обычном просмотре видны только сообщества, известные локальному инстансу, а объекты с других инстансов нужно находить отдельно. Этот контекст поясняет, какие данные видны с точки зрения отдельного инстанса и как устроены объекты публикаций, но не переносит полную функциональность веб-поиска в параметры шлюза.

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