.jpeg)
2026年5月下旬、Redditは静かにスイッチを切り替え、多くのソフトウェアが一夜にして機能しなくなりました。認証されていないリクエスト、特にスクレイパーや趣味のスクリプト、さらにはいくつかのMCPサーバーが長年依存していた.jsonトリックが、HTTP 403を返すようになりました。
概要:
- OAuthは現在、必須要件となっており、従来のショートカットは公式に使用できなくなりました。
- アプリの登録は始まりに過ぎず、新しいOAuthクライアントは使用する前にRedditの承認が必要です。
- 最も多くの実装失敗は、壊れたコードではなく、小さな設定ミスから生じます。
- 公開されたレート制限は必ずしも全体の状況を示すわけではないため、アプリケーションはレスポンスヘッダーを信頼すべきです。
- 認証は戦いの半分に過ぎず、コンプライアンス要件は本番環境の統合にさらに大きな影響を与える可能性があります。
もしあなたの統合がそのショートカットに依存していたなら、それは機能しなくなりました。もしそうでないなら、今こそOAuthの実装が実際に堅牢であるかを確認する良い機会です。Redditのドキュメントはメカニズムを適切にカバーしていますが、どこでそのメカニズムがリスクに変わるかについては警告していません。一緒に大局を見てみましょう。
これは実装計画のための技術的概要であり、法的助言ではありません。RedditのAPIの利用規約と施行姿勢は過去数年で大きく変化しており、再び変わる可能性があります(誰にもわかりません)ので、依存するものを構築する前に商業利用およびライセンスに関する質問を法律顧問に確認してください。
Reddit OAuth API ドキュメント: 認証フローの基本
.jpg)
1. OAuthはオプションではなく、厳格に適用されます
RedditはOAuthまたはログイン資格情報なしのトラフィックをブロックし、特定できないAPIユーザーを自由に制限またはブロックします。あなたの組織がRedditの2023年のAPI変更前に作成されたスクレイパーを引き継いだ場合、それは借りた時間で動いていると考えてください。
2. 登録はステップゼロですが、もはや全てのゲートではありません
reddit.com/prefs/appsでアプリを登録し、タイプを選択し、リダイレクトURIを設定し、クライアントID(機密アプリの場合はシークレットも)を取得します。Redditは3つのタイプを区別します:
- スクリプトアプリ – 個人またはサーバーサイドでの使用。あなた自身のアカウントを一度の認可ステップで承認し、他のユーザーのためにログインフローを構築する必要はありません。
- ウェブアプリ – 他のRedditユーザーを認可するための完全なリダイレクトベースのフロー。
- インストールアプリ – シークレットを安全に保持できないクライアントサイド/モバイルコンテキスト。
スクリプトアプリとウェブアプリは機密性がありますが、インストールアプリはそうではありません。「スクリプト」を選択すると、実際に他のユーザーを認可する必要がある場合、2か月後に認証レイヤーを再構築することになります。
もう一つのポイント:2025年末以降、アプリの登録は必要ですが、もはや十分ではありません。Reddit Data APIへのアクセスを要求する新しいアプリケーションは、プロダクションアクセスが付与される前にRedditの責任あるビルダーポリシーの承認を必要とする場合があります。
3. 認証フローはアプリのタイプに従います
ここで多くの統合が誤って接続されます。
- ウェブアプリのみが古典的な意味での認可コードフローを使用します – ユーザーをリダイレクトし、コードを取得し、それを交換します。
- スクリプトアプリは異なる方法で動作します:パスワードグラント(
grant_type=password)で直接認証し、開発者自身のRedditユーザー名とパスワードをクライアント資格情報と共に渡します。これはスクリプトアプリのための現在の文書化されたアプローチであり、「標準的な」ものに置き換えるための古い方法ではありません – スクリプトアプリを認可コードフローに強制的に通そうとすると、Redditが期待していなかったフローのデバッグに悩まされることになります。 - インストールアプリは中間に位置します:クライアントシークレットを安全に保持できないため、シークレットなしで認可コードフローを使用し、暗黙的フローにフォールバックできる唯一のアプリタイプです。
アプリのタイプに対してグラントタイプを間違えると、表示されるエラーは不正な資格情報のように見えますが、実際の問題はフロー自体です。
4. stateと正確なリダイレクトURIの一致が統合の失敗を引き起こします
2つの要件、1つの共通の失敗モード:リクエストは正しく見えますが、Reddit APIはそれを拒否します。
- state:認可リクエストごとに一意の値で、戻り時に検証され、CSRFスタイルのハイジャックを防ぎます。これをスキップすることは、単なる監査結果ではなく、実際の攻撃面です。
- redirect_uri:登録されているものと文字通り一致しなければなりません – 認可ステップとトークン交換の両方で。末尾のスラッシュやhttp/httpsのタイプミスは静かに失敗します。
5. トークンは1時間で期限切れになります – 初日からリフレッシュを計画してください
ベアラートークンは1時間後に期限切れになります。これは、テストで動作していた統合が、リフレッシュフローを構築しなかったためにプロダクションで暗くなるまで問題ありません。継続的なアクセスが必要な場合は、認可時にduration=permanentでリフレッシュトークンを要求し、出荷前にリフレッシュロジックを構築してください。最初の障害の後ではありません。
5つ目のポイントで既に疲れましたか?私たちも疲れました。Data365はこれらすべてを1つのクリーンなAPIコールにまとめているので、私たちに連絡して、これらのハンガーゲームを忘れてください。
Reddit OAuth API ドキュメント: レート制限とスコープ

