Get Reddit Data

Проверьте контракт API перед преобразованием записей в строки

GET-маршруты, оба заголовка ключа, даты UTC и итоги пагинации. Получение исторических записей для собственной таблицы с учётом пропусков и ограничений.

Защищённое чтение и публичный статус

Защищённое чтение использует GET на https://api.getredditdata.com с X-API-Key: <ключ> либо Authorization: Bearer <ключ>. Оба варианта передают ключ архива этого домена, а не токен Reddit OAuth. Храните секрет на сервере. Cookie Secure HttpOnly личного кабинета относится к отдельной сессии и не заменяет заголовок получения данных. Архив независимый и исторический, без официальной связи с Reddit и обновлений в реальном времени.

/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 для поиска названий сообществ, без постраничного обхода и гарантии глобально точных счётчиков. /v1/status публичен и бесплатен: статическое описание подтверждает ответ HTTP-приложения, не проверяя доступность поиска, свежесть записей, действительность ключа или баланс.

Даты, плоские записи и собственная таблица

from и to принимают YYYY-MM-DD в UTC и фильтруют created_utc, а не момент попадания записи в архив. Последний день to включается целиком. Это фильтры дней, а не значения курсора с точностью до времени суток. При делении работы по датам сохраняйте фактические границы и различайте время обработки задания и создания записи. Разбиение не доказывает полноты получения или расписания обновления архива.

Поле min_score выполняет исключительно функцию фильтра и никогда не используется для сортировки результатов по убыванию или возрастанию. Порядок _doc — внутренний порядок документов, не хронология, релевантность или оценка. Высокий порог не подтверждает качество совета или представительность группы. Локальная сортировка организует только полученное; она не доказывает, что все более ранние записи уже найдены или будут доступны при следующем обращении.

Все ответы API содержат плоские записи, а не собранные сервером древовидные структуры. Если поля parent_id и link_id присутствуют в возвращаемых записях, клиент может сгруппировать их локально, но это не гарантирует наличия полного контекста беседы или полной родословной. Фильтры по этим идентификаторам также не представлены в интерфейсе запроса напрямую. Ответ содержит data, pagination и credits. Поля могут отсутствовать или различаться: отмечайте это в локальной таблице, а не подставляйте значения, которых не было в ответе. Собственные метки и преобразования храните отдельно от исходного текста.

Границы страниц, итоги и обработка сбоев

Маршруты содержимого принимают limit и page от 1 до 100, по одной странице за запрос. Серия обращений не гарантирует 10000 разных записей или полный набор. page=101 для той же выборки не поддерживается. Разбиение дат и локальное удаление дублей организуют сбор, но не доказывают охват, уникальность или неизменность повторной выдачи. Сохраняйте фактические ответы, на которых основан анализ.

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

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

Маршруты 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
GET/v1/status—

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

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