名前の一覧か、内容の記録か
コミュニティ選択欄を作る場合は/v1/subredditsを先に検討します。ホームのhttps://api.redditapihub.com/v1/subreddits?prefix=program&limit=3では、prefixは名前の先頭部分、limitは要求件数の上限です。話題のカテゴリや投稿本文の検索ではありません。返された名前をローカルの一覧に移せますが、Reddit全体やアーカイブ全体の完全な在庫として表示しないでください。
コミュニティの出力にアルファベット順や全体の正確な件数は保証されません。手元で並べ替えても対象は受信した名前だけです。ある名前が出ても関連する全投稿やコメントが利用できる証明にはならず、次の内容要求は別に評価します。空の先頭一致結果もReddit全体にその名前がないという意味ではありません。実行した要求で分かる範囲に結論を限ってください。
Reddit API Hubは独立した過去のアーカイブで、Redditの公式サービスやライブサービスではありません。OAuth、書き込み、投票、メッセージは提供しません。適したルートがあっても特定の時期や記録が取得できるとは限りません。作業に必要なのが現在の情報か過去の記録かを先に決めてください。名前の選択と内容の網羅性は異なる問題です。
検索、種類別の一覧、一件の取得
投稿とコメントの記録を条件で検索するのが/v1/searchです。投稿だけなら/v1/posts、コメントだけなら/v1/commentsを選びます。完全な会話や自動分析が返るわけではありません。実際の応答のフィールドを調べて、自分のスキーマに対応付けます。本文、見出し、関係情報がないときの動きを定め、受信していない内容を推測で補わないでください。
識別子が分かる一件には/v1/item?id=...を使います。idはpostsやcommentsのフィルターではありません。検索のルートではq、subreddit、author、kind、UTCのYYYY-MM-DD形式のfromとtoが使え、toの日を含みます。kindはpostまたはcommentです。min_scoreは最低スコアで並べ替えではありません。同じ条件をすべてコミュニティのルートへ移さず、入力の違いを保ってください。
平坦な記録を読む、分類する、数えるためにツリーは不要です。関係を調べる場合は存在するparent_idやlink_idで任意に整理できますが、これらはクエリフィルターではなく欠けた親やコメントも戻りません。コメント一覧を全会話として、投稿一覧を全返信の入った構造として見せないでください。受信した関係の範囲を結果の説明にも残します。
結果の限界とサーバーからのアクセス
検索、投稿、コメントは一要求最大100件、一クエリ最大100ページで、各ページは別に要求します。結果はアーカイブ文書順で日時、関連度、スコア順ではありません。合計のeqは正確、gteは下限、unknownやnullは信頼できる合計がない状態です。正確な値も全件保存の証明ではありません。期間分割は網羅性や重複のなさを保証しません。
キーはサーバーに置き、Authorization: Bearer YOUR_API_KEYまたはX-API-Key: YOUR_API_KEYで送ります。アカウントCookieは別用途です。無料の/v1/statusは固定の範囲とHTTP応答だけを示し、アーカイブ、キー、残高を検査しません。HTTP 400は条件、401はキー、402は残高を修正し、429では送信を待ちます。すべてを同じ自動再送にしないでください。
成功した取得は空でも一クレジットです。不正な要求は引き落とされず、上流障害では予約分が戻ります。クライアントが応答を失う前にサーバーで有料の成功が成立する場合があり、成功した再試行は追加費用です。保存したページを自分の記録で追ってください。ドキュメントは仕様、料金は予算、APIキー取得はアカウント操作を説明します。正しいルートの選択もデータの網羅性を保証しません。