레딧 API
레딧 API를 사용하면 레딧 게시물을 검색하거나 스레드 댓글이 포함된 전체 게시물을 가져올 수 있습니다. 두 엔드포인트 모두 서브레딧, 작성자, 점수, 플레어, 어워드, 미디어 필드가 포함된 구조화된 JSON을 반환합니다. 이를 사용하여 토론 인식 에이전트, 브랜드 모니터링, 감정 분석 또는 커뮤니티 기반 컨텍스트가 필요한 RAG 파이프라인을 구동할 수 있습니다.
엔드포인트
| 엔드포인트 | 크레딧 | 설명 |
|---|---|---|
POST /api/v1/reddit/search | 2 | 쿼리, 정렬, 페이지네이션 커서로 레딧 게시물 검색 |
POST /api/v1/reddit/post | 2 | 레딧 게시물 URL로 전체 게시물과 스레드 댓글 가져오기 |
인증
| 헤더 | 값 | 필수 |
|---|---|---|
Authorization | Bearer YOUR_API_KEY | 예 |
Content-Type | application/json | 예 |
게시물 검색
POST https://api.scavio.dev/api/v1/reddit/search전체 레딧에서 게시물을 검색합니다. 제목, 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로 전체 레딧 게시물을 가져옵니다. 게시물 본문, 메타데이터, 전체 스레드 댓글 트리가 포함됩니다. 댓글에는 스레드 계층 구조를 재구성하는 데 사용할 수 있는 depth 필드가 있습니다.
요청 본문
| 파라미터 | 타입 | 기본값 | 설명 |
|---|---|---|---|
url | string | -- | 필수. 전체 레딧 게시물 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은 게시물의 표준 레딧 퍼머링크입니다. contentUrl은 레딧이 게시물 본문에 렌더링하는 URL입니다. 링크 게시물의 경우 외부 기사 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 | 사용된 크레딧 수 (레딧 엔드포인트의 경우 항상 2) |
credits_remaining | number | 현재 청구 기간에 남은 크레딧 |
오류 응답
| 상태 | 설명 |
|---|---|
400 | 잘못된 요청 본문 - query / url 누락, 잘못된 커서, 또는 지원되지 않는 정렬 값 |
401 | 인증 실패 - API 키 누락 또는 유효하지 않음 |
429 | 요금 한도 또는 사용량 한도 초과 |
502 | 상위 오류 - 짧은 지연 후 재시도 |
503 | 상위 서비스 이용 불가 - 나중에 재시도 |
504 | 상위 타임아웃 - 레딧 요청은 5-15초가 소요될 수 있음; 더 긴 클라이언트 타임아웃으로 재시도 |
전체 오류 참조 및 재시도 모범 사례는 오류를 참조하세요.
관련 문서
- 빠른 시작 - API 키를 받고 첫 번째 요청 만들기
- Google 검색 API - 구조화된 SERP 데이터로 Google 검색
- YouTube API - 동영상 검색 및 메타데이터 추출
- Amazon API - 12개 마켓플레이스에서 Amazon 제품 검색
- Walmart API - 배송 필터로 Walmart 제품 검색
- 요금 한도 - 요금제별 한도