6. スコープ: 必要最低限のリクエストを
トークンはスコープによって制限されています(読み取り、投稿、投票、モデレーターログ、モデレーターポストなど)。「念のため」に広範なアクセスを要求することは避けましょう。過剰なスコープのトークンはセキュリティレビューのリスクとなり、実際に使用するものだけを要求するリクエストは、昇格または商業アクセスを申請する際にずっと簡単な会話になります。
7. oauth.reddit.com にアクセスし、www.reddit.com にはアクセスしない
ベアラートークンを取得したら、リクエストは oauth.reddit.com に送信されます。通常のサイトドメインにアクセスすると、実際の認証ロジックとは無関係な混乱した失敗が発生します。他に何も理解できない場合は、まずホスト名を確認してください。
8. レート制限は多くのチュートリアルが認めるよりも低く、厳格です
Reddit のデータ API 条件では、OAuth による無料プランの制限は、10 分間のウィンドウで平均して 1 分あたり 100 クエリと説明されています。しかし、ユーザーは Reddit API の制限 を異なる方法で説明しています – OAuth クライアントごとに 1 分あたり 100 リクエストです。
どちらの数字を盲目的に基にしてキャパシティプランニングを行わないでください – 自分のレスポンスヘッダーを真実として扱いましょう: X-Ratelimit-Used、X-Ratelimit-Remaining、および X-Ratelimit-Reset はすべてのリクエストに返され、現在の正確な数字に関係なく、あなたの状況を正確に教えてくれます。
これは、チームが OAuth アプリを管理し、レート制限のペースを自分たちで調整するか、すでにそのレイヤーを持っている誰かに任せるかを検討し始めるポイントでもあります。Data365 では、これが私たちのパイプラインの中心となる問題です – トークンの更新、ヘッダーの監視、バックオフを処理し、その上にクリーンなデータを提供します。リクエストキューに時間を費やすよりも、製品にエンジニアリングの時間を使いたいのであれば、ぜひ お問い合わせください。
Reddit OAuth API ドキュメント: 準拠と注意すべき条件

