레딧 프로필 API, spez 글 23건이 1크레딧에 와요
레딧 프로필 API로 계정·게시물·댓글 검색·서브레딧·미디어·댓글 히스토리를 읽어요. spez 프로필은 1크레딧, 글 23건도 1크레딧이에요. 측정 2026-09-08.
레딧 프로필 API는 handle 하나로 계정 객체를 돌려줘요. 같은 핸들로 그 사람이 쓴 글도 읽어요. 2026-09-08 00:15:49Z–00:16:41Z에 픽스처 spez를 쳤고, 프로필은 1크레딧, 글 23건도 1크레딧이었어요. 이번 수확 청구는 18크레딧이에요.
여섯 읽기가 이번 수확에서 보여 준 값은 이래요.
| 경로 | 이 수확 | 크레딧 |
|---|---|---|
GET /v1/reddit/profile?handle=spez | 계정 객체. karma 940,980 | 1 |
GET /v1/reddit/profile/posts?handle=spez | 23건, has_more=false | 1 |
GET /v1/reddit/search/comments | author:spez 14 / 토픽 22 / 기계식 키보드 4 | 각 1 |
GET /v1/reddit/subreddits/search?query=machine+learning | 25 커뮤니티. 2페이지는 25건 중 5개 id가 1페이지와 중복 | 각 1 |
GET /v1/reddit/search/media?query=mechanical+keyboard+build | 25건. media_urls는 URL 문자열 24/25, 배열 아님 | 1 |
GET /v1/reddit/profile/comments?handle=spez&limit=5 | 5건, 10크레딧. 최신 2026-08-05 | 10 |
게시물 검색 페이지 크기와 스레드 댓글 밀도는 레딧 API, 검색 1크레딧에 25건이 온다에서 다뤄요. 이번 글의 자리는 사람·댓글 본문·커뮤니티 발견이에요.
공식 Reddit Data API는 OAuth 앱과 User-Agent가 선행이에요. 이 호출은 x-api-key만 넣으면 돼요. 무료 티어 QPM은 2015 위키가 60, Help 센터 스니펫이 100이라 승자를 고르지 않아요. 이 수확은 SocialCrawl API로 쳤고, 아래 숫자는 그 엔벨로프의 len(items)와 credits_used예요.
계정 핸들 하나로 프로필과 그 사람이 쓴 글은 어떻게 읽나요?
사람 단위 읽기의 첫 호출은 프로필이에요. 계정 객체가 오면, 같은 handle로 레딧 계정 게시물 API를 이어서 쳐요. 재매핑은 없어요. author.id가 유저명 그 자체고, 그게 profile/posts와 profile/comments의 handle이에요.
PRAW Quick Start의 reddit.redditor("spez")는 client id·secret·User-Agent가 먼저예요. 카르마를 print하는 것까지가 그 페이지의 기본 예제고, 제출물 루프는 다른 문서예요. 이쪽은 헤더 하나면 돼요.
프로필 한 호출이 계정을 주나요?
줘요. 레딧 유저 프로필 API 호출은 이거예요.
curl -s -H "x-api-key: $SOCIALCRAWL_API_KEY" \
"https://www.socialcrawl.dev/v1/reddit/profile?handle=spez"import os
import requests
BASE = "https://www.socialcrawl.dev"
r = requests.get(
f"{BASE}/v1/reddit/profile",
params={"handle": "spez"},
headers={"x-api-key": os.environ["SOCIALCRAWL_API_KEY"]},
timeout=60,
)
r.raise_for_status()
payload = r.json()
author = payload["data"]["author"]
ext = author["ext"]
print(
author["id"],
author["likes_count"],
ext["post_karma"] + ext["comment_karma"] + ext["awardee_karma"],
payload.get("credits_used"),
)이번 수확 출력은 spez 940980 940980 1이었어요. HTTP 200, cached=false, 1크레딧이에요. 통합 스키마의 author 객체만 잘라 보면 이래요.
{
"credits_used": 1,
"data": {
"author": {
"id": "spez",
"username": "spez",
"display_name": "t2_1w72",
"bio": "Reddit CEO",
"joined_at": "2005-06-06T04:00:00.000000+0000",
"likes_count": 940980,
"followers": null,
"ext": {
"post_karma": 184487,
"comment_karma": 756493,
"awardee_karma": 0,
"trophy_count": 52,
"banner_url": "",
"profile_title": "spez"
}
}
}
}케이크데이 joined_at은 2005-06-06이에요. likes_count 940,980은 ext.post_karma 184,487 + ext.comment_karma 756,493 + ext.awardee_karma 0과 같아요. ext.trophy_count는 52, 아바타는 채워져 있고, ext.banner_url은 빈 문자열이지 null이 아니에요. author.followers는 null이에요. 레딧이 공개 팔로워 수를 안 줘서, 이 필드에 숫자를 넣지 않아요. 팔로워 수를 적지 마세요.
display_name의 t2_1w72는 레딧 풀네임이에요. 다음 호출의 handle로 쓰지 마세요. handle은 author.id인 spez예요. 바이오 "Reddit CEO"는 이 계정이 누구인지 한 줄로 알려 줘요. 카르마 합이 likes_count와 같은지만 보면, 세 갈래가 서로 어긋난 응답인지도 바로 보여요.
그 사람이 쓴 글은 몇 건이 오나요?
이번 호출의 len(items)는 23이었어요. 레딧 계정 게시물 API GET /v1/reddit/profile/posts?handle=spez는 1크레딧, dropped=0, has_more=false, next_cursor=null이었어요. 23을 페이지 크기 상수로 코딩하면 안 돼요. spez의 모든 글이라고 쓰면 더 안 돼요. 이 엔벨로프의 길이와 페이지네이션 블록만 적어요.
curl -s -H "x-api-key: $SOCIALCRAWL_API_KEY" \
"https://www.socialcrawl.dev/v1/reddit/profile/posts?handle=spez"r = requests.get(
f"{BASE}/v1/reddit/profile/posts",
params={"handle": "spez"},
headers={"x-api-key": os.environ["SOCIALCRAWL_API_KEY"]},
timeout=60,
)
r.raise_for_status()
payload = r.json()
items = payload["data"]["items"]
pag = payload.get("pagination") or {}
print(len(items), payload.get("credits_used"), pag.get("has_more"), pag.get("next_cursor"))출력은 23 1 False None이었어요. 최신은 2026-08-05 「Modernizing Reddit’s infrastructure with you」이고, 331 likes / 445 comments예요. 이 페이지에서 가장 오래된 행은 2015-07-11이에요. ext.subreddit은 16/23이 채워져 있고, 7/23이 null, 빈 문자열은 0/23이었어요. 프로필 페이지에 앉은 글은 ext.subreddit=null이에요. 필드가 고장난 게 아니에요.
row 0을 자르면 이래요.
{
"id": "1vgbkge",
"url": "https://www.reddit.com/user/spez/comments/1vgbkge/modernizing_reddits_infrastructure_with_you/",
"author": { "username": "spez" },
"engagement": { "likes": 331, "comments": 445, "shares": null },
"published_at": "2026-08-05T16:03:56.264Z",
"ext": {
"subreddit": null,
"title": "Modernizing Reddit’s infrastructure with you"
}
}같은 페이지에서 커뮤니티 글이 처음 나오는 행은 ext.subreddit=redditstock, 「Hi redditstock, leave your questions…」, 107 likes / 29 comments, 2026-06-03이었어요. URL은 https://www.reddit.com/r/redditstock/comments/1tvsa59/hi_redditstock_leave_your_questions_and_well_be/예요. 한 사람의 제출물은 여러 커뮤니티에 걸쳐 있으니, 행마다 ext.subreddit을 봐야 해요. 레딧 계정 게시물 API는 그 여러 커뮤니티 글을 한 목록으로 줘요. engagement.shares는 이 페이지에서도 null이었어요. 레딧이 공유 수를 공개 필드에 안 넣어요.
레딧 댓글 검색 API는 스레드를 안 열고도 본문을 찾나요?
찾아요. 공식 경로는 게시물을 고르고 스레드를 연 다음 morechildren으로 접힌 댓글 가지를 바꿔 끼워요. PRAW 댓글 튜토리얼도 같은 사슬이에요. 레딧 댓글 검색 API GET /v1/reddit/search/comments는 그 사슬을 건너뛰고 댓글 인덱스를 직접 쳐요. 게시물 URL이 없어도 돼요. 레딧 검색 API의 게시물 레인과 섞지 마세요. 여기는 댓글 본문이에요.
히트마다 ext.post_title, ext.subreddit, ext.subreddit_subscribers, ext.post_score, ext.post_url이 붙어요. 댓글 본문만 오면 어디 글의 답인지 안 보여서예요. 여러분이 열어볼 링크는 comment.url이에요. 이 샘플에서 ext.post_url 경로에는 t3_ 풀네임이 박혀 있어요. ext.post_url을 붙여 넣지 마세요.
이 14건은 이력이 아니에요. 싼 샘플이에요. 날짜순 이력은 아래 히스토리 절에서 따로 나와요. parent_id가 전부 null인 이유도 같아요. 인덱스가 최상위인지 깊은 답글인지 안 알려 줘서, API가 추측하지 않아요.
author: 연산자
curl -s -H "x-api-key: $SOCIALCRAWL_API_KEY" \
"https://www.socialcrawl.dev/v1/reddit/search/comments?query=author:spez"r = requests.get(
f"{BASE}/v1/reddit/search/comments",
params={"query": "author:spez"},
headers={"x-api-key": os.environ["SOCIALCRAWL_API_KEY"]},
timeout=60,
)
r.raise_for_status()
payload = r.json()
items = payload["data"]["items"]
pag = payload.get("pagination") or {}
print(len(items), payload.get("credits_used"), pag.get("has_more"))
print({row["comment"]["author"]["username"] for row in items})
print({row["comment"]["parent_id"] for row in items})출력은 14 1 True, 저자 집합은 spez 하나, parent_id는 14건 전부 null이었어요. 최신은 2026-07-30, 최오래된 행은 2026-06-04예요. 날짜순은 아니에요. 7/30 클러스터 다음에 6/15, 그다음 6/4가 와요. 페이지 안의 시각을 시계열로 정렬하면 안 돼요.
row 0을 자르면 이래요.
{
"id": "p0ri6c3",
"url": "https://www.reddit.com/r/RDDT/comments/1vb4oe8/comment/p0ri6c3/",
"parent_id": null,
"text": "Thank you for your support of RDDT…",
"engagement": { "likes": 15 },
"published_at": "2026-07-30T22:37:36.676Z",
"ext": {
"post_title": "Reddit Announces Q2’26 Earnings (plus AMA!)",
"subreddit": "RDDT",
"post_url": "https://www.reddit.com/r/RDDT/comments/t3_1vb4oe8/"
}
}본문은 “Thank you for your support of RDDT…”로 시작해요. 점수는 15예요. comment.url은 깨끗한 reddit.com 퍼머링크고, 같은 행의 ext.post_url은 …/comments/t3_1vb4oe8/예요. 부모 게시물이 왜 인라인으로 오는지, 그래도 링크는 왜 comment.url을 써야 하는지가 한 행에 같이 있어요.
토픽 쿼리
curl -s -H "x-api-key: $SOCIALCRAWL_API_KEY" \
"https://www.socialcrawl.dev/v1/reddit/search/comments?query=best+mechanical+keyboard"r = requests.get(
f"{BASE}/v1/reddit/search/comments",
params={"query": "best mechanical keyboard"},
headers={"x-api-key": os.environ["SOCIALCRAWL_API_KEY"]},
timeout=60,
)
r.raise_for_status()
payload = r.json()
items = payload["data"]["items"]
print(len(items), payload.get("credits_used"))
print(items[0]["comment"]["ext"]["subreddit"], items[0]["comment"]["ext"]["post_title"])query=best+mechanical+keyboard는 22건, 1크레딧, has_more=true였어요. 관련도 순위라 날짜 시계열로 쓰지 마세요. 샘플 row 0은 ext.subreddit=GamingLaptops, 게시물 「Money is not object: best gaming laptop」, ext.subreddit_subscribers=402,826이었어요. 키보드를 물어도 게이밍 노트북 스레드의 댓글이 맨 위에 올 수 있어요. 건수가 아니라 행의 관련성으로 보세요.
한글 쿼리 4건
curl -sS --get "https://www.socialcrawl.dev/v1/reddit/search/comments" \
--data-urlencode "query=기계식 키보드" \
-H "x-api-key: $SOCIALCRAWL_API_KEY"query=기계식 키보드는 4건, 1크레딧, has_more=false였어요. 네 행 모두 r/Mogong이에요. 저자는 montrealhater, SubstanceChoice3844, escargot_clien, IJeJNenWriter. 본문 하나에 “lofree flow” / “로우 프로파일 기계식 키보드”가 나와요. 네 줄이 이 쿼리가 준 페이지예요. 큰 한국어 코퍼스라고 부풀리지 마세요. 매칭이 없어도 느슨한 관련 댓글이 올 수 있어요. 이번 4건은 has_more=false라 이 쿼리의 끝이에요.
레딧 서브레딧 검색은 이름을 몰라도 커뮤니티를 찾나요?
찾아요. 이미 아는 r/name의 피드는 GET /v1/reddit/subreddit이고, 한 커뮤니티 안의 게시물 검색은 단수 subreddit/search예요. GET /v1/reddit/subreddits/search는 복수예요. 주제를 주면 커뮤니티 목록이 와요. 공식 카탈로그에도 GET /subreddits/search가 따로 있어요. 게시물 검색과 다른 메서드예요.
curl -s -H "x-api-key: $SOCIALCRAWL_API_KEY" \
"https://www.socialcrawl.dev/v1/reddit/subreddits/search?query=machine+learning"r = requests.get(
f"{BASE}/v1/reddit/subreddits/search",
params={"query": "machine learning"},
headers={"x-api-key": os.environ["SOCIALCRAWL_API_KEY"]},
timeout=60,
)
r.raise_for_status()
payload = r.json()
items = payload["data"]["items"]
pag = payload.get("pagination") or {}
print(len(items), payload.get("credits_used"), pag.get("has_more"))
print(items[0]["author"]["id"], items[0]["author"]["followers"])1페이지는 25 커뮤니티, 1크레딧, has_more=true예요. 1위 author.id=MachineLearning은 구독자 3,070,326이고, author.url은 https://www.reddit.com/r/MachineLearning예요. 바이오 앞부분은 “Beginners -> /r/mlquestions or /r/learnmachinelearning…”이에요. 상위 5행만 적으면 충분해요.
| # | author.id | 구독자 (author.followers) |
|---|---|---|
| 1 | MachineLearning | 3,070,326 |
| 2 | learnmachinelearning | 676,458 |
| 3 | machinelearningnews | 151,586 |
| 4 | MLQuestions | 113,445 |
| 5 | ResearchML | 22,407 |
author.id는 커뮤니티 이름 그 자체예요. 그게 /v1/reddit/subreddit와 subreddit/details의 subreddit 파라미터예요. 발견에서 상세로 넘어갈 때 다시 매핑하지 않아요. 계정 프로필에서 author.followers는 null이었지만, 서브레딧 행에서는 구독자 수예요. 같은 필드 이름이 레인마다 다른 값을 담아요.
ext.weekly_active_users, weekly_contributions, rules_text, language는 이 레인에서 null이었어요. 그 값은 /v1/reddit/subreddit/details에서 채워져요. 이 레인의 결함처럼 쓰지 마세요.
2페이지도 25건, 1크레딧, has_more=true였어요. 앞쪽은 science, technology, datascience. 25건 중 5개 id가 1페이지와 중복이었어요. Learning, AIJobs, learndatascience, elearning, machinetranslation. 이 한 쿼리·두 페이지에서 관측한 중복만 말해요. 「항상 겹친다」로 일반화하지 마세요. 페이지를 이어 붙일 때 author.id로 중복을 걷고, 50개 커뮤니티로 세지 마세요.
seen = set()
unique = []
for row in page1 + page2:
cid = row["author"]["id"]
if cid in seen:
continue
seen.add(cid)
unique.append(cid)
print(len(page1), len(page2), len(unique))이번처럼 두 페이지를 붙이면 25, 25, 45가 나와야 해요. 레딧 서브레딧 검색을 두 페이지 붙인 길이가 곧 커뮤니티 수가 아니에요. pagination.next_cursor를 다음 호출의 cursor로 넘기면 2페이지가 와요.
레딧 미디어 검색은 이미지·영상만 골라 주나요?
미디어 인덱스만 줘요. 레딧 미디어 검색 GET /v1/reddit/search/media는 키워드를 이미지·비디오·갤러리 쪽으로 좁힌 읽기예요. 공식 카탈로그에는 미디어 전용 검색 섹션이 없어요.
curl -s -H "x-api-key: $SOCIALCRAWL_API_KEY" \
"https://www.socialcrawl.dev/v1/reddit/search/media?query=mechanical+keyboard+build"r = requests.get(
f"{BASE}/v1/reddit/search/media",
params={"query": "mechanical keyboard build"},
headers={"x-api-key": os.environ["SOCIALCRAWL_API_KEY"]},
timeout=60,
)
r.raise_for_status()
payload = r.json()
items = payload["data"]["items"]
urls = [row["post"]["content"]["media_urls"] for row in items]
print(len(items), payload.get("credits_used"))
print(sum(isinstance(u, str) for u in urls), sum(u is None for u in urls), sum(isinstance(u, list) for u in urls))이번 페이지는 25건, 1크레딧, has_more=true, dropped=0이었어요. content.thumbnail_url은 25/25. content.media_urls는 URL 문자열 24/25, null 1/25, 배열 0/25이었어요. 위 print의 세 숫자는 24, 1, 0이 나와야 해요.
row 0은 null 케이스예요. 「First Mechanical keyboard build」, r/MechanicalKeyboards, 본문에 YouTube 링크, 썸네일은 있고 media_urls=null, 4 likes / 4 comments.
{
"id": "1ngfk3g",
"url": "https://www.reddit.com/r/MechanicalKeyboards/comments/1ngfk3g/first_mechanical_keyboard_build/",
"content": {
"media_urls": null,
"thumbnail_url": "https://external-preview.redd.it/aC06lsnm94suYvrULw2iQltZ2_ovR5qIGUaeYU_BteI.jpeg?width=140&height=105&crop=140%3A105%2Csmart&auto=webp&s=8dfab828105abd379922fd79d0c89f3bf1992db9",
"duration_seconds": null
},
"engagement": { "likes": 4, "comments": 4 },
"ext": {
"subreddit": "MechanicalKeyboards",
"title": "First Mechanical keyboard build"
}
}row 1은 문자열 케이스예요. 「First Custom Mechanical Keyboard (Deep and Thocky)」, r/PHMechanicalKeyboard, packaged-media.redd.it mp4 문자열, duration_seconds=31.
{
"id": "1thgcsn",
"content": {
"media_urls": "https://packaged-media.redd.it/fyj7uj0dz12h1/dl/m2-res_640p.mp4?m=DASHPlaylist.mpd&v=1&e=1788832800&s=62de786f639525c54c6daef32e55113d410dd016",
"duration_seconds": 31
},
"ext": {
"subreddit": "PHMechanicalKeyboard",
"title": "First Custom Mechanical Keyboard (Deep and Thocky)"
}
}이 페이지 증거로 「media_urls는 이미지·비디오 URL 배열」이라고 쓰지 마세요. 있을 때는 문자열이에요. 리스트로 가정하고 짜면 문자열을 한 칸짜리 배열로 감싸야 해요. 레딧 미디어 검색을 갤러리 배열로 코딩하면 이 24행에서 바로 깨져요.
레딧 댓글 히스토리는 댓글당 2크레딧을 언제 쓰나요?
날짜순 목록이 필요하고, 검색 인덱스의 관련도 부분집합으로는 부족할 때요. GET /v1/reddit/profile/comments는 계정의 자체 목록을 최신순으로 읽어요. 이번 호출은 handle=spez&limit=5 → 5건, 10크레딧. credits_used == 2 × items.length가 이번 호출에서 true였어요.
curl -s -H "x-api-key: $SOCIALCRAWL_API_KEY" \
"https://www.socialcrawl.dev/v1/reddit/profile/comments?handle=spez&limit=5"r = requests.get(
f"{BASE}/v1/reddit/profile/comments",
params={"handle": "spez", "limit": 5},
headers={"x-api-key": os.environ["SOCIALCRAWL_API_KEY"]},
timeout=60,
)
r.raise_for_status()
payload = r.json()
items = payload["data"]["items"]
print(len(items), payload.get("credits_used"), 2 * len(items))
print([row["comment"]["published_at"] for row in items])
print([row["comment"]["parent_id"] for row in items])출력은 5 10 10이었어요. 시각은 2026-08-05T18:31:50Z부터 2026-08-05T16:24:51Z까지, 약 두 시간이었어요. 다섯 줄 모두 같은 게시물 1vgbkge, ext.is_submitter=true, ext.subreddit=u_spez예요. parent_id는 5건 전부 채워져 있어요. has_more=false고 커서는 없어요. limit이 깊이예요. 페이지 크기가 아니에요.
| # | published_at (UTC) | likes | parent_id | 본문 앞부분 |
|---|---|---|---|---|
| 1 | 2026-08-05T18:31:50Z | 10 | p1wd2fi | That was the thinking. Otherwise it would be easier to just replicate the UI. |
| 2 | 2026-08-05T17:30:18Z | 16 | p1w0aok | If we replace every line of code but the output is the same, is it still old Reddit? |
| 3 | 2026-08-05T17:29:13Z | 24 | p1vw05t | Karma and Age gates are really blunt tools… |
| 4 | 2026-08-05T16:42:20Z | 64 | p1vuqcb | I am once again coming to you to ask you to spend more time in this app. |
| 5 | 2026-08-05T16:24:51Z | 14 | p1vqo05 | Yep. We'll work closely with mod teams to test the new tools… |
데모에서 limit=25를 치지 마세요. 그건 50크레딧 자리예요. 검색부터 치고, 이력이 필요할 때만 작은 limit으로 히스토리를 열어요. 크레딧이 빠지는 순간에서 미터 엔드포인트는 상한을 먼저 빼고 실제 반환 수에 맞춰 차액을 돌려준다고 적혀 있어요.
같은 핸들, 두 읽기
같은 spez, 같은 한 시간대에 친 두 호출이에요. 레딧 댓글 히스토리와 author: 검색을 같은 읽기로 두면 안 돼요.
search/comments?query=author:spez | profile/comments?handle=spez&limit=5 | |
|---|---|---|
| 무엇을 읽나 | 댓글 검색 인덱스 (관련도 부분집합) | 계정의 자체 목록, 최신순 |
len(items) | 14 | 5 |
| credits_used | 1 | 10 (댓글당 2) |
has_more | true (cursor) | false (커서 없음. limit이 깊이) |
| 이 응답의 최신 | 2026-07-30T22:39:07Z | 2026-08-05T18:31:50Z |
| 이 응답의 최오래된 | 2026-06-04T00:24:28Z | 2026-08-05T16:24:51Z |
| 순서 | 날짜순 아님 | 최신순 |
parent_id | 14건 전부 null | 5건 전부 채워짐 |
| 8/5 댓글 포함? | 없음 | 5건 전부 8/5, 같은 게시물 1vgbkge |
히스토리 5건의 최신이 검색 페이지의 모든 행보다 더 최신이에요. 검색 has_more=true이므로 「검색이 14에서 영원히 멈춘다」가 아니에요. 「첫 검색 페이지가 계정의 라이브 헤드를 담지 않은 관련도 부분집합」이에요. 샘플은 검색으로 보고, 목록·날짜·부모 id가 필요하면 히스토리를 열어요.
row 0 JSON은 이래요.
{
"credits_used": 10,
"data": {
"items": [
{
"id": "p1wosm9",
"parent_id": "p1wd2fi",
"post_id": "1vgbkge",
"text": "That was the thinking. Otherwise it would be easier to just replicate the UI.",
"published_at": "2026-08-05T18:31:50.000Z",
"ext": {
"subreddit": "u_spez",
"is_submitter": true
}
}
]
}
}어떻게 시작하나요?
- SocialCrawl에 가입하면 API 키가 나와요. 신규 100 무료 크레딧, 구독 없음, 크레딧 만료 없음. 공식 Reddit OAuth 앱은 필요 없어요. 크레딧 단가는 가격, 빠지는 시점은 크레딧 문서예요.
- 가장 작은 첫 호출은
GET /v1/reddit/profile?handle=spez예요. 1크레딧. 잔액은GET /v1/credits/balance예요. 키는 환경 변수SOCIALCRAWL_API_KEY에 두고 코드에 붙이지 마세요. - 그다음 익스플로러에서 응답을 보세요. 코드 한 줄 쓰기 전에 데이터를 먼저 확인해 보세요. 엔드포인트 표는 레딧 문서, 플랫폼 페이지는 레딧이에요.
- 댓글을 사람 단위로 보고 싶으면
search/comments?query=author:HANDLE을 먼저 쳐 보세요. 1크레딧. 날짜순 이력이 필요할 때만profile/comments에 작은limit을 주세요.
여섯 읽기만 치면 15크레딧이에요 (히스토리 limit=5가 10). 이번 수확 18은 서브레딧 검색 2페이지와 댓글 검색 쿼리 두 개를 더한 값이에요.
잘못된 handle은 두 갈래예요. 한 덩어리로 뭉개지 마세요. thisuserdoesnotexistzzz(23자, 레딧 20자 규칙을 넘김)는 400, 0크레딧. 메시지 앞부분은 “Invalid handle for reddit: must match platform handle rules.” zzznobodyexists99(17자, 형식은 맞음, 없는 유저)는 404, 0크레딧. “This Reddit account is suspended, deleted, or does not exist. Your credits have been refunded.” 존재 여부는 profile로 가려요. 댓글 한 번도 안 단 기존 계정은 이번 수확에서 안 쳤어요. 빈 목록을 없는 유저라고 단정하지 마세요.
엔드포인트 표는 레딧 문서, 단가는 가격, 게시물 검색 밀도는 검색 1크레딧 글에 있어요.
자주 묻는 질문
레딧 프로필 API에 공식 Reddit OAuth가 필요한가요?
아니요. x-api-key만 넣으면 돼요. 공식 앱·User-Agent·1시간 bearer 토큰은 공식 Data API와 OAuth 위키 이야기예요. QPM 숫자는 2015 위키 60과 Help 센터 스니펫 100이 같이 있어서, 여기선 승자를 고르지 않아요.
레딧 댓글 히스토리는 크레딧이 얼마인가요?
호출당이 아니라 반환 댓글당 2예요. 이번 수확의 limit=5는 5건 10크레딧이었어요. 같은 핸들 author:spez 검색은 14건 1크레딧. 싼 검색을 먼저 치고, 날짜순 목록이 필요할 때만 히스토리를 작은 limit으로 열어요. 단가는 가격을 보세요.
레딧 댓글 검색 API 페이지네이션은 어떻게 하나요?
cursor예요. 검색·서브레딧 검색·미디어는 페이지당 1크레딧이고, 응답의 pagination.next_cursor를 다음 호출의 cursor로 넘기면 돼요. 히스토리는 커서가 없어요. limit이 깊이예요. has_more와 next_cursor를 같이 읽으세요.
없는 레딧 유저를 조회하면 어떻게 되나요?
형식 위반 핸들은 400·0크레딧이에요. 이번 수확의 thisuserdoesnotexistzzz(23자)가 그 자리예요. 형식은 맞고 없는 유저 zzznobodyexists99는 404·0크레딧이고, 응답이 환불을 안내해요. 존재 여부는 profile로 가리세요. 댓글 없는 기존 계정은 이번 수확에서 안 쟀어요.
레딧 서브레딧 검색에서 같은 행이 반복되면요?
이번 machine learning 검색에서 2페이지 25건 중 5개 id가 1페이지와 중복이었어요. Learning, AIJobs, learndatascience, elearning, machinetranslation. author.id로 걷으면서 중복을 제거하세요. 이 한 쌍의 호출만 주장해요. 다른 쿼리·다른 날짜로 일반화하지 마세요.
함께 읽으면 좋은 글
구글 트렌드 API, 관심도 0이면 404·0크레딧
관심도 0이면 404·0크레딧, 적용 불가 필터는 무료 400. SocialCrawl 구글 트렌드 API의 라이브 curl·크레딧 영수증을 그대로 보여 드려요.
두 배 빨라진 구글 트렌드 API — 한국 로케이션 실측
구글 트렌드 API가 프로덕션 22건 기준 약 9초에서 약 4.6초로 줄었어요. 한국 로케이션 아이폰 53주·블랙핑크/뉴진스 비교·급상승 25행 라이브 JSON과 관심도 없음 0크레딧 404를 스키마 그대로 보여 드려요. 이번 세션 캐시 미스 과금 3건은 평균 6,203ms예요.
인스타그램 데이터 API, about이 다시 200을 줘요
인스타그램 데이터 API, 죽은 about이 다시 200이에요. 릴스 12개와 공유 5,122는 라이브고, 잘못된 경로 3건은 0원이에요. 측정 2026-09-08.
