Выберите маршрут под конкретную задачу
Базовый адрес API — https://api.redditsearchapi.com. Для защищённых запросов на получение данных передавайте ключ в заголовке Authorization по схеме Bearer. Маршрут /v1/search подходит для тематического поиска, /v1/posts возвращает публикации, а /v1/comments — комментарии. Для двух последних маршрутов параметр id не требуется. Если идентификатор записи уже известен, используйте /v1/item с id. Для поиска названий сообществ по началу строки предусмотрен /v1/subreddits с prefix, без обещания полного каталога всех сообществ.
Маршрут /v1/status открыт без ключа и не расходует кредиты. Его статический ответ описывает независимый исторический сервис и показывает, что HTTP-приложение ответило. Он не проверяет поисковый источник, доступность отдельных записей или задержку выдачи. Поэтому успешный ответ этого маршрута нельзя использовать как доказательство исправности поиска после неудачного запроса. Сервис не предоставляет обновления Reddit в реальном времени, OAuth-доступ, публикацию сообщений, голосование или личную переписку: речь идёт именно о чтении архивных материалов.
Задайте условия и правильно прочитайте порядок выдачи
Поиск принимает q, subreddit, author, kind, from, to, min_score, limit и page. Допустимые значения kind — post и comment. Даты передаются как YYYY-MM-DD в UTC; верхняя граница to включает указанный день. Сохраняйте эти значения в своём интерфейсе отдельно от времени публикации каждой записи. Так пользователь сможет отличить выбранный период исследования от даты конкретного сообщения и не смешает разные интервалы при дальнейшем сравнении найденных материалов между запросами или сообществами.
Параметр min_score задаёт порог оценки, но не порядок сортировки. Результаты идут во внутреннем порядке документов архива. Допускается не более 100 записей в ответе и 100 страниц на запрос. Общее число совпадений может быть точным, нижней оценкой или неизвестным, в том числе null. Даже точный итог не означает, что клиент получил все записи. Числа в агрегации сообществ также не следует трактовать как гарантированно точные значения для всего архива.
Разделяйте структуру данных, ошибки и оплату
Ответ содержит плоские записи, а не готовое дерево разговора. Если в полученных объектах есть parent_id и link_id, клиент может группировать их самостоятельно. Фильтров поиска по этим двум полям нет. Отсутствующий родитель не даёт оснований придумывать связь или считать ветку полностью собранной. При локальном отображении сохраняйте исходные идентификаторы и отличайте текст источника от собственной интерпретации приложения. Любые выводы о тоне обсуждения или его участниках относятся к вашему анализу, а не к отдельной функции API.
HTTP 400 означает некорректный запрос, 401 — отсутствующий или недействительный ключ, 402 — недостаточный баланс, 429 — ограничение частоты. Прежде чем повторять действие, устраните его причину; новый успешный запрос учитывается отдельно. Успешное получение данных, включая пустой ответ, стоит один кредит. Некорректные запросы не списывают кредиты, а при ошибке источника резерв возвращается. Ключи и балансы принадлежат этому домену: учётные данные другого бренда сети не дают права выполнять здесь защищённые запросы.