Reddit API Stack

PythonとJavaScriptをRedditアーカイブに接続する

APIキーを取得

リクエスト例

Python

import json
import urllib.request

request = urllib.request.Request('https://api.redditapistack.com/v1/search?q=asyncio&subreddit=learnpython&limit=3',
    headers={"Authorization": "Bearer YOUR_API_KEY"})
with urllib.request.urlopen(request, timeout=30) as response:
    payload = json.load(response)
print(payload)

JavaScript

const response = await fetch("https://api.redditapistack.com/v1/search?q=asyncio&subreddit=learnpython&limit=3", {
  headers: { Authorization: "Bearer YOUR_API_KEY" }
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
const payload = await response.json();
console.log(payload);

独立した過去データのアーカイブ

Reddit API Stackは、Redditの過去の投稿やコメントを取得する独立したアーカイブAPIです。Redditの公式サービスでも提携サービスでもなく、リアルタイムのデータは提供しません。PythonとJavaScriptのアプリはHTTPを通じて利用できますが、全履歴の収録、恒久的なアクセス、記録の不変性は保証されません。

RedditのOAuthフローではなくAPIキーで取得を認証します。両言語から同じGETルートとX-API-Keyヘッダーを使えます。パラメーターの作成、HTTP通信、応答の変換を分けて実装すれば、それぞれの動作を比較しやすくなります。これは設計上の提案であり、統合時間や性能の測定結果ではありません。

まず小さなクエリを送り、実際に返るフィールドを確認してください。アーカイブは現在のRedditと同期した一覧ではなく、取得できた記録にも限界があります。原文の応答と検索条件を保存しておくと、アプリ内の分析が何に基づくかを説明できます。同じクエリの再実行が同一の結果を返すとは限りません。

リクエスト単位の料金と残高追加

成功したデータ取得は、空の結果でも1回につき1クレジットを消費します。1000回の成功で1米ドルです。1回の応答は最大100件ですが、返る件数でそのリクエストの単価は変わりません。ページを追加で取得した場合や再試行が成功した場合は、それぞれ別の取得として数えます。

最低の有料チャージ額は50米ドルで、50000有料クレジットに相当します。定期契約はなく、購入したクレジットに有効期限はありません。キーと残高はこのドメインのアカウントに属し、ネットワーク内の他サイトと共通ではありません。不正利用防止条件を満たす場合、100クレジットの試用枠が提供されることがあります。

支払い前にログインして請求書を作成します。USDTはTRON TRC20、USDCはEthereumメインネットERC20のみ対応します。請求書の受取先へ正確な金額を送り、実際の取引ハッシュを貼り付けて検証を要求してください。本物の確認済み送金が検証されてから残高に加わります。処理時間は保証されません。

無効なリクエストは消費せず、上流の失敗では予約されたクレジットを返します。クライアント切断がサーバーの成功後なら課金されている可能性があります。公開の/v1/statusは無料ですが、静的な説明とHTTP応答の確認に限られ、検索基盤やアーカイブの健全性を調べるものではありません。

対応ルートとアプリ側の処理

GET /v1/searchは検索、/v1/postsは投稿、/v1/commentsはコメントの一覧に使います。単一の記録には/v1/itemとidを指定します。投稿とコメントの一覧にidは不要です。/v1/subredditsはprefixでコミュニティ名を探せます。目的に合うルートを選び、すべてのルートに同じフィルターを送れるとは考えないでください。

q、subreddit、author、kind、日付などで検索を絞れます。min_scoreは最低スコアの条件で、並べ替えではありません。結果は内部_doc順で、日付、関連度、スコアの順ではありません。1回最大100件、1クエリ最大100ページという上限まで取得しても、すべての一致記録がそろう保証はありません。

応答は平坦なレコードです。parent_idやlink_idがあればローカルでグループ化できますが、完全な会話は保証されません。キーはメールとパスワードによる登録直後、支払い前に一度だけ表示されます。ログイン後、パスワード確認で再生成すると古いキーは直ちに無効になります。パスワードリセットとキーのメール送信はありません。