트위터 크롤링, 타임라인 커서로 다음 페이지 받는 법
트위터 크롤링은 커서로 다음 페이지를 이어 받아요. 타임라인 13건, 검색 20건, 답글 36건, 팔로워 70건을 실측으로 보여 드리고 긴 본문도 그대로 받아 보세요.
트위터 크롤링은 한 페이지에서 끝나면 안 돼요. 응답 봉투의 pagination.next_cursor를 다음 요청의 cursor로 넘기면 타임라인이 이어져요. pagination은 data 안이 아니라 data와 같은 층에 있어요. 2026-09-04에 @nasa로 호출해 보니 타임라인은 페이지당 13건·겹침 0건, 검색은 20건, 답글 36건, 팔로워 70건이었어요. 검색 페이지 20건 중 12건은 280자를 넘겼고 최장은 1,173자였어요. SocialCrawl의 GET /v1/twitter/... 경로이고, 페이지당 1크레딧이에요. 쿼터·429는 트위터 API 초과 글을 보세요.
트위터 API 타임라인은 커서로 어떻게 넘기나요?
트위터 API 타임라인은 GET /v1/twitter/user/tweets로 받아요. 핸들만 넣고 치면 최신순으로 한 페이지가 오고, 봉투의 pagination.has_more가 true면 pagination.next_cursor를 그대로 cursor에 붙여 다음 페이지를 받아요. 2026년 9월 웨이브에서 타임라인이 페이징되고, 읽기 7개가 새로 붙었어요.
curl -s -H "x-api-key: $SOCIALCRAWL_API_KEY" \
"https://www.socialcrawl.dev/v1/twitter/user/tweets?handle=nasa"
# 1페이지 pagination.next_cursor를 붙여 2페이지
curl -s -H "x-api-key: $SOCIALCRAWL_API_KEY" \
"https://www.socialcrawl.dev/v1/twitter/user/tweets?handle=nasa&cursor=CURSOR"
이번에 @nasa로 받아 본 결과예요.
| 1페이지 | 2페이지 | |
|---|---|---|
| 건수 | 13 | 13 |
최신 published_at | 2026-09-03T21:13:15Z | 2026-08-31T18:22:20Z |
has_more | true | true |
| id 겹침 | — | 0 |
실제 봉투는 { success, data: { items }, pagination }이에요. pagination은 data 옆이에요. 타임라인 행은 data.items[n].post예요.
{
"success": true,
"data": {
"items": [
{
"post": {
"id": "2095585125627003244",
"url": "https://x.com/NASA/status/2095585125627003244",
"published_at": "2026-09-03T18:50:02.000Z",
"content": {
"text": "An uncrewed Progress cargo spacecraft carrying food, fuel, and supplies is scheduled to lift off on a two-day flight to the @Space_Station on Wednesday, Sept. 9.\n\nWe will be broadcasting its launch and arrival live. How to tune in: https://go.nasa.gov/4gzfYyG https://t.co/JOKpBt3VME"
},
"engagement": {
"views": 346164,
"likes": 1461,
"comments": 82,
"shares": 205,
"saves": 57
},
"flags": { "pinned": false }
}
}
]
},
"pagination": { "has_more": true, "page_size": 13, "next_cursor": "…" },
"credits_used": 1
}
공식 X API도 next_token → pagination_token 패턴이에요(X API Pagination). 여기선 필드 이름이 next_cursor / cursor일 뿐, 루프는 같아요. post.flags.pinned 필드는 있어요. 이번 두 페이지에는 pinned=true가 없었어요.
참고로, 예전에 같은 엔드포인트를 깊게 돌렸을 때는 9페이지에서 174건이 나왔어요. 그건 이전 제품 측정이고, 이번 호출은 커서 동작만 2페이지로 확인한 거예요. 트위터 타임라인 수집을 깊게 가려면 pagination.has_more=false가 나올 때까지 같은 루프를 돌리면 돼요.
트위터 API 검색 결과는 페이지마다 몇 개인가요?
트위터 API 검색은 GET /v1/twitter/search/tweets예요. query에 키워드를 넣고 sort=latest 또는 sort=top을 고르면 돼요. 이번 호출은 NASA Artemis + latest였어요.
curl -s -H "x-api-key: $SOCIALCRAWL_API_KEY" \
"https://www.socialcrawl.dev/v1/twitter/search/tweets?query=NASA%20Artemis&sort=latest"
| 필드 | 값 |
|---|---|
| 페이지 건수 | 20 |
has_more | true |
| 본문 280자 초과 (우리가 셈) | 12 / 20 |
| 최장 본문 | 1,173 (@NASAStennis) |
| 크레딧 | 1 |
긴 게시물이 잘리는지 궁금하면 검색 페이지만 보면 돼요. 280자 클램프가 아니에요. @NASAStennis 글은 Artemis II 방문 소식부터 Artemis III·IV 계획까지 본문 전체가 그대로 왔어요.
{
"post": {
"id": "2095617131295486161",
"url": "https://x.com/NASAStennis/status/2095617131295486161",
"author": { "username": "NASAStennis" },
"published_at": "2026-09-03T20:57:13.000Z",
"content": {
"text": "Artemis II crew brings Moon Joy to NASA Stennis! 🚀\n\nNASA astronauts Reid Wiseman, Victor Glover, Christina Koch, and Canadian Space Agency astronaut Jeremy Hansen visited us on Thursday, Sept. 3…(본문 계속, 1,173자)"
},
"engagement": { "views": 986, "likes": 35, "comments": 1, "shares": 7, "saves": 2 }
}
}
트위터 API 검색 쿼리에는 since:, from:, 따옴표 구문 같은 연산자도 넣을 수 있어요. RAG·요약 파이프라인에 280자만 넣으면 긴 글이 잘리니, post.content.text 전체를 받는 쪽이 안전해요. 응답에 text_length 필드는 없어요. 1,173은 우리가 본문 길이를 센 값이에요.
트위터 답글 API는 답글이 없으면 어떻게 되나요?
트위터 답글 API는 GET /v1/twitter/tweet/replies예요. 부모 트윗 URL만 넘기면 CommentList 형태로 와요. 부모 객체 안에 끼어 있지 않고 별도 목록으로 와요.
curl -s -H "x-api-key: $SOCIALCRAWL_API_KEY" \
"https://www.socialcrawl.dev/v1/twitter/tweet/replies?url=https://x.com/NASA/status/2094742199736926232"
NASA 우주유영 글(2094742199736926232, 부모 engagement comments=417)로 받아 본 결과예요. 답글 본문은 comment.text예요. post.content.text가 아니에요.
| 필드 | 값 |
|---|---|
| 페이지 건수 | 36 |
has_more | true |
| 크레딧 | 1 |
앞쪽 답글 샘플:
| # | 작성자 | 좋아요 | 텍스트(앞부분) |
|---|---|---|---|
| 1 | NASA | 509 | Time for the spacewalk! Astronauts @Soph_astro and @astro_jessica have begun… |
| 2 | NASA | 312 | Over an hour into today's spacewalk, @Soph_astro is currently… |
| 3 | NASA | 340 | Astronauts on the @Space_Station have some out-of-this-world… |
스레드·여론을 모을 때 이 경로를 커서로 돌리면 돼요. 제품 정책상 답글이 없으면 credits_used: 0으로 환불돼요. 이번 캡처 부모에는 답글이 있어서 환불 경로는 이번에 실습하지 않았어요.
트위터 팔로워 API·미디어·계정 검색 페이지 크기는요?
트위터 팔로워 API와 나머지 읽기 경로도 같은 키로 받을 수 있어요. 아래 숫자는 2026-09-04 이번 호출 관찰치예요. 페이지 크기는 소스 쪽에서 정해져서 조금 달라질 수 있어요. 계약 보장 수치가 아니에요.
| 엔드포인트 | 페이지 | 커서 |
|---|---|---|
tweet/retweeters | 20 | 있음 |
user/followers | 70 | 있음 |
user/following | 67 | 있음 |
user/media | 19 | 있음 |
search/users | 10 | 없음 (한 페이지) |
팔로워 예제:
curl -s -H "x-api-key: $SOCIALCRAWL_API_KEY" \
"https://www.socialcrawl.dev/v1/twitter/user/followers?handle=nasa"
{
"data": {
"items": [
{
"author": {
"username": "SpaceX",
"display_name": "SpaceX",
"followers": 41900244,
"following": 127,
"posts_count": 11701,
"verified": null,
"joined_at": "2009-04-23"
}
}
]
},
"pagination": { "has_more": true, "page_size": 70, "next_cursor": "…" },
"credits_used": 1
}
정직하게 말할 한계도 있어요.
- followers / following / retweeters 행의
verified는 null이에요. false가 아니에요. - 미디어 탭(
user/media) 트윗에는views·saves가 null이에요. 조회수가 필요하면user/tweets나 단건tweet을 보세요. - 계정 검색(
search/users)은 한 페이지 10건이고 커서가 없어요.verified는 채워지지만 followers 수는 null이에요. 다른 집합을 보려면 쿼리를 다듬어 보세요. - 리트윗한 계정은 같은 부모 URL로
tweet/retweeters를 치면 돼요. 이번엔 20건/페이지, 커서 있음.
팔로워·팔로잉을 모을 때는 페이지당 약 70건이 기본 보폭이에요. 핸들만 찾으면 계정 검색으로 먼저 좁히고, 그다음 타임라인·팔로워에 크레딧을 쓰는 순서가 싸요.
트위터 API 커서는 응답 어디서 읽고, 어떻게 시작하나요?
트위터 API 커서는 봉투 최상위 pagination.next_cursor에 있어요. data 안이 아니에요. 다음 요청 쿼리 파라미터 이름은 cursor예요. pagination.has_more가 false가 되면 루프를 끝나요. 공식 문서의 next_token / pagination_token과 같은 패턴이에요(X API Pagination).
비용은 단순해요. 페이지당 1크레딧이라 N페이지면 N크레딧이에요. 이번 호출은 엔드포인트 10번에 10크레딧이 나갔어요.
시작은 세 단계면 충분해요.
- API 키를 발급받아요. (퀵스타트)
- 가장 작은 호출부터 쳐 보세요.
GET /v1/twitter/user/tweets?handle=…한 번이면 커서 필드가 보여요. - 익스플로러나 트위터 플랫폼 페이지에서 나머지 읽기 경로를 이어서 확인해 보세요.
트위터 데이터 수집을 키워드·답글·팔로워까지 넓히고 싶으면 위 표의 엔드포인트를 같은 키로 돌리면 돼요. 호출이 막히거나 429가 보이면 이 글이 아니라 트위터 API 초과·429 재시도를 보세요. 각도는 쿼터 쪽이에요.
자주 묻는 질문
트위터 API 타임라인은 한 페이지에서 끝나나요?
아니요. 봉투의 pagination.next_cursor를 다음 요청 cursor로 넘기면 이어져요. 2026-09-04 @nasa 호출에서 1·2페이지 각 13건, id 겹침 0이었어요.
트위터 팔로워 API 페이지당 몇 계정인가요?
이번 호출 기준 70계정이었어요. has_more=true였고 커서도 있었어요. following은 같은 날 67건이었어요. 페이지 크기는 관찰치라 조금 달라질 수 있어요.
트위터 답글 API, 답글이 없으면 크레딧은요?
제품 정책상 답글이 없으면 credits_used: 0으로 환불돼요. 이번 캡처는 부모에 답글이 있어서(페이지 36건) 환불 경로는 실습하지 않았어요.
X API 커서 값은 다음 요청에 어떻게 넣나요?
봉투 최상위 pagination.next_cursor 문자열을 다음 GET의 쿼리 cursor=에 그대로 붙이면 돼요. pagination.has_more가 false면 중단해요. data 안의 값이 아니에요.
트위터 크롤링할 때 타임라인·검색·팔로워를 한 키로 받나요?
네. SocialCrawl API 키 하나로 user/tweets, search/tweets, tweet/replies, user/followers 같은 /v1/twitter/... 경로를 같은 스키마로 받을 수 있어요. 엔드포인트 목록은 트위터 플랫폼을 보세요.
함께 읽으면 좋은 글
스레드 검색 API, 한 호출에 55건
스레드 검색 API에서 limit으로 창을 이어 55건, 긴 구절은 분할해 44건을 모아요. 2026-09-04 UTC 실측 크레딧·응답을 그대로 보여 드려요.
틱톡 API 1크레딧에 팔로워 150명, 댓글 48개가 온다
틱톡 API 1크레딧에 팔로워 150명, 댓글 48개, 답글 49개, 검색 30건이 한 페이지에 왔어요. 2026-09-04, 계정 5개·16크레딧으로 쟀어요.
링크드인 API로 공개 프로필·회사 글을 키 하나로 받는 방법
링크드인 API로 공개 프로필·회사 글을 x-api-key 한 장으로 받아요. 빌 게이츠 40,619,586 팔로워와 마이크로소프트 company_id 1035 응답을 그대로 보여 드려요.
