Выбор языка

Контракт получения данных для собственной размеченной выборки

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

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

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

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

/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 не является хронологией, релевантностью, оценкой или случайным отбором. Более высокий порог меняет полученную группу, а не подтверждает качество. Отделяйте собственные метки и вычисляемые признаки от исходных полей и описывайте исключения, которые вызывают эти решения. Не приписывайте архиву собственные выводы о пригодности текста.

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

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

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

Читайте 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