Спочатку визначте форму відповіді
До складання запиту назвіть результат, який потрібен застосунку. Список назв спільнот відрізняється від відповідних дописів, коментарів та одного відомого елемента. Reddit API Hub надає окремі маршрути для цих завдань. Вибір маршруту визначає параметри й форму відповіді, але не обіцяє продуктивності, повного охоплення чи заміни будь-якої операції офіційного API Reddit. Оцінюйте можливості за фактичним контрактом, а не за схожістю назв.
Почніть каталог із https://api.redditapihub.com/v1/subreddits?prefix=program&limit=3. Запит просить щонайбільше три спільноти, чиї назви починаються з program. Він не шукає слово в тексті дописів, не обіцяє повернути programming і не визначає активних сьогодні спільнот. Збережіть назви як кандидатів; пропуски архіву та не гарантовано точні лічильники обмежують висновки, які можна зробити з такого пошуку.
Для цього маршруту доступні лише prefix і limit. Посторінкового обходу повного списку спільнот немає. Якщо відповідь містить truncated=true, зафіксуйте обмеження замість створення неіснуючого токена наступної сторінки. Невідомий підсумок, можливо null, не дорівнює нулю. Повернену назву можна передати в subreddit окремого запиту вмісту; під час переходу між маршрутами змінюється набір допустимих параметрів.
Виберіть тип вмісту або відомий ідентифікатор
Використовуйте /v1/search для текстових та інших дозволених умов за дописами й коментарями. /v1/posts обмежує видачу дописами, /v1/comments — коментарями. Дозволені q, subreddit, author, kind, from, to, min_score, limit і page. Значення kind — post та comment. Результат складається зі знайдених записів, а не статистичного звіту чи зібраного дерева обговорення; подальший аналіз виконується у вашій системі.
Порядок _doc не є хронологічним, тому позиція запису у відповіді не визначає його місця на часовій шкалі. from і to фільтрують created_utc у форматі YYYY-MM-DD UTC, включно з останнім днем повністю. min_score задає лише числовий поріг, без визначення надійності поради або сортування за популярністю. Якщо ви впорядкували отриману вибірку локально, відокремлюйте це подання від початкової видачі та її меж.
Для відомого ідентифікатора використовуйте /v1/item?id=... з єдиним параметром id. URL-адреса не замінює цього параметра. Наявність запису не гарантована, а його отримання не завантажує автоматично батьківські записи чи відповіді. Під час роботи з вмістом можна локально пов’язувати наявні parent_id та link_id, залишаючи нерозв’язані посилання видимими. Це не доводить повної розмови й не відновлює відсутніх в архіві матеріалів.
Розрахуйте вартість процесу та збережіть обмеження
Зберігайте ключ на сервері й передавайте X-API-Key: <ключ> або Authorization: Bearer <ключ>. Незалежний історичний архів не приймає Reddit OAuth і не надає живих оновлень, запису, голосування чи приватних повідомлень. Публічний /v1/status безоплатний і не потребує ключа, але лише описує сервіс та підтверджує HTTP-відповідь. Він не повідомляє, чи виконається пошук вмісту та чи достатньо кредитів на рахунку.
Сторінка вмісту містить до 100 записів, page не перевищує 100 в окремих запитах. Читайте total разом із relation: eq — точний підсумок для запиту, gte — нижня межа, unknown — ненадійне значення або null. Жоден підсумок не доводить повного вивантаження. Поділ дат і локальне усунення дублікатів організують роботу, але не гарантують охоплення, унікальності чи стабільності наступної видачі.
Кожен успішний пошук спільнот, запит сторінки, окремого запису чи повтор коштує один кредит, включно з порожнім результатом. Некоректні запити не списуються, збій джерела повертає резерв; втрачена відповідь може приховувати оплачений успіх. Розрізняйте 400, 401, 402 і 429 та обмежуйте повтори. До оплати прочитайте ціни й сторінку ключа: $1 за 1000 успішних запитів, мінімум $50 для купівлі та умовне надання пробних кредитів.