100 크레딧 무료, 카드 등록 없이지금 시작하기
Logo
Back to blog

트위터 크롤링, 타임라인 커서로 다음 페이지 받는 법

·14 min read

트위터 크롤링은 커서로 다음 페이지를 이어 받아요. 타임라인 13건, 검색 20건, 답글 36건, 팔로워 70건을 실측으로 보여 드리고 긴 본문도 그대로 받아 보세요.

트위터 크롤링, 타임라인 커서로 다음 페이지 받는 법

트위터 크롤링은 한 페이지에서 끝나면 안 돼요. 응답 봉투pagination.next_cursor를 다음 요청의 cursor로 넘기면 타임라인이 이어져요. paginationdata 안이 아니라 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페이지
건수1313
최신 published_at2026-09-03T21:13:15Z2026-08-31T18:22:20Z
has_moretruetrue
id 겹침0

실제 봉투는 { success, data: { items }, pagination }이에요. paginationdata 옆이에요. 타임라인 행은 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_tokenpagination_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_moretrue
본문 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_moretrue
크레딧1

앞쪽 답글 샘플:

#작성자좋아요텍스트(앞부분)
1NASA509Time for the spacewalk! Astronauts @Soph_astro and @astro_jessica have begun…
2NASA312Over an hour into today's spacewalk, @Soph_astro is currently…
3NASA340Astronauts on the @Space_Station have some out-of-this-world…

스레드·여론을 모을 때 이 경로를 커서로 돌리면 돼요. 제품 정책상 답글이 없으면 credits_used: 0으로 환불돼요. 이번 캡처 부모에는 답글이 있어서 환불 경로는 이번에 실습하지 않았어요.

트위터 팔로워 API·미디어·계정 검색 페이지 크기는요?

트위터 팔로워 API와 나머지 읽기 경로도 같은 키로 받을 수 있어요. 아래 숫자는 2026-09-04 이번 호출 관찰치예요. 페이지 크기는 소스 쪽에서 정해져서 조금 달라질 수 있어요. 계약 보장 수치가 아니에요.

엔드포인트페이지커서
tweet/retweeters20있음
user/followers70있음
user/following67있음
user/media19있음
search/users10없음 (한 페이지)

팔로워 예제:

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 행의 verifiednull이에요. 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크레딧이 나갔어요.

시작은 세 단계면 충분해요.

  1. API 키를 발급받아요. (퀵스타트)
  2. 가장 작은 호출부터 쳐 보세요. GET /v1/twitter/user/tweets?handle=… 한 번이면 커서 필드가 보여요.
  3. 익스플로러나 트위터 플랫폼 페이지에서 나머지 읽기 경로를 이어서 확인해 보세요.

트위터 데이터 수집을 키워드·답글·팔로워까지 넓히고 싶으면 위 표의 엔드포인트를 같은 키로 돌리면 돼요. 호출이 막히거나 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/... 경로를 같은 스키마로 받을 수 있어요. 엔드포인트 목록은 트위터 플랫폼을 보세요.

Topics
#트위터-크롤링#트위터-api-타임라인#트위터-api-검색#트위터-팔로워-api#트위터-답글-api#x-api-페이징#트위터-타임라인-수집#트위터-api-커서

함께 읽으면 좋은 글

🤖 AI agent or LLM? Read this page as markdown