Reddit API
Reddit APIを使用すると、Redditの投稿を検索したり、スレッド化されたコメントを含む完全な投稿を取得したりできます。両方のエンドポイントは、サブレディット、作成者、スコア、フレア、アワード、メディアフィールドを含む構造化されたJSONを返します。これを利用して、ディスカッションを認識するエージェント、ブランドモニタリング、感情分析、またはコミュニティのコンテキストを必要とするRAGパイプラインを強化できます。
エンドポイント
| エンドポイント | クレジット | 説明 |
|---|---|---|
POST /api/v1/reddit/search | 2 | クエリ、ソート、ページネーションカーソルでRedditの投稿を検索します |
POST /api/v1/reddit/post | 2 | Redditの投稿URLからスレッド化されたコメントを含む完全な投稿を取得します |
認証
| ヘッダー | 値 | 必須 |
|---|---|---|
Authorization | Bearer YOUR_API_KEY | はい |
Content-Type | application/json | はい |
投稿検索
POST https://api.scavio.dev/api/v1/reddit/searchReddit全体でRedditの投稿を検索します。タイトル、URL、サブレディット、作成者、タイムスタンプ、NSFWフラグを含む投稿メタデータを返します。カーソルトークンによるページネーションをサポートしています。
リクエストボディ
| パラメータ | 型 | デフォルト | 説明 |
|---|---|---|---|
query | string | -- | 必須。 検索クエリ(1〜500文字)。 |
sort | string | relevance | ソート順。いずれか: relevance, hot, top, new, comments |
cursor | string | -- | 前のレスポンスのnextCursorフィールドからのページネーショントークン。 |
例
curl -X POST 'https://api.scavio.dev/api/v1/reddit/search' \
-H 'Authorization: Bearer sk_live_your_key' \
-H 'Content-Type: application/json' \
-d '{
"query": "best python web frameworks 2026",
"sort": "new"
}'レスポンス例
{
"data": {
"searchQuery": "best python web frameworks 2026",
"totalResults": 14,
"nextCursor": "eyJjYW5kaWRhdGVzX3JldH...",
"posts": [
{
"position": 0,
"id": "t3_1smb9du",
"title": "FastAPI vs Django in 2026 -- what the teams are actually using",
"url": "https://www.reddit.com/r/Python/comments/1smb9du/fastapi_vs_django/",
"subreddit": "Python",
"author": "python_dev",
"timestamp": "2026-04-15T16:34:40.389000+0000",
"nsfw": false
}
]
},
"response_time": 5200,
"credits_used": 2,
"credits_remaining": 498
}ページネーション
次のページを取得するには、前のレスポンスのnextCursor値を次のリクエストのcursorパラメータとして渡します。nextCursorがnullの場合、それ以上結果はありません。
投稿詳細
POST https://api.scavio.dev/api/v1/reddit/postURLから完全なReddit投稿を取得します。投稿本文、メタデータ、完全なスレッド化されたコメントツリーが含まれます。コメントにはdepthフィールドが含まれており、スレッド階層を再構築するために使用できます。
リクエストボディ
| パラメータ | 型 | デフォルト | 説明 |
|---|---|---|---|
url | string | -- | 必須。 完全なReddit投稿URL(例: https://www.reddit.com/r/Python/comments/1smb9du/fastapi_vs_django/)。 |
例
curl -X POST 'https://api.scavio.dev/api/v1/reddit/post' \
-H 'Authorization: Bearer sk_live_your_key' \
-H 'Content-Type: application/json' \
-d '{
"url": "https://www.reddit.com/r/Python/comments/1smb9du/fastapi_vs_django/"
}'レスポンス例
{
"data": {
"post": {
"id": "t3_1smb9du",
"title": "FastAPI vs Django in 2026 -- what the teams are actually using",
"body": "After a year of running both in production...",
"url": "https://www.reddit.com/r/Python/comments/1smb9du/fastapi_vs_django/",
"contentUrl": "https://www.reddit.com/r/Python/comments/1smb9du/fastapi_vs_django/",
"subreddit": "Python",
"author": "python_dev",
"score": 842,
"upvoteRatio": 0.97,
"numComments": 214,
"timestamp": "2026-04-15T16:34:40.389000+0000",
"flair": "Discussion",
"nsfw": false,
"awards": []
},
"comments": [
{
"id": "t1_lxs9a0k",
"author": "senior_py",
"body": "We moved to FastAPI for the API surface and kept Django for admin...",
"score": 312,
"depth": 0,
"timestamp": "2026-04-15T17:02:11.000000+0000",
"parentId": "t3_1smb9du"
},
{
"id": "t1_lxsa1b2",
"author": "django_dev",
"body": "Django ORM is still unmatched for anything with relational depth.",
"score": 178,
"depth": 1,
"timestamp": "2026-04-15T17:15:42.000000+0000",
"parentId": "t1_lxs9a0k"
}
]
},
"response_time": 8900,
"credits_used": 2,
"credits_remaining": 496
}コメントツリーの再構築
コメントは、トラバース順のフラットな配列として返されます。depthフィールド(0から始まる)を使用して視覚的なインデントを行うか、各コメントのparentIdを介して完全なツリーを再構築できます。トップレベルの返信は、parentIdが投稿ID(例: t3_…)に等しく、ネストされた返信は、parentIdが別のコメントID(例: t1_…)に等しくなります。
urlとcontentUrlの違い
urlは投稿の正規のRedditパーマリンクです。contentUrlは、Redditが投稿本文でレンダリングするURLです。リンク投稿の場合は外部記事、自分/テキスト投稿の場合はurlと同じ、画像/動画投稿の場合はi.redd.itまたはv.redd.it上のメディアURLです。
レスポンス形式
両方のエンドポイントは一貫したレスポンスラッパーを返します:
| フィールド | 型 | 説明 |
|---|---|---|
data | object | null | レスポンスペイロード。上流のリクエストが失敗した場合はnull。検索は{searchQuery, totalResults, nextCursor, posts}を返し、投稿は{post, comments}を返します。 |
response_time | number | サーバー側の応答時間(ミリ秒) |
credits_used | number | 消費されたクレジット数(Redditエンドポイントでは常に2) |
credits_remaining | number | 現在の請求期間に残っているクレジット |
エラーレスポンス
| ステータス | 説明 |
|---|---|
400 | 無効なリクエストボディ -- query/urlの欠落、不正なカーソル、またはサポートされていないソート値 |
401 | 認証エラー -- APIキーがないか無効 |
429 | プランのレートまたは使用制限を超えました |
502 | 上流エラー -- 少し待ってから再試行 |
503 | 上流が利用不可 -- 後で再試行 |
504 | 上流タイムアウト -- Redditリクエストは5〜15秒かかることがあります。より長いクライアントタイムアウトで再試行してください |
完全なエラーリファレンスと再試行のベストプラクティスについては、エラーを参照してください。
関連項目
- クイックスタート -- APIキーを取得して最初のリクエストを行います
- Google Search API -- 構造化されたSERPデータでGoogleを検索します
- YouTube API -- 動画を検索してメタデータを抽出します
- Amazon API -- 12のマーケットプレイスでAmazon製品を検索します
- Walmart API -- フルフィルメントフィルターでWalmart製品を検索します
- レート制限 -- プラン層ごとの制限