Один аккаунт для данных, поиска, решения капчи и бесплатного API для ИИ
EveryInfra предоставляет 573 возможностей для сбора данных на 106 платформах, 17 инструментов поиска, поддержку 52 типов капчи и OpenAI-совместимый API для ИИ, который становится бесплатным после пополнения баланса. У каждого продукта свой эндпоинт, права доступа и формат запроса.
- Публичные каталоги доступны без API-ключа.
- Для эндпоинтов с аутентификацией используется API-ключ по схеме Bearer.
- MCP и REST используют одни и те же возможности, параметры и ответы.
Быстрый старт
Отправьте реальный запрос
Создайте API-ключ в консоли, изучите нужный каталог и передайте идентификатор платформы или возможности точно в том виде, в каком он указан. Ответ содержит структурированные данные и сведения об оплате этого запроса.
- Укажите
Authorization: Bearer YOUR_API_KEY. - Для тела запроса в формате JSON укажите
Content-Type: application/json. - Используйте идентификаторы и имена параметров из каталога точно в том виде, в каком они возвращаются.
- Для медленных задач, больших лимитов или пакетов передайте в теле запроса
"mode":"async": вы сразу получитеjob_idи сможете запрашивать результат черезGET /api/v1/jobs/{job_id}. Синхронный запрос должен завершиться за 85 с; на асинхронную задачу это ограничение не распространяется.
curl -X POST https://api.everyinfra.com/api/v1/social \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"platform":"tiktok","action":"search","params":{"keyword":"AI infrastructure","limit":10}}'
{ "id": "…", "platform": "tiktok", "action": "search", "results": [ { "id": "…", "text": "…", "author_username": "…" } ], "count": 10, "billing": { "charged": true, "charged_usd": 0.000556, "balance_after_usd": 12.340122 } }
Найдите поддерживаемые задачи в публичных каталогах
По каталогам можно проверить поддерживаемые задачи, входные данные, цены и доступность. Компактный каталог EveryData содержит главное о каждом действии; необязательные параметры, лимиты и поля ответа смотрите в полном каталоге. Обновляйте цены и доступность по мере необходимости, а не прописывайте их в коде.
| Продукт | Эндпоинт каталога | Что описывает |
|---|---|---|
| EveryData | GET /api/v1/social/catalog?compact=1 | Платформы, действия, обязательные параметры, режимы получения результатов, доступность и цены |
| EverySearch | GET /api/v1/search/tools | Инструменты поиска, параметры запроса, тарифные уровни и цены |
| EverySolve | GET /api/v1/captcha/types | Типы капчи, параметры, форматы решений, доступность и цены |
| API для ИИ | GET /api/v1/models | Модели, которые сейчас поддерживает API для ИИ; API-ключ не нужен |
Аутентификация
Передавайте API-ключ как Bearer-токен. Аутентификация выполняется до проверки параметров, поэтому на запрос без действительного ключа вернётся 401, а не сообщение об ошибках в параметрах. Не размещайте ключи в браузерном коде, логах и публичных репозиториях.
- Создавайте отдельные ключи для разных окружений и нагрузок.
- Перевыпускайте ключ в консоли, когда меняется его область действия или он мог оказаться в чужих руках.
- Если ключ должен работать только с определёнными продуктами, возможностями или диапазонами IP, задайте ограничения в консоли.
- С тем же ключом запрос
GET /api/v1/accountпоказывает баланс (основной, бонусный и общий), скидку на пополнение в этом месяце, лимит запросов в минуту и использование за последние 24 часа. Суммы указаны в USD. Вызов только читает данные, бесплатен и не учитывается в лимите запросов в минуту. - В этом ответе
balance.total_usd— сумма основного и бонусного баланса; плата за вызовы сначала списывается с бонусного баланса.bonus_expiringсодержит бонусные суммы с ограниченным сроком действия, который ещё не истёк.rate_limit.requests_per_minute— общий лимит для всех ключей аккаунта, аusage_24hможет отставать примерно на минуту. - С помощью того же ключа можно получать через API консоли историю по всему аккаунту: статистику использования по дням, недавние вызовы, данные об оплате и журнал операций кошелька. Например, используйте
GET /portal/api/requests/{request_id}илиGET /portal/api/quality, который показывает долю успешных запросов и задержку для каждой возможности. Ключу нужен доступ на чтение аккаунта; эти запросы бесплатны, а их лимит составляет 60 в минуту на аккаунт. Полный список приведён в разделе Account спецификации OpenAPI. - Чтобы ИИ мог и изменять аккаунт, выдайте права на запись в разделе «API-ключи → Ограничить доступ»: управление ключами, изменение настроек, создание обращений и ответы на них. Все три права по умолчанию выключены, и включить их можете только вы после входа в консоль. Через ключ можно создать не больше 20 ключей в день, а на обращения дневного лимита нет; просмотр полных значений ключей и их перевыпуск, изменение прав или списков разрешённых IP, повторное включение ключей и платежи всегда доступны только в консоли. Эндпоинты перечислены в разделе Account спецификации OpenAPI, например
POST /portal/api/keys/{key_id}/disable. - Чтобы не опрашивать API, добавьте HTTPS-эндпоинт в разделе «Настройки → Вебхуки» консоли. Мы отправляем подписанный POST-запрос, когда баланс опускается до заданного вами порога или завершается асинхронная задача. Проверяйте
X-EveryInfra-Signature: это HMAC-SHA256 от метки времени, точки и необработанного тела запроса, вычисленный с помощью вашего секрета подписи. Отклоняйте метки времени, отличающиеся больше чем на 5 минут, и устраняйте дубликаты по ID события. Неудавшуюся доставку мы повторяем с увеличивающейся задержкой, всего до 7 попыток.
Этот ключ даёт доступ ко всем четырём продуктам с общим кошельком
curl https://api.everyinfra.com/api/v1/account \ -H "Authorization: Bearer YOUR_API_KEY"
POST /api/v1/social
EveryData
Собирайте данные с 106 платформ с помощью 573 поддерживаемых действий. Выберите платформу и действие, затем передайте входные данные, указанные для этого действия.
GET /api/v1/social/catalog?compact=1
POST /api/v1/search
EverySearch
Выберите один из 17 инструментов для поиска в интернете и получения текста источников. Укажите идентификатор инструмента и передайте его обязательные входные данные.
GET /api/v1/search/tools
POST /api/v1/captcha
EverySolve
Решайте капчу 52 типов через один эндпоинт. Укажите поле type и передайте обязательные входные данные. Оплачиваются только успешные решения.
GET /api/v1/captcha/types
POST /api/v1/chat/completions
API для ИИ
OpenAI-совместимый API для ИИ с интерфейсом chat/completions. Он бесплатен для аккаунтов, баланс которых пополняли. Используйте его, чтобы очищать, классифицировать, извлекать и резюмировать собранные данные.
GET /api/v1/models
Проверяйте параметры запроса
При передаче неизвестных параметров возвращается ошибка 422 со списком поддерживаемых параметров и, если возможно, подсказкой с наиболее похожим именем. При недопустимом значении enum возвращается список разрешённых значений. Параметры не игнорируются и не заменяются значениями по умолчанию без предупреждения.
- Используйте имена параметров из каталога в формате snake_case.
- Считайте
did_you_meanподсказкой для исправления, а не признаком успешной автоматической подстановки. - Для входных данных с несколькими целями изучите правила оплаты и лимитов в каталоге, прежде чем отправлять массив.
Справочник API
Все платформы (106) и API (573), сгруппированные по категориям. Откройте платформу, чтобы увидеть обзор, или API, чтобы посмотреть параметры, поля ответа и примеры кода.
Электронная коммерцияПлатформ: 15 · API: 58
- 16883 API
- AliExpress6 API
- Amazon10 API
- Craigslist1 API
- Dewu1 API
- eBay5 API
- Etsy5 API
- Google Shopping1 API
- JD.com7 API
- Shopee4 API
- Taobao5 API
- Temu2 API
- ThomasNet2 API
- Walmart4 API
- Xianyu2 API
Соцсети и контентПлатформ: 51 · API: 389
- Behance2 API
- Bilibili8 API
- Bluesky5 API
- Dailymotion6 API
- DeviantArt4 API
- Discord4 API
- Douban4 API
- Douyin37 API
- Поиск
- Сведения
- Посты пользователя
- Сведения о видео
- Комментарии
- Ответы на комментарии
- Тренды
- Расшифровка
- Поиск авторов
- Аудитория автора
- Динамика роста автора
- Сравнение автора с аналогами
- Поиск авторов в Xingtu
- Аналитика автора в Xingtu
- Прайс автора в Xingtu
- Рейтинги авторов в Xingtu
- Поиск товаров
- Сведения о товаре
- Поиск товаров в эфирах
- Поиск по хештегам
- Сведения о хештеге
- Рейтинг популярных видео
- Рейтинг хитов авторов с небольшим числом подписчиков
- Рейтинг видео с высоким процентом досмотров
- Рейтинг популярных запросов
- Поиск аккаунтов в Hot Spot
- Поиск музыки
- Поисковые подсказки
- Рейтинг по росту популярности
- Рейтинг популярных челленджей
- Рейтинг популярных тем
- Сведения о музыке
- Конверсионный потенциал автора в Xingtu
- Структура охваченной аудитории в Xingtu
- Рекомендованные видео в Xingtu
- Источники охвата пользователей в Xingtu
- Эффективность видео в Xingtu
- Dribbble3 API
- Eventbrite1 API
- Facebook16 API
- Flickr2 API
- Gab4 API
- GitHub9 API
- Instagram18 API
- iQIYI3 API
- Kuaishou12 API
- Lemmy4 API
- LinkedIn11 API
- Mastodon5 API
- Medium3 API
- Naver4 API
- NetEase Cloud Music3 API
- Odysee4 API
- Patreon4 API
- Pinterest7 API
- Product Hunt4 API
- Quora6 API
- Reddit8 API
- Rumble6 API
- Snapchat4 API
- SoundCloud6 API
- Spotify7 API
- Substack7 API
- Telegram6 API
- Threads7 API
- TikTok24 API
- Поиск
- Сведения
- Видео пользователя
- Сведения о видео
- Комментарии
- Хештег
- Подписчики
- Расшифровка
- Поиск товаров в Shop
- Сведения об авторе в Shop
- Поиск по хештегам
- Поиск музыки
- Музыкальный чарт
- Поиск аккаунтов
- Видео с этим звуком
- Ответы на комментарии
- Хиты продаж в Shop
- Товары Shop по категориям
- Подписки
- Ссылки на скачивание видео
- Прямой эфир
- Товары магазина в Shop
- Отзывы о товарах Shop
- Трендовые хештеги
- Toutiao6 API
- Truth Social5 API
- Tumblr4 API
- Twitch6 API
- X (Twitter)21 API
- Поиск
- Сведения
- Посты пользователя
- Сведения о посте
- Комментарии
- Тренды
- Список подписчиков
- Список подписок
- Посты с медиа
- Вкладка «Ответы»
- Пользователи, сделавшие репост
- Профили по ID пользователей
- Об этом аккаунте
- Проверка подписки
- Проверка репоста
- Сведения о сообществе
- Поиск сообществ
- Поиск пользователей
- Расшифровка видео
- Ветка
- Посты сообщества
- VK2 API
- WeChat Channels5 API
- WeChat Official Accounts13 API
- Weibo11 API
- Xiaohongshu17 API
- Xing4 API
- Youku4 API
- YouTube8 API
- Zhihu15 API
Отзывы и локальные сервисыПлатформ: 23 · API: 86
Поиск и новостиПлатформ: 17 · API: 40
- Apple Maps1 API
- Bing1 API
- Bing Maps1 API
- Данные о компаниях4 API
- Данные криптовалютного рынка5 API
- Криптоновости2 API
- DuckDuckGo1 API
- DuckDuckGo Maps1 API
- Google Ads Transparency Center1 API
- Google News1 API
- Google Trends1 API
- Kalshi1 API
- Polymarket3 API
- SimilarWeb3 API
- SERP1 API
- Yahoo Finance10 API
- Yandex3 API
API для ИИ (бесплатно после пополнения баланса)
API для ИИ предоставляет OpenAI-совместимый интерфейс chat/completions. Любой аккаунт, баланс которого пополняли, может вызывать его бесплатно, не расходуя баланс, чтобы очищать, дедуплицировать, классифицировать, извлекать и резюмировать собранные данные; формат вывода задаётся в промпте.
- В OpenAI SDK задайте
base_urlравнымhttps://api.everyinfra.com/api/v1и передавайте API-ключ EveryInfra в заголовкеAuthorization: Bearer;?key=в URL отклоняется. - Эндпоинт чата —
POST /api/v1/chat/completions, формат запросов и ответов как у OpenAI. - Доступны две модели:
gemini-3.6-flash(по умолчанию) и более лёгкаяgemini-flash-lite.GET /api/v1/modelsвозвращает тот же список и не требует ключа. При опечатке в названии модели возвращается 422 с вероятным правильным названием. - Поддерживается потоковая передача: отправьте
stream: true, чтобы получать поток SSE, который завершаетсяdata: [DONE], и добавьтеstream_options.include_usage, чтобы получить данные о расходе токенов. - Общий объём
messages— до 45 000 символов; при превышении возвращается 422input_too_large, поэтому разбивайте данные на запросы меньшего размера.
from openai import OpenAI import os client = OpenAI(base_url="https://api.everyinfra.com/api/v1", api_key=os.environ["EVERYINFRA_API_KEY"]) reply = client.chat.completions.create( model="gemini-3.6-flash", messages=[{"role": "user", "content": "Верни только JSON: определи тональность, тему и намерение этого отзыва."}], ) print(reply.choices[0].message.content)
Лимиты по общей сумме пополнений, общие для всех ключей аккаунта
| Сумма пополнений | Запросов в минуту | Параллельных запросов |
|---|---|---|
| Пополнения на сумму меньше $100 | 50 | 5 |
| $100 и больше | 500 | 50 |
| $500 и больше | 5 000 | 500 |
Кредиты, полученные по кодам, и бонусные кредиты засчитываются как пополнения, если сумма каждого отдельного начисления превышает $1; пробные кредиты и суммы не более $1 не засчитываются. Если баланс аккаунта ни разу не пополняли и на него не начисляли по коду или в виде бонуса кредиты на сумму более $1, возвращается 403 ai_topup_required. Уровни задают верхние пределы.
| Статус | Значение |
|---|---|
| 403 ai_topup_required | Аккаунт ни разу не пополнял баланс; любое пополнение открывает доступ к API для ИИ. |
| 429 rate_limited | Достигнут лимит запросов в минуту (per_minute_limit) или одновременно выполняется слишком много запросов (concurrency_limit); подождите столько, сколько указано в Retry-After, затем повторите попытку. |
| 503 ai_busy | Сервис перегружен; повторите попытку по истечении времени, указанного в Retry-After. |
| 403 ai_disabled | API для ИИ приостановлен для этого аккаунта. |
| 422 unknown_model | Такой модели нет; в сообщении указано вероятное правильное название. |
API для ИИ предназначен для обработки данных, собранных с помощью EveryInfra. Если его используют для других целей или вызовы выглядят явно аномально, мы можем приостановить API для ИИ для этого аккаунта; сам аккаунт, его остальные API и баланс это не затрагивает.
MCP для ИИ-агентов
Используйте MCP, если совместимый клиент должен сам находить и вызывать инструменты EveryInfra. Инструменты охватывают данные, поиск, капчу и чат с ИИ через everyinfra_chat (бесплатно после пополнения баланса, без потоковой передачи) и подчиняются тем же правилам аутентификации, тарификации, лимитов, валидации и баланса, что и REST API.
- Укажите в клиенте URL удалённого сервера и API-ключ EveryInfra.
- Оба эндпоинта принимают один и тот же ключ:
https://api.everyinfra.com/mcpперечисляет основные инструменты (всего 12): данные, поиск, капчу и чат с ИИ, а также баланс, записи вызовов, ссылку на пополнение баланса и обращения в поддержку.https://api.everyinfra.com/mcp/allперечисляет все инструменты (всего 24); указанные ниже инструменты для просмотра данных аккаунта и управления им представлены в списке только этого эндпоинта. - Инструменты аккаунта теперь называются по схеме «глагол + объект» (например,
everyinfra_accountтеперь называетсяeveryinfra_get_account). Старые названия по-прежнему работают на обоих эндпоинтах, но больше не отображаются в списке, поэтому скрипты, которые их вызывают, менять не нужно. Чтобы пользоваться этими инструментами из ИИ-клиента, подключите коннектор к/mcp/all. - Перед вызовом инструментов данных, поиска или капчи запрашивайте список доступных возможностей.
- Храните API-ключ в секретах или переменных окружения клиента.
- Чтобы узнать баланс, скидку, лимит запросов в минуту и данные о недавнем использовании, вызовите бесплатный инструмент
everyinfra_get_accountбез аргументов. Он возвращает ту же сводку, что иGET /api/v1/account. - После вызова инструмента данных с
mode: "async"получите результат бесплатным инструментомeveryinfra_get_jobпо возвращённомуjob_id. Он возвращает те же данные, что иGET /api/v1/jobs/{job_id}. - Для записей аккаунта есть бесплатные инструменты
everyinfra_get_usage,everyinfra_list_requests,everyinfra_get_billing,everyinfra_list_keysиeveryinfra_list_tickets. Они возвращают ежедневное использование, недавние вызовы (найдите вызов по request_id, чтобы увидеть, как было рассчитано списание), расходы и журнал операций кошелька, список ключей и список обращений в поддержку. Для них у ключа должен быть доступ на чтение аккаунта. Ключи без ограничений по продуктовым линейкам по умолчанию могут читать использование, вызовы и тарификацию. Для ключей с ограничениями по продуктам и для доступа к обращениям это включается в консоли в разделе «API-ключи → Ограничить доступ». - Если на аккаунте не хватает средств,
everyinfra_get_topup_linkвозвращает страницу пополнения баланса в консоли. Оплачивает владелец аккаунта на этой странице; сам инструмент не создаёт платежей и ничего не списывает. - Если вызовы постоянно завершаются ошибкой, данные выглядят неверно, нужно проверить пополнение баланса или списание либо нужна новая платформа или поле, любой ключ может создать обращение к сотрудникам поддержки через
everyinfra_create_ticket. Это бесплатно и не требует дополнительных прав. Инструмент возвращает номер обращения и ссылку в консоль, аeveryinfra_get_ticketзатем показывает ход обращения и ответы поддержки. Через REST те же вызовы выполняются какPOST /api/v1/support/ticketsиGET /api/v1/support/tickets/{ticket_id}. Прежнийeveryinfra_ticket_create(требует права на запись) продолжает работать, но в новых интеграциях используйтеeveryinfra_create_ticket. - Когда владелец аккаунта выдаст ключу права на запись в консоли, ИИ сможет также использовать
everyinfra_create_key,everyinfra_update_key,everyinfra_disable_key,everyinfra_delete_key,everyinfra_update_settings,everyinfra_set_webhook,everyinfra_test_webhookиeveryinfra_reply_ticket. Ключ, созданный таким способом, никогда не получает более широких прав, чем вызывающий ключ, и никогда не получает прав на запись. Через эти инструменты ключи, созданные в консоли, можно только отключать. Каждое изменение отображается в уведомлениях консоли.
- Endpoint
- POST /mcp
- Транспорт
- Streamable HTTP, без сохранения состояния
- Инструменты
- Названия инструментов начинаются с
everyinfra_. Переименованные инструменты по-прежнему откликаются на старые названия, поэтому промпты и рабочие процессы продолжают работать.
Как использовать вместе с прокси IPFoxy
Для вызова API EveryInfra прокси не нужен. Запрос отправляется напрямую на api.everyinfra.com, а в ответ приходит JSON с именованными полями. С собственными программами всё иначе: если вашему краулеру или средству автоматизации браузера нужно открыть страницу так, как её видит пользователь из определённой страны, потребуется выходной IP-адрес в этой стране.
Всё просто: IPFoxy предоставляет вашим запросам другой выходной IP-адрес, а EveryInfra — структурированные данные для платформ из своего каталога.
| Задача | Что использовать |
|---|---|
| Открывать страницы, содержимое которых зависит от страны (локальные цены, доставка, размещение рекламы), или входить в собственный магазин и аккаунты | Прокси IPFoxy + ваш краулер или браузер |
| Собирать данные с сайтов или из полей, не представленных в каталоге API данных | Прокси IPFoxy + ваш краулер |
| Массово получать данные платформ из каталога для электронной таблицы или базы данных | API данных EveryInfra напрямую, без прокси |
Этот пример на Python выполняет оба шага в одном скрипте. На шаге 1 скрипт обращается к ipinfo.io через выходной IP-адрес IPFoxy и выводит страну этого IP-адреса. На шаге 2 он напрямую обращается к EveryInfra за данными об одном товаре Amazon. Перед запуском задайте две переменные окружения: EVERYINFRA_API_KEY — ваш API-ключ, а IPFOXY_PROXY — строка подключения из панели управления IPFoxy в формате http://username:password@host:port. Установите requests командой pip install requests.
import os import requests EVERYINFRA_API_KEY = os.environ["EVERYINFRA_API_KEY"] IPFOXY_PROXY = os.environ["IPFOXY_PROXY"] # http://username:password@host:port PROXIES = {"http": IPFOXY_PROXY, "https": IPFOXY_PROXY} # 1. Ваш собственный запрос идёт через выходной IP IPFoxy. exit_ip = requests.get("https://ipinfo.io/json", proxies=PROXIES, timeout=30).json() print("Exit IP country:", exit_ip.get("country")) # 2. Вызов EveryInfra идёт напрямую. Прокси для него не нужен. direct = requests.Session() direct.trust_env = False # игнорировать HTTP(S)_PROXY, чтобы этот вызов не расходовал прокси-трафик resp = direct.post( "https://api.everyinfra.com/api/v1/social", headers={"Authorization": f"Bearer {EVERYINFRA_API_KEY}"}, json={ "platform": "amazon", "action": "profile", "params": {"url": "https://www.amazon.com/dp/B0CYJDVT31"}, }, timeout=120, ) resp.raise_for_status() body = resp.json() item = body["results"] print(item["title"][:60], item["currency"], item["price"], item["rating"]) print("Charged USD:", body["billing"]["charged_usd"])
direct.trust_env = Falseзаставляет вызов EveryInfra игнорировать переменные окруженияHTTP_PROXYиHTTPS_PROXY. Без этого через общесистемный прокси пойдёт и этот вызов, и вы заплатите за его прокси-трафик.- Ответ 407 от прокси означает неверное имя пользователя или пароль. Пример останавливается до вызова EveryInfra, поэтому ничего не списывается. В справочном центре IPFoxy указано, что прокси работает, только если код запускается из сети за пределами материкового Китая.
- Мы запустили этот код 24 октября 2026 года. Вызов EveryInfra вернул название, цену и рейтинг товара, списано $0,001389. Аккаунта IPFoxy у нас нет, поэтому шаг с прокси мы проверили на локальном мок-прокси: формат адреса, туннель
CONNECTи случай с ошибкой 407. - Сколько прокси-трафика расходует одна страница: около 0,44 МБ, если загружать только HTML, и около 7,96 МБ при полной загрузке в браузере. Стоимость за 1000 страниц на каждом тарифе IPFoxy с учётом нужной вам доли успешных запросов смотрите в статье Сколько прокси-трафика расходует одна страница Amazon?».
- Полный пример, локальный мок-прокси и скрипт для подсчёта байтов лежат на GitHub: everyinfra-agent-plugins / examples / proxy-plus-data-api.
Раскрытие информации о реферальной ссылке: указанная ниже ссылка «Перейти на сайт IPFoxy» — реферальная. Её предоставила нам IPFoxy; ссылка содержит наш реферальный код. Если вы зарегистрируетесь или совершите покупку, перейдя по ней, IPFoxy может выплатить нам партнёрское вознаграждение. IPFoxy — наш партнёр.
Перейти на сайт IPFoxy (откроется в новой вкладке)Продукты и цены IPFoxy представлены на нашей странице партнёра.
Как использовать вместе с поиском Exa
Exa ищет в интернете по смыслу. Запрос не обязан содержать слова со страницы: Exa всё равно находит нужные компании, статьи и научные работы и возвращает их текст вместе с результатами. EveryInfra даёт структурированные данные платформ, например рейтинги и отзывы с G2 и Trustpilot или комментарии YouTube, в виде JSON с именованными полями.
Типичная схема: с помощью Exa составить список объектов, а затем с помощью EveryInfra добавить к каждому из них данные платформ.
| Задача | Что использовать |
|---|---|
| Найти по смыслу подборку компаний, статей или научных работ вместе с их текстом | Exa |
| Рейтинги, число отзывов и тексты отзывов о заданном продукте на G2 или Trustpilot | API EveryInfra g2 и trustpilot |
| Комментарии и число лайков под видео на YouTube | API EveryInfra youtube (Exa возвращает текст расшифровки видео, но не комментарии) |
Этот пример на Python составляет таблицу отзывов о конкурентах. Шаг 1 запрашивает у Exa «note-taking apps similar to Obsidian»; благодаря category: "company" в ответ попадают только главные страницы компаний. Шаг 2 вызывает API EveryInfra g2/search для каждой компании и получает её рейтинг и число отзывов на G2. Перед запуском задайте две переменные окружения: EXA_API_KEY — ваш ключ из панели Exa, EVERYINFRA_API_KEY — ваш API-ключ EveryInfra. Нужна библиотека requests: pip install requests.
import os from concurrent.futures import ThreadPoolExecutor from urllib.parse import urlsplit import requests EXA_API_KEY = os.environ["EXA_API_KEY"] EVERYINFRA_API_KEY = os.environ["EVERYINFRA_API_KEY"] QUESTION = "note-taking apps similar to Obsidian" # 1. Exa: ищем компании по смыслу, а не по ключевым словам companies = requests.post( "https://api.exa.ai/search", headers={"x-api-key": EXA_API_KEY}, json={"query": QUESTION, "category": "company", "type": "auto", "numResults": 10}, timeout=60, ).json()["results"] # 2. EveryInfra: рейтинг и число отзывов каждой компании на G2 def g2_rating(company): name = company["title"].split(" - ")[0].split(" | ")[0].strip() resp = requests.post( "https://api.everyinfra.com/api/v1/social", headers={"Authorization": f"Bearer {EVERYINFRA_API_KEY}"}, json={"platform": "g2", "action": "search", "params": {"keyword": name}}, timeout=180, ) resp.raise_for_status() body = resp.json() match = next((p for p in body["results"] if p["product_name"].lower() == name.lower()), None) return name, match, body["billing"]["charged_usd"] with ThreadPoolExecutor(max_workers=4) as pool: rows = list(pool.map(g2_rating, companies)) spent = 0.0 for company, (name, g2, charged) in zip(companies, rows): spent += charged domain = urlsplit(company["url"]).hostname.removeprefix("www.") if g2 and g2["review_count"]: print(f"{name:12} {domain:16} G2 {g2['rating']} / 5 · {g2['review_count']} reviews") else: print(f"{name:12} {domain:16} no G2 reviews yet") print("EveryInfra charged (USD):", round(spent, 6))
- Мы запустили этот код без изменений 25 октября 2026 года. Exa вернул 10 главных страниц компаний, а при повторном поиске через несколько минут — те же 10. У 7 из 10 есть рейтинги и отзывы на G2, например у Goodnotes 4,7 при 123 отзывах, у Milanote 4,5 при 42. Мы по одному разу запустили английскую, китайскую и испанскую версии; каждый запуск занял 44–51 секунду. EveryInfra списала $0,01389 (10 вызовов
g2/search); поиск в Exa стоил $0,007. - Компания считается найденной, только если её название полностью совпадает с названием продукта на G2. Пример берёт заголовок результата Exa и отбрасывает всё после « - ». В нашем запуске на G2 не нашлось продукта Brainio, а у Yaranga и Brainfo есть страницы на G2, но пока нет отзывов.
- Каждый вызов
g2/searchоплачивается один раз ($0,001389), даже если продукта с таким названием нет, потому что API всё равно возвращает результаты поиска. Один вызов занимает около 30–70 секунд, поэтому пример выполняет по 4 вызова одновременно. - Для Trustpilot замените шаг 2 на
trustpilot/profileи передайте домен компании вcompany. Из тех же компаний профиль на Trustpilot нашёлся у 4 из 7. Для компании без профиля возвращается пустой результат, и он не оплачивается. - В результатах Exa нет веток Reddit: с
includeDomains, равным reddit.com, он вернул 0 результатов, и запрос ничего не стоил. - Подробнее об охвате 3 категорий и 30 компаний, о крупных компаниях, пропущенных при точном сопоставлении названий, и о полном наборе данных читайте в статье « Exa находит конкурентов, EveryInfra проверяет их отзывы».
EveryInfra и Exa — партнёры. Указанная ниже ссылка «Перейти на сайт Exa» — обычная ссылка без реферального кода.
Перейти на сайт Exa (откроется в новом окне)Продукты и цены Exa представлены на нашей странице партнёра.
Как использовать вместе с Monid
Monid — маршрутизатор инструментов для ИИ-агентов. Агент одним предложением описывает, что ему нужно: discover бесплатно возвращает подходящие эндпоинты и их цены, inspect так же бесплатно возвращает схему входных данных и текущую цену, а оплачивается только run: сумма по этой цене списывается с единого предоплаченного баланса. EveryInfra предоставляет API данных платформ с фиксированной структурой: единый формат запроса, а для каждой возможности — фиксированные имена полей и фиксированная цена.
Обычно задачи разделяют по тому, насколько часто повторяется вызов. Платформы из каталога EveryInfra (106 на 3 ноября 2026 года; актуальный список возвращает GET /api/v1/social/catalog) отправляются в EveryInfra. Платформы вне каталога и инструменты, которые вообще не относятся к данным (погода, геокодирование, логотипы компаний, генерация изображений), отправляются в Monid.
| Задача | Что использовать |
|---|---|
| Данные платформ, которые вы собираете каждый день, например поиск по Xiaohongshu, товары Amazon или комментарии YouTube | EveryInfra API или MCP-инструмент everyinfra_call_api; список платформ есть в каталоге |
| Платформа, которой нет в каталоге EveryInfra, или инструмент, который нужен лишь время от времени | Monid: discover, чтобы найти эндпоинт, inspect, чтобы узнать цену, затем run |
| Вы ещё не знаете, какой инструмент использовать | Monid discover (бесплатно; возвращает ранжированный список кандидатов с ценами) |
Этот пример на Python объединяет оба типа вызовов в одном скрипте. Шаг 1 — ежедневная задача: скрипт вызывает EveryInfra xiaohongshu/search по запросу «matcha latte» с сортировкой по числу лайков и выводит первые 3 заметки и сумму списания. Шаг 2 — разовая задача: Monid находит инструмент, который возвращает логотип компании по домену, и скрипт запускает его, только если цена из inspect не превышает MAX_PRICE_USD. Перед запуском задайте две переменные окружения: EVERYINFRA_API_KEY — ваш API-ключ EveryInfra, MONID_API_KEY — API-ключ, созданный в панели Monid (app.monid.ai). Нужна библиотека requests: pip install requests.
import os import requests EVERYINFRA_API_KEY = os.environ["EVERYINFRA_API_KEY"] MONID_API_KEY = os.environ["MONID_API_KEY"] MONID = "https://api.monid.ai/v1" MONID_HEADERS = {"Authorization": f"Bearer {MONID_API_KEY}"} MAX_PRICE_USD = 0.01 # do not run a Monid tool that costs more than this per call # 1. The daily job: EveryInfra xiaohongshu/search, one fixed request shape resp = requests.post( "https://api.everyinfra.com/api/v1/social", headers={"Authorization": f"Bearer {EVERYINFRA_API_KEY}"}, json={"platform": "xiaohongshu", "action": "search", "params": {"keyword": "matcha latte", "sort": "most_liked"}}, timeout=120, ) resp.raise_for_status() body = resp.json() for note in body["results"][:3]: print(note["like_count"], note["collect_count"], note["posted_at"][:10], note["url"]) print("EveryInfra:", len(body["results"]), "notes, charged (USD):", body["billing"]["charged_usd"]) # 2. A one-off lookup that is not a daily platform: discover, inspect, run on Monid found = requests.post(f"{MONID}/discover", headers=MONID_HEADERS, timeout=60, json={"query": "company logo image URL from a domain", "limit": 3}).json()["results"] # discover adds ranking and price fields to each result; inspect and run take only the fields that name the tool SHOWN_ONLY = ("providerName", "description", "price", "score", "scoreBreakdown", "tags", "metrics", "hints") tool = {key: value for key, value in found[0].items() if key not in SHOWN_ONLY} detail = requests.post(f"{MONID}/inspect", headers=MONID_HEADERS, timeout=60, json=tool).json() price = detail["price"]["amount"]["value"] print("Monid tool:", detail["endpoint"], "price (USD):", price) if price <= MAX_PRICE_USD: run = requests.post(f"{MONID}/run", headers=MONID_HEADERS, timeout=120, json={**tool, "input": {"pathParams": {"company": "starbucks.com"}}}).json() print("Monid run:", run.get("runId"), run.get("status"), run.get("output"))
- Мы запустили этот код без изменений 3 ноября 2026 года в 16:45 (по сингапурскому времени). EveryInfra вернула 20 заметок и списала $0,005556. Monid
discoverпоставил эндпоинт для логотипов компаний на первое место,inspectпоказал $0 за вызов, аrunвернул статус COMPLETED и URL изображения логотипа. Скрипт отработал за 6–7 секунд. Мы по одному разу запустили китайскую, английскую и испанскую версии (китайская версия ищет по китайскому названию напитка). - Каждый вызов
xiaohongshu/searchвозвращает одну страницу с максимум 20 заметками и стоит $0,005556. Страница без заметок не оплачивается. Для следующей страницы передайтеnext_page_tokenиз результатов. - Monid не берёт плату за
discoverиinspect; оплачивается толькоrunпо цене, которую показываетinspect. Пока выполняется запуск, Monid резервирует на балансе расчётную стоимость и списывает фактическую сумму по его завершении (Monid llms.txt, прочитано 03.11.2026). В примереMAX_PRICE_USDиспользуется, чтобы пропускать инструменты, стоимость которых превышает ваш бюджет. - Агенту можно задать правило маршрутизации, например такое: «Платформы из
GET https://api.everyinfra.com/api/v1/social/catalogотправляйте вeveryinfra_call_api. Все остальные платформы и инструменты обрабатывайте через Monid: discover, затем inspect, и run, только если цена укладывается в бюджет. Записывайте в лог сумму списания каждого вызова». - MCP-сервер Monid (
https://mcp.monid.ai/v1) требует входа через OAuth в браузере; мы его не тестировали. Шаги настройки для Claude, Claude Code, Codex, OpenCode и ChatGPT описаны в руководстве [«Быстрый старт с MCP-сервером Monid»](https://monid.ai/docs/guide/quickstart-mcp). Настройка на стороне EveryInfra описана в разделе о MCP выше.
EveryInfra и Monid — партнёры. Указанная ниже ссылка «Перейти на сайт Monid» — обычная ссылка без реферального кода.
Перейти на сайт Monid (откроется в новом окне)Продукты и условия оплаты Monid представлены на нашей странице партнёра.
Как устроены списания и корректировки баланса
Цену и единицу оплаты нужной возможности смотрите в публичном каталоге. В каждом ответе указана списанная сумма. Для продуктов, где списание происходит только при успешном получении результата, при ошибке или пустом результате плата не взимается.
- Не пересчитывайте внутренние единицы кошелька в валюту на стороне клиента.
- Показывайте валюту и суммы, которые возвращает API, и сверяйте по ним списания.
- Если операция с оплатой за выдачу не завершилась, итогового списания не остаётся, а зарезервированная сумма автоматически возвращается на баланс аккаунта.
- Объект
billingв каждом платном ответе содержитcharged_usd, сумму в USD, списанную за вызов (0, если ничего не списано, и null, пока результат ещё неизвестен), иbalance_after_usd, баланс кошелька после окончательного расчёта по вызову (null, если баланс невозможно получить). Во время пакетной обработки следите заbalance_after_usd, а не опрашивайте аккаунт. - Когда зарезервированная сумма неудачного вызова возвращена,
billingв теле ошибки также содержитbalance_after_usd.
Обработка ошибок
Анализируйте HTTP-статус вместе с телом ошибки. Каждая ошибка также сообщает, на чьей стороне проблема и что делать дальше: fault (request, account или service), retryable и next_steps. Если проблема на стороне EveryInfra и повторные попытки исчерпаны, в support передаётся черновик обращения; прежде чем отправлять его, спросите пользователя. Перед повторной попыткой проверьте, что именно не сработало и не приведёт ли повтор запроса к дублированию действия.
| Статус | Значение | Действие |
|---|---|---|
| 400 | Неизвестная платформа или действие | Используйте did_you_mean и allowed из ответа или каталог возможностей. |
| 401 | API-ключ отсутствует, недействителен или отключён | Проверьте Bearer-токен и статус ключа. |
| 402 | Недостаточно средств на балансе кошелька | Проверьте текущий баланс через GET /api/v1/account, затем пополните баланс или сократите объём запроса. |
| 404 | Неизвестный маршрут или ресурс | Проверьте эндпоинт и идентификатор ресурса. |
| 422 | Недопустимый параметр, значение или тип | Посмотрите поддерживаемые значения и did_you_mean в ответе. |
| 429 | Достигнут лимит запросов | Перед повторной попыткой выждите интервал, указанный в Retry-After. Лимит действует на весь аккаунт: запросы по всем API-ключам учитываются вместе, при этом для отдельного ключа может быть установлен собственный, более низкий лимит. |
| 5xx | Запрос не удалось доставить | Сохраните ID запроса и следуйте указаниям из next_steps. При тайм-ауте (timeout) повторите тот же запрос с "mode":"async", чтобы вместо ожидания сразу получить job_id. |
Нужен ли API-ключ для эндпоинтов каталога?
Нет. Публичные каталоги возможностей доступны и до регистрации. Для вызовов с аутентификацией по-прежнему нужен действующий Bearer API-ключ.
Откуда берутся данные и есть ли у вас разрешение платформ?
EveryInfra возвращает контент, который публично виден на каждой платформе: публичные посты, комментарии, страницы товаров и профили. Вам не нужно регистрировать приложение разработчика на платформе или входить под аккаунтом платформы. Мы не являемся партнёром этих платформ, не представляем их и не получаем их разрешение от вашего имени. Как использовать данные, решаете вы: убедитесь, что ваше использование соответствует применимому законодательству и условиям платформы (см. разделы 1 и 4 [Условий использования](/ru/terms)). Публичная доступность не означает, что данные можно свободно копировать, публиковать повторно или использовать в коммерческих целях.
MCP и REST — это разные продукты?
Нет. MCP — ещё один способ доступа к доступным сейчас инструментам EveryInfra. Для работы с данными, поиска, решения капчи и чата с ИИ действуют те же правила аутентификации, тарификации, валидации, лимитов запросов и корректировки баланса, что и для соответствующих REST-вызовов.
API для ИИ бесплатный?
Да. Любой аккаунт, баланс которого хотя бы раз пополняли, может обращаться к нему, не расходуя баланс. Лимиты зависят от общей суммы пополнений: при сумме пополнений меньше $100: 50 запр./мин и до 5 одновременных запросов; от $100: 500 и 50; от $500: 5 000 и 500. Коды кредитов и бонусные кредиты учитываются как пополнения, если сумма каждого начисления превышает $1; пробные кредиты и суммы не более $1 не учитываются.
Как проверить баланс из кода?
Вызовите GET /api/v1/account с тем же Bearer API-ключом. Он возвращает основной, бонусный и общий баланс в USD, скидку на пополнение баланса в текущем месяце, лимит запросов в минуту и статистику использования за последние 24 часа. Вызов бесплатный и не учитывается в лимите. Кроме того, каждый платный ответ содержит billing.balance_after_usd.
Можно ли проигнорировать неподдерживаемый параметр?
Нет. Для неизвестных параметров возвращается код 422 со списком поддерживаемых значений и подсказкой с ближайшим по написанию именем параметра, если такое имя удаётся определить.
Как отправить большой пакет запросов?
Используйте асинхронный режим: добавьте "mode": "async" в тело запроса. Каждый вызов сразу возвращает job_id, а результат вы получаете, опрашивая GET /api/v1/jobs/{job_id}. Синхронный вызов должен завершиться за 85 с, иначе он завершится ошибкой по тайм-ауту (без списания); на асинхронное задание это ограничение не распространяется.