q, subreddit, author, kind, from, to, min_score, limit, page
GET
/v1/posts
q, subreddit, author, kind, from, to, min_score, limit, page
GET
/v1/comments
q, subreddit, author, kind, from, to, min_score, limit, page
GET
/v1/item
id
GET
/v1/subreddits
prefix, limit
GET
/v1/status
—
Параметры запроса
Параметр
Значение / тип / диапазон
q
text
subreddit
keyword
author
keyword
kind
post | comment
from
ISO date
to
ISO date
min_score
integer
limit
1–100
page
1–100
id
item ID
prefix
subreddit prefix
Маршруты и авторизация
Защищённое извлечение использует GET на https://api.redditscraping.com с заголовком X-API-Key: <key> либо Authorization: Bearer <key>. Оба способа поддерживаются. Настоящий ключ храните на сервере, вне публичного кода. Кабинет использует отдельную сессионную cookie с атрибутами Secure и HttpOnly; вход в браузере не заменяет заголовок ключа в запросах вашего приложения. Публичный пример должен содержать только заглушку секрета.
/v1/search ищет публикации и комментарии. /v1/posts и /v1/comments ограничивают выдачу соответствующим типом. Эти маршруты принимают q, subreddit, author, kind, from, to, min_score, limit и page. Значения kind — post и comment, причём специализированный маршрут уже задаёт свой тип. Фильтр id на этих маршрутах не поддерживается, как не поддерживается передача адреса страницы для её обхода или получения текущего HTML.
/v1/item требует id и не принимает другие параметры фильтрации; он ищет отдельный элемент, а не беседу целиком. /v1/subreddits принимает только prefix и limit для поиска названий сообществ, без гарантии глобально точных количеств. Публичный /v1/status не требует ключа и кредитов. Его статический ответ не проверяет поиск, доступность архивных записей, баланс аккаунта или историю платежей.
Фильтрация и проверка записей
Параметр q выполняет текстовый поиск, а не произвольный язык запросов, работу браузера или анализ тональности. subreddit и author ограничивают совпадения сообществом и автором. Даты from и to задаются строго как YYYY-MM-DD в UTC и применяются к created_utc, а не ко времени загрузки в архив. День to включается полностью. Интервалы внутри дня выделяйте локально по доступным временным меткам записей.
min_score применяет числовой порог оценки и не сортирует результат. Внутренний порядок документов _doc не означает порядок идентификаторов, время добавления, хронологию или ранжирование по релевантности. Параметры limit и page принимают значения от 1 до 100. Каждый запрос возвращает одну страницу максимум из 100 записей, а для одного набора фильтров доступно до 100 страниц. Дополнительные страницы не доказывают полный охват архива.
Успешный ответ извлечения содержит data, pagination и credits. Записи в data плоские, а поля могут различаться или отсутствовать. Проверяйте требования своего приложения перед нормализацией, не предполагая обязательного текста или полей связей. При наличии parent_id и link_id допустима локальная группировка, однако эти поля не являются фильтрами запроса и не подтверждают полноту дерева обсуждения. Не подменяйте пропуски вымышленными значениями.
Итоги, ошибки и стоимость повторов
Читайте pagination.total вместе с pagination.relation. Значение eq означает точный итог запроса, gte — нижнюю границу, unknown — отсутствие надёжного итога, который может быть null. Неизвестное количество не равно нулю. Даже точный итог не доказывает, что все совпадения скачаны. Небольшие временные окна помогают организовать сбор, но не гарантируют исчерпывающую выдачу, отсутствие повторов или одинаковый результат нового запроса.
HTTP 400 означает недопустимые параметры, 401 — отсутствие или недействительность ключа, 402 — нехватку кредитов, 429 — ограничение частоты. Некорректные запросы не списывают кредиты, а сбои источника возвращают резерв. Успешное извлечение стоит один кредит, даже при пустом data. Клиент может потерять ответ после оплаченного успеха сервера; успешный повтор расходует ещё один кредит, даже если запрашивается тот же материал.
Сохраняйте исходные ответы до обновления локального прогресса. Обёртка клиента может разделить настройку заголовков, построение запросов, проверку и обработку ошибок, не скрывая границы страниц или результаты списания. Баланс и счета смотрите в кабинете, а не в /v1/status. Страница цен объясняет покупку кредитов, а руководство показывает проверку локального преобразования на небольшом примере с главной страницы перед подключением следующего этапа обработки.