Маршруты и аутентификация
API Reddit CC предоставляет независимый исторический архив данных Reddit, который не является официальным сервисом Reddit и не обновляется в реальном времени. Для начала работы автоматизации необходимо сгенерировать API-ключ через интерфейс регистрации с паролем. Ключ отображается один раз сразу после создания аккаунта, до момента оплаты, поэтому его необходимо сохранить надежно. Ключи и баланс относятся к аккаунту на apireddit.cc и не действуют на других сайтах сети.
Основной маршрут поиска /v1/search поддерживает параметры q, subreddit, author, kind, from, to, min_score, limit и page. Параметры from и to задаются в формате YYYY-MM-DD по UTC; день to включается в диапазон. Маршрут /v1/item требует обязательного параметра id, в то время как маршруты /v1/posts и /v1/comments не требуют указания идентификатора. Поддерживаемые значения kind ограничены значениями post и comment. Маршрут /v1/subreddits поддерживает префиксный поиск, а /v1/status возвращает статическое сообщение о состоянии сервера и не проверяет работоспособность поискового источника или доступность данных.
Для аутентификации передайте ключ в Authorization: Bearer или X-API-Key. Если ключ отсутствует или неверен, сервер возвращает код HTTP 401, что требует перепроверки учетных данных в панели управления. Каждый успешный запрос на получение данных списывает один кредит, даже если результат пуст. Сбои источника возвращают зарезервированный кредит, а запрос к /v1/status является бесплатным и не списывает средства, но подтверждает только ответ HTTP-приложения, а не доступность архивного поиска.
Фильтрация и структура данных
Параметр min_score используется исключительно как фильтр для отсечения записей по минимальному рейтингу, но он никогда не выполняет сортировку результатов. Порядок документов в архиве соответствует внутреннему порядку _doc и не является сортировкой по времени, релевантности или оценке. Максимальное количество записей в одном запросе ограничено ста записями, а количество страниц также не может превышать ста. Это ограничение означает, что итерация по страницам не гарантирует полного покрытия или исчерпывающего экспорта всего архива, и нельзя утверждать, что все совпадающие записи были получены.
Ответы API содержат плоские записи, а не деревья обсуждений, собранные сервером. Если в возвращаемых записях присутствуют поля parent_id и link_id, клиент может сгруппировать их локально для построения контекста. Однако сервер не гарантирует полноту беседы или наличие всех родительских записей, и не существует открытых параметров фильтрации по link_id или parent_id. Это означает, что клиент должен самостоятельно обрабатывать связанные данные, если это необходимо для логики автоматизации, поскольку сервер не предоставляет готовые древовидные структуры.
Параметр kind определяет тип запрашиваемых данных и может принимать значения post или comment. Для маршрута /v1/item параметр id является обязательным, в то время как для поиска по постам и комментариям он не требуется. Ограничения лимитов строгие: не более ста записей за запрос и ста страниц на поисковую выборку. Суммарное количество результатов может быть точным (eq), нижней границей (gte) или неизвестным (unknown), что зависит от внутренней реализации. Перебор разрешённых страниц не гарантирует полного охвата архива. Параметр q ищет по title и text; несколько слов соединяются условием AND внутри совпадающего поля.
Обработка ошибок и тарификация
Система обрабатывает четыре основных кода ошибок HTTP: 400 для неверного запроса, 401 для отсутствующего или неверного ключа, 402 для недостаточного баланса кредитов и 429 для превышения лимита частоты запросов. Код 401 возникает, если ключ не был передан или он недействителен. Код 402 блокирует выполнение запроса, если на счете недостаточно средств для оплаты кредита. Код 429 указывает на временное ограничение скорости, после которого необходимо повторить запрос позже. Все эти коды должны быть представлены как числовые значения в ответах API.
Тарификация основана на принципе оплаты за успешное извлечение данных. Каждый успешный запрос стоит один кредит, при тарифе $1 за 1000 успешных запросов. Минимальная сумма пополнения составляет пятьдесят долларов США. Платные кредиты не имеют срока действия и не привязаны к подписке. Аккаунт может получить 100 пробных кредитов при соблюдении общих для сети условий защиты от злоупотреблений. Для пополнения войдите в аккаунт, создайте счёт на сервере, отправьте точную сумму на указанный адрес получателя и передайте хеш транзакции на проверку.
При сбое источника зарезервированный кредит возвращается на баланс пользователя; некорректный запрос не списывает кредит. Если клиент потерял ответ после успешного выполнения на сервере, списание могло уже произойти, а успешный повтор стоит ещё один кредит. /v1/status не тарифицируется и не проверяет источник поиска. Для данных аккаунта не установлен фиксированный срок хранения; это не гарантирует постоянной доступности архивных записей.