Reddit API Gateway
Выбор языка

Изучите контракт архива до расчёта нагрузки продукта

Оба заголовка ключа, параметры маршрутов, даты UTC, плоские записи и пагинация. Коды HTTP и оплата успешных запросов для вашего продукта.

Получить API-ключ

Маршруты API

МетодМаршрутПараметры
GET/v1/searchq, subreddit, author, kind, from, to, min_score, limit, page
GET/v1/postsq, subreddit, author, kind, from, to, min_score, limit, page
GET/v1/commentsq, subreddit, author, kind, from, to, min_score, limit, page
GET/v1/itemid
GET/v1/subredditsprefix, limit
GET/v1/status—

Параметры запроса

ПараметрЗначение / тип / диапазон
qtext
subredditkeyword
authorkeyword
kindpost | comment
fromISO date
toISO date
min_scoreinteger
limit1–100
page1–100
iditem ID
prefixsubreddit prefix

Разделяйте получение данных и вход в кабинет

Защищённые запросы данных используют GET на https://api.redditapigateway.com. Поддерживаются X-API-Key: <ключ> и Authorization: Bearer <ключ> как альтернативы. Используйте ключ архива этого домена, а не учётные данные Reddit OAuth. Храните секрет в защищённой конфигурации сервера, исключайте его из открытого кода, URL и журналов диагностики. Ключ архива не содержит ролей и бюджетов пользователей вашего продукта.

Панель счёта на странице ключа использует вход по электронной почте и паролю с сессионной cookie Secure HttpOnly. Это отдельно от заголовка ключа для запросов приложения. Виджет сохраняет идентификаторы счёта и пользователя в localStorage для каждого хоста, чтобы восстанавливать счёт, но не настоящий API-ключ. HttpOnly относится к cookie, а не к localStorage. Вход в панель не аутентифицирует отдельный клиент данных.

/v1/status публичен, не оплачивается и не требует ключа. Он возвращает статическое описание исторического сервиса и подтверждает ответ HTTP-приложения. Поисковый движок, наличие записей, расход кредитов и баланс не проверяются. Не превращайте такой ответ в проверку продуктовой квоты или гарантию готовности поиска. Полученные данные и баланс в панели счёта нужно оценивать по соответствующим источникам, а не по публичному статусу.

Используйте параметры конкретного маршрута

/v1/search ищет публикации и комментарии. /v1/posts добавляет ограничение публикациями, /v1/comments — комментариями. Все три принимают q, subreddit, author, kind, from, to, min_score, limit и page, но не id. kind принимает post и comment; для обоих типов через search не задавайте его. q — текстовый поиск, а не произвольный язык запросов, определение тональности или собственная серверная аналитика.

/v1/item?id=... требует только id и ищет одну архивную запись, которая может отсутствовать. Родители и ответы автоматически не загружаются. /v1/subreddits принимает только prefix и limit для поиска названий сообществ, без постраничного обхода и гарантии глобально точных счётчиков. prefix не является фильтром маршрутов содержимого. Ни один маршрут не принимает произвольный URL Reddit для загрузки или запрос полной беседы.

from и to требуют даты YYYY-MM-DD в UTC и фильтруют created_utc, а не время поступления в архив; последний день to включён полностью. min_score — числовой порог оценки без сортировки и определения качества. Документы содержимого плоские, поля могут различаться. Присутствующие parent_id и link_id допускают локальную группировку, но не являются фильтрами запроса и не подтверждают полную цепочку родителей.

Применяйте границы страниц и правила оплаты

Поиск содержимого принимает limit и page от 1 до 100, по одной странице за запрос. Результаты следуют внутреннему порядку _doc, не времени вставки, хронологии, релевантности или оценке. Локальная сортировка меняет только полученную выборку. Дробление периодов, обход страниц и удаление дублей не доказывают полного охвата или уникальности. Не гарантированы фиксированная схема, неизменный ответ и постоянная доступность записей.

Ответ содержит data, pagination и credits. Читайте pagination.total вместе с relation: eq — точный итог запроса, gte — нижняя граница, unknown — отсутствие надёжного итога, возможно null. Точное число не доказывает, что все совпадения скачаны или вся история Reddit представлена. Сохраняйте has_more и window_exhausted как признаки границ. Возвращённый баланс не является квотой пользователя или резервом на будущие запросы.

Каждое успешное получение стоит один кредит, даже пустое. Дополнительные страницы и успешные повторы оплачиваются отдельно. Некорректные запросы не списываются; сбой источника возвращает резерв. Разрыв соединения может произойти после оплаченного успеха, локальный сбой обработки не возвращает этот кредит. HTTP 400 относится к параметрам, 401 — к ключу, 402 — к балансу, 429 — к частоте. Учитывайте повторы отдельно и сохраняйте ответ до продвижения задания.