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