트위터 크롤링, 타임라인 커서로 다음 페이지 받는 법
트위터 크롤링은 커서로 다음 페이지를 이어 받아요. 타임라인 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/... 경로를 같은 스키마로 받을 수 있어요. 엔드포인트 목록은 트위터 플랫폼을 보세요.
함께 읽으면 좋은 글
SNS 댓글 분석: 이미 물은 질문 120개
SNS 댓글 분석으로 나열한 질문 120개 중 109개가 댓글이에요. 누가, 무엇, 왜, 어떻게, 비교로 묶었어요. 댓글 언어는 나라가 아니에요. 표는 아래예요.
best tiktok analytics tools, 공개 데이터에 없던 지표 5개
2026년 10월 17일, 계정 18개의 게시물 180개를 봤어요. 지표 16개 중 5개는 확인한 행이 전부 비었어요. 사운드 제목과 조회수 밖의 재생 수는 포스트만 비었고 나머지 셋은 프로필과 포스트가 비었어요.
소셜 데이터 파이프라인, 문장만 넣으면 호출 계획이 나와요
소셜 데이터 파이프라인은 문장만 넣으면 호출 계획이 나와요. 순서는 무료로 알려 주고, 빈 파라미터와 크레딧, 측정된 필드 채움률까지 실행 전에 보여 줘요.
