Назад к блогу

Как собирать данные Reddit в 2026: лимиты API, закрытый .json и роль прокси

В мае 2026 Reddit закрыл неаутентифицированный .json, а robots.txt отдаёт Disallow: / для всех. Разбираем реальные лимиты официального Data API (100 QPM, $0.24 за 1000 вызовов), пошаговую схему устойчивого пайплайна, листинг-кап в 1000 элементов и то, какие задачи прокси в этой схеме действительно решают, а какие нет.

📅28 июля 2026 г.
Как собирать данные Reddit в 2026: лимиты API, закрытый .json и роль прокси

В мае 2026 года Reddit закрыл неаутентифицированный доступ к .json-эндпоинтам — тот самый трюк «допиши .json к любому URL», на котором годами держались десятки скриптов, дашбордов и пет-проектов. Проверка 28 июля 2026 года: запрос к https://www.reddit.com/r/webscraping/top.json?t=week с обычным браузерным User-Agent возвращает 403 Forbidden. Одновременно robots.txt Reddit содержит всего две значимые строки: User-agent: * и Disallow: / — со ссылкой на Public Content Policy.

Это меняет не «как обойти», а как теперь вообще строить пайплайн сбора данных Reddit. Ниже — рабочая схема на 2026 год: что реально доступно, какие лимиты, где нужны прокси, а где они не спасут.

Что именно сломалось: короткая хронология

  • Июнь 2023 — Reddit ввёл платный тариф $0.24 за 1000 вызовов API для высоконагруженных приложений. Следствие: закрытие Apollo (разработчик оценивал стоимость доступа примерно в $20 млн в год), уход большинства сторонних клиентов и остановка Pushshift — публичного архива постов и комментариев, на котором держалась половина академических исследований.
  • Май 2026 — деприкейт неаутентифицированного .json. Инструменты, которые «просто дёргали URL», перестали работать; трафик пошёл через Cloudflare-защиту с проверкой сессии.
  • Октябрь 2025 — по настоящее время — иск Reddit к Perplexity AI, Oxylabs UAB, AWMProxy и SerpApi (Южный округ Нью-Йорка, судья Энгельмайер). Reddit обвиняет ответчиков в промышленном извлечении своего контента через выдачу Google и перепродаже данных, ссылаясь на антиобходные положения DMCA. Подан 1-й изменённый иск; по состоянию на март 2026 дело на стадии motion to dismiss. Ответчики отрицают нарушения: Perplexity называет это попыткой закрыть публичные данные, SerpApi и Oxylabs заявляют о доступе к публичному вебу в рамках закона.

Практический вывод из третьего пункта: сбор данных Reddit в обход официального API — это не техническая, а юридическая зона риска, и цена ошибки для коммерческого проекта измеряется не банами, а исками. Подробнее о том, как суды в 2026 году трактуют извлечение данных из выдачи, мы разбирали в материале про решение по делу Google и SerpApi.

Официальный Data API: реальные лимиты 2026

Это единственный путь, который не создаёт правовых претензий. Цифры, которые нужно знать до проектирования:

  • 100 запросов в минуту для OAuth-клиента. Окно усредняется примерно за 10 минут, то есть короткие всплески допустимы.
  • 10 запросов в минуту без OAuth — этого не хватит ни на что, кроме отладки.
  • Лимит считается на ключ приложения, а не на конечного пользователя. Пять потоков на одном токене не дают пятикратной ёмкости — они просто выжигают один бюджет впятеро быстрее.
  • Бесплатный тариф покрывает личные проекты, ботов, модераторские инструменты и академические исследования. Денежного счётчика нет, есть только потолок по частоте.
  • Коммерческое использование требует договора и ручного одобрения; тариф — $0.24 за 1000 вызовов. По оценкам отраслевых площадок, порог входа в коммерческий контракт начинается примерно от $12 000 в год.
  • Обучение ML-моделей на данных API прямо запрещено условиями Data API. Лицензии на обучение — отдельные приватные контракты (сделку Reddit с Google в прессе оценивали примерно в $60 млн в год).

Заголовки, которые надо парсить всегда

Reddit отдаёт на каждый ответ три заголовка: X-Ratelimit-Used, X-Ratelimit-Remaining и X-Ratelimit-Reset. Это единственный достоверный источник правды о вашем бюджете — не константа в коде и не старая вики с цифрой «60 запросов в минуту» (она устарела ещё в 2023-м).

Требования к User-Agent

Reddit ждёт уникальную описательную строку в формате platform:app_id:version (by /u/username). Универсальные и пустые User-Agent жёстко режутся по частоте — это первое, что стоит проверить, если лимиты кончаются раньше расчётного.

Пошагово: как построить пайплайн, который не падает

  1. Зарегистрируйте script-app в настройках Reddit и получите client_id/client_secret. Для read-only нагрузки это самый простой тип приложения.
  2. Задайте корректный User-Agent по формату выше. Не копируйте строку из чужого туториала — app_id и ник должны быть вашими.
  3. Читайте X-Ratelimit-Remaining на каждом ответе, а не только при ошибке. Когда остаток падает примерно до 20 запросов, переходите на равномерный темп: задержка на вызов = секунды до сброса окна ÷ оставшиеся запросы. Так вы размазываете квоту по окну вместо того, чтобы упереться в стену.
  4. Обрабатывайте 429 правильно. Первую паузу берите из заголовка Retry-After. Дальше — экспоненциальный бэкофф с джиттером: wait = 2^attempt + random(). Джиттер обязателен: без него параллельные клиенты повторяют запрос синхронно и вызывают второй каскад отказов.
  5. Кэшируйте чтения с TTL. Повторный запрос одного и того же листинга — самая частая причина слива квоты в проектах мониторинга.
  6. Масштабируйтесь ротацией токенов, а не потоков. Каждый OAuth-токен несёт независимый счётчик; несколько приложений на разных аккаунтах с round-robin распределением (в Python — itertools.cycle) наращивают пропускную способность линейно. Важно: для коммерческой нагрузки это не заменяет договор с Reddit — это способ вписаться в честные лимиты, а не обойти их.
  7. Заложите обход листинг-капа. Reddit отдаёт максимум около 1000 элементов на листинг (100 на страницу, курсор after). Более старый контент через стандартные эндпоинты недоступен. Штатное решение — не «пробить» кап, а нарезать выборку по времени и делать несколько узких запросов вместо одного широкого.
  8. Для исторических данных ищите индекс, а не API. После закрытия Pushshift его нишу занимают внешние индексы вроде PullPush (бесплатно, но без SLA) и коммерческие поисковые API со своим индексом и другими потолками. Для академической работы у Reddit есть отдельная программа Reddit for Researchers.

Подводные камни, о которых узнают поздно

PRAW усыпляет поток, но не спасает от всего. Встроенный лимитер PRAW читает заголовки и сам ставит паузы — это отлично работает для однопоточного скрипта. Текущее состояние видно через reddit.auth.limits. Ломается это в двух случаях: при многопоточности с общими креденшелами (экземпляры не видят потребление друг друга) и в async-коде, где блокирующий time.sleep вешает event loop.

AI-агенты выжигают квоту незаметно. Один шаг рассуждения агента легко разворачивается в 10–15 вызовов инструментов. Десять параллельных сессий — это 100–150 одновременных запросов, то есть весь минутный бюджет за секунды. Если вы строите агента поверх Reddit, лимитер нужен на уровне пула, а не отдельного вызова.

Опрос без бэкоффа. Проверка обновлений «каждые N секунд» без экспоненциальной паузы — вторая по частоте причина 429 после общего токена.

Где здесь реально нужны прокси, а где нет

Скажем честно: прокси не увеличивают ваш лимит официального API. Квота привязана к ключу приложения, а не к исходящему IP, и попытка «размножить» её через смену адреса не работает и противоречит условиям. Задачи, которые прокси действительно решают в reddit-пайплайне, другие:

  • Гео-доступ и связность. Reddit недоступен или частично ограничен в ряде стран, а корпоративные сети режут его как соцсеть. Стабильный выходной узел в нужном регионе — это вопрос доступности инфраструктуры, а не обхода лимитов. Для серверных задач с постоянным IP обычно достаточно датацентр-прокси.
  • Региональная выдача. Часть контента и рекомендаций Reddit отдаёт с учётом географии запроса; если вы анализируете, что видит аудитория конкретной страны, нужен выход именно из неё.
  • Разнесение инфраструктуры. Когда несколько независимых сервисов (сбор, мониторинг упоминаний, аналитика) живут на одном сервере, единственный IP становится общей точкой отказа для всех интеграций сразу.
  • Работа с собственными аккаунтами. Для модерации, ведения сообществ и легитимной SMM-активности с нескольких профилей связка «аккаунт ↔ постоянный IP» — базовая гигиена. Здесь уместны резидентные прокси со sticky-сессией.

А вот чего прокси не сделают: не легализуют коммерческий сбор в обход договора, не снимут листинг-кап в 1000 элементов и не отменят Disallow: / в robots.txt. Общий подход к работе с лимитами платформ — в разборе про rate limiting в API и роль прокси.

Вывод

Reddit в 2026-м окончательно перестал быть «открытым датасетом, который можно взять .json-ом». Рабочая схема выглядит так: официальный OAuth-доступ + честный лимитер на заголовках + ротация токенов в рамках правил + внешний индекс для истории. Прокси в этой схеме отвечают за доступность и географию, а не за обход квот — и это единственная роль, в которой они дают предсказуемый результат.

Если ваш проект коммерческий, планируйте бюджет на договор с Reddit заранее: судебная история с Perplexity, Oxylabs и SerpApi показывает, что платформа готова тратить на защиту своих данных существенно больше, чем стоит легальный доступ.