Захищене читання та публічний статус
Захищене читання використовує 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 не є хронологією, релевантністю, оцінкою чи випадковим відбором. Вищий поріг змінює отриману групу, а не підтверджує якість. Відокремлюйте власні мітки й обчислювані ознаки від вихідних полів та описуйте вилучення, які спричиняють ці рішення. Не приписуйте архіву власних висновків про придатність тексту.
Записи вмісту плоскі, поля можуть різнитися або бути відсутніми. Наявні parent_id та link_id допускають локальне групування без повної розмови чи ланцюжка батьківських записів; жоден не є фільтром пошуку. Відповідь містить 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 — обмеження частоти. Некоректні запити не списуються; збій джерела повертає резерв. Успішне отримання коштує один кредит, навіть порожнє й повторне. Втрата відповіді може приховувати оплачений успіх; локальна помилка не повертає його вартості. Збережіть відповідь до оновлення прогресу та враховуйте успішні повтори окремо.