9. 無料プランは商業利用や承認のスキップを許可するものではありません
無料プランは明示的に商業利用を目的としておらず、RedditのデータAPI利用規約には、それを超えたデータの使用に関するさらなる制限が定められています。これは、Redditが形式的なものとして扱うのではなく、積極的に施行している境界です。ポイント2から繰り返しになりますが、非商業的な無料プランのアクセスでさえ、同じ事前承認のステップを経る必要があります。もはや、動作するトークンを得るための完全なセルフサービスの道は存在しません。
いくつかの小さなコンプライアンス要件も同じ会話に含まれます:
- ユニークで説明的なUser-Agentを使用する (
platform:app_id:version (by /u/username)) – 一般的なものは厳しく制限されます。 - Redditから削除されたユーザーコンテンツは、削除後に必ず削除してください。
- 承認に時間を見積もる – モデレーター用ツールや資金提供された研究には信頼性がありますが、商業ワークロードには遅く、しばしば静かです。
プロジェクトに商業的な側面がある場合、このセクション – OAuthハンドシェイクではなく – をコードを書く前に法務に持ち込むべきです。
10. ドキュメント自体を動的なターゲットとして扱う
Redditのアーカイブされたドキュメントと現在のドキュメントは、必ずしも互いに一致するわけではなく、第三者のガイドとも一致しません (ポイント8を参照)。生産に関する決定を行う前に、必ず現在の開発者利用規約とデータAPI利用規約を直接確認してください – アーカイブされたウィキや、2年前のチュートリアル、そして今から6ヶ月後の記事ではありません。
直接のOAuth統合が、特に承認待ちやレート制限のペースが関わってくると、あなたのチームが所有したくないほどの作業になる場合、それを解決するためにData365のソーシャルメディアAPIが構築されています。
まとめ:Reddit OAuth API ドキュメントのための迅速な実装チェックリスト
- アプリを登録し、クライアント ID(および該当する場合はシークレット)をメモし、新しい OAuth クライアントの場合は Reddit の責任あるビルダーポリシーに基づいて承認を申請します。
- コードを書く前に、正しいアプリタイプ(スクリプト、ウェブ、またはインストール済み)を選択します。
client_id、response_type、state、redirect_uri、およびscopeを使用して認証 URL を構築します。- 戻り時に state を確認し、
redirect_uriが正確に一致することを確認します。 - 認証コードをアクセストークンに交換します。
- 継続的なアクセスが必要な場合は、
duration=permanentをリクエストし、リフレッシュトークンを安全に保存します。 Authorization: bearer TOKENを使用してoauth.reddit.comにリクエストを送信します。- すべてのレスポンスで
X-Ratelimit-Used、X-Ratelimit-Remaining、およびX-Ratelimit-Resetを監視します。 - 必要な形式でユニークで説明的な User-Agent を使用します。
- あなたのユースケースが無料プランの非商業的条件に該当することを確認するか、早めに承認の話を始めます。
- 基盤となるコンテンツやアカウントが削除された場合は、ユーザーデータを削除します。
- 本番環境に出荷する前に、上記すべてを Reddit の現在の条件に照らして再確認します。
12のステップを終えました。おめでとうございます。これで Reddit の OAuth フローについて、ほとんどの Reddit のドキュメントページが合意している以上のことを知ることができました。
すべてのプラットフォームでこのダンスをしたくない場合 - 今日の Twitter、次の四半期の TikTok、そしてその間の Pinterest - Data365 は 2018 年からの 8 年間で「今週どの API 条件が変更されたか」を他の誰かの問題に変えてきました。
- 承認プロセスはクエストのようではありません – 必要なものとその量について話し合うためにお問い合わせいただければ、できるだけ早く開始できるようお手伝いします。
- 1つの API、複数のプラットフォーム – Reddit、Facebook、Instagram、TikTok、Threads などが同じロジックのもとに一つの屋根の下にあります。
- 20以上の構造化データタイプ – 投稿、コメント、メディアなど。
- ライブクエリ、キャッシュされたスナップショットではない – リクエスト時に最新のデータを取得し、クエリパラメータを通じて過去のコンテンツもオンデマンドで取得できます。
- クリーンな JSON 出力 – パイプライン用に構築されているため、その間にパースやクリーンアップのステップはありません。
- 99% の稼働時間 – それを支えるインフラストラクチャ。
- 読むためのドキュメント – チケットキューではなく、実際の人々からなるサポートチームがバックアップしています。
200社以上がすでにこの頭痛の種をアウトソーシングしています。 Data365から無料トライアルを取得し、実際に作りたかったものを構築してください。
Data365 API を使用して主要なソーシャルメディアネットワークからデータを抽出
14 日間の無料試用版をリクエストして 20 種類以上のデータタイプを入手してください
.jpeg)


