本文へスキップ

Twitter(X)のスクレイピング方法 2026:使える手段と壊れる理由

2026年に Twitter(X)をスクレイピングする方法は5つあります。ログアウト状態のブラウザを自動操作する、X アカウントでライブラリを動かす、有料のホスト型スクレイピングツールを使う、1,000投稿あたり$5.00の公式 X API を呼び出す、Twitter/X データ API を呼び出す、のいずれかです。

結論: ログアウト状態の x.com で見られるのは、単独の投稿とプロフィールの最初の数件だけです。しかも X は12か月で内部の検索クエリ ID を37回変更しており、そのたびにスクレイピングのコードは壊れます。X アカウントを危険にさらさずに投稿を集めるなら Sorsa API を使います。POST /search-tweets は1リクエストで約20件の投稿を返し、料金は1,000件あたり$0.07からです。100回分の無料リクエストはクレジットカード不要で使えます。

エンドポイント
POST /search-tweets
1ページの件数
1リクエストあたり約20件
料金
1,000件あたり$0.07から

#2026年に Twitter をスクレイピングできるのか

できます。ただしアカウントなしでは、X のごく一部にしか届きません。2026年11月2日に、デスクトップブラウザでログアウト状態の x.com を開き、ページの種類ごとに何が返るかを記録しました。

x.com のページ返ってきたもの
単独の投稿本文、各種カウント、最初の返信(HTML にすでに含まれる)
プロフィールヘッダーと最初の9件の投稿、その先はログイン画面
検索結果ログインページへのリダイレクト
フォロワー/フォロー中ログインページへのリダイレクト
サーバー上のデフォルト設定のヘッドレスブラウザで開いた投稿最初のリクエストで HTTP 403
  • 単独の投稿

    返ってきたもの
    本文、各種カウント、最初の返信(HTML にすでに含まれる)
  • プロフィール

    返ってきたもの
    ヘッダーと最初の9件の投稿、その先はログイン画面
  • 検索結果

    返ってきたもの
    ログインページへのリダイレクト
  • フォロワー/フォロー中

    返ってきたもの
    ログインページへのリダイレクト
  • サーバー上のデフォルト設定のヘッドレスブラウザで開いた投稿

    返ってきたもの
    最初のリクエストで HTTP 403

それ以外をスクレイピングするには、ログイン済みの X アカウントが必要です。そして、そのアカウントがリスクを負います。公開された X データを取得する方法は、次の5つです。

  1. Playwright や Puppeteer でログアウト状態のブラウザを自動操作する:取得できるのは単独の投稿とプロフィールの上部だけです。

  2. twscrape や Scweet などのオープンソースのライブラリを X アカウントで動かす:検索、タイムライン、フォロワーを取得できますが、プール内のすべてのアカウントがロックの危険にさらされます。

  3. ホスト型のスクレイピングツール:収集を代行してくれて、結果ごとに課金されます。

  4. 公式 X API:開発者アカウントとアプリを用意したうえで、前払い残高から1,000投稿あたり$5.00です。

  5. Twitter/X データ API:キー1つで公開投稿を JSON で返し、危険にさらす X アカウントはありません。

以下で各方法を順に説明します。5つ目は手順がいちばん少ないので最初に取り上げます。1つのアカウントの全投稿を保存したい場合は、ユーザーの全ツイートをダウンロードする方法をご覧ください。

#スクレイピングツールも X アカウントも使わずに X のデータを取得する

公開投稿、プロフィール、フォロワーの収集には、Twitter(X)API 兼スクレイピングツールである Sorsa API を使います。コードは ApiKey ヘッダーにキーを1つ付けて送るだけで JSON が返ります。検索は1リクエストで約20件、1,000件あたり$0.07から。ID 指定なら1リクエストで100ツイート、1,000件あたり$0.014からです。

操作するブラウザも、追跡するクエリ ID も、X へのログインもありません。Sorsa API が X のログイン情報や Cookie を求めることはないため、危険にさらすアカウントもありません。どのプランでも毎秒20リクエストで動作し、検索は X の高度な検索の演算子を使って2006年まで遡れます。

  1. キーを取得する。 サインアップして、ダッシュボードから API キーをコピーします。新規アカウントには100回分の無料リクエストが付き、カードは不要です。

  2. 投稿を検索する。 X の検索クエリをそのまま POST /search-tweets(新しいタブで開きます) に送ります。from:、since:、lang:、引用符で囲んだフレーズ、ハッシュタグがすべて使えます。

    ターミナル
    curl -X POST "https://api.sorsa.io/v3/search-tweets" \
      -H "ApiKey: YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"query": "\"open data\" lang:en since:2026-10-01", "order": "latest"}'
    
    レスポンス200 OK
    {
      "tweets": [
        {
          "id": "1984210773912846356",
          "full_text": "New city data sets today: bus delays, tree cover, permits.",
          "created_at": "2026-10-30T14:05:11Z",
          "lang": "en",
          "likes_count": 48,
          "retweet_count": 9,
          "reply_count": 4,
          "quote_count": 1,
          "view_count": 5210,
          "user": {
            "id": "1590385166022184961",
            "username": "opendata_weekly_news",
            "display_name": "Open Data Weekly",
            "followers_count": 12400,
            "verified": false
          }
        }
      ],
      "next_cursor": "DAADDAABCgABG4dR6Xr2YQo"
    }
    
  3. カーソルをたどる。 各レスポンスには、次のページを指す next_cursor が含まれます。これが空で返るまで、リクエストボディに入れて送り返します。

    import os
    import requests
    
    URL = "https://api.sorsa.io/v3/search-tweets"
    KEY = os.environ.get("SORSA_API_KEY", "YOUR_API_KEY")
    
    
    def search(query, max_pages=50):
        body = {"query": query, "order": "latest"}
        for _ in range(max_pages):
            r = requests.post(URL, json=body, headers={"ApiKey": KEY}, timeout=30)
            r.raise_for_status()
            page = r.json()
            yield from page["tweets"]
            if not page.get("next_cursor"):
                return
            body["next_cursor"] = page["next_cursor"]
    
    
    for t in search('"open data" lang:en since:2026-10-01'):
        print(t["id"], t["user"]["username"], t["full_text"][:60])
    
  4. 用途に合ったエンドポイントを選ぶ。 同じキーで、X から集められるあらゆる種類の公開データを読み取れます。課金は1リクエストにつき1回で、返る内容には左右されません。

用途エンドポイント1リクエストあたり1,000件あたり(から)
キーワード、アカウント、日付で投稿を検索POST /search-tweets約20件の投稿$0.07
アカウントの投稿とリプライPOST /user-tweets(新しいタブで開きます)約20件の投稿$0.07
ID またはリンクから投稿を取得POST /tweet-info-bulk(新しいタブで開きます)最大100件の投稿$0.014
プロフィールGET /info-batch(新しいタブで開きます)最大100件のプロフィール$0.014
アカウントのフォロワーGET /followers(新しいタブで開きます)最大200件のフォロワー$0.007
投稿へのリプライPOST /comments(新しいタブで開きます)約20件のリプライ$0.07

どの投稿にも、投稿者のプロフィール全体が追加料金なしで付いてきます。403 が返った場合は、キーがないかリクエストを使い切っています。429 は1秒に20リクエストを超えた場合で、1秒待って再試行してください。失敗したリクエストに課金されることはありません。より本格的なクライアントが必要なら、ペース制御、リトライ、CSV 出力まで扱うPython で使う Twitter APIのチュートリアルをご覧ください。コードを書かない場合は、無料のツイートを CSV にエクスポートツールで、アカウントの投稿を CSV、Excel、JSON として保存できます。

#x.com のデータの読み込み方と、スクレイピングツールが壊れる理由

x.com は、すべての投稿、プロフィール、タイムラインを X 自身の内部 GraphQL API から取得しています。その呼び出しはどれも、オペレーション、クエリ ID、一連の機能フラグを指定しており、X はこれらを頻繁に変更します。クエリ ID はリクエストのアドレスに含まれるコードで、オペレーションの現行バージョンを指定します。機能フラグは、リクエストに列挙しなければならないオン/オフのスイッチです。

ログアウト状態の訪問者に対しては、ページが届く前にサーバー側でこのクエリが実行されます。2026年11月2日には、投稿ページの HTML にすでに TweetResultByRestId の結果が含まれていました。プロフィールページには UserByScreenName と、UserOriginalsTimeline という名前のオペレーションの下に最初の9件の投稿が含まれ、すべて合わせて188KB の HTML でした。投稿の本文は details.full_text に、いいね数は counts.favorite_count にあり、多くのチュートリアルがいまだにセレクタとして使う data-testid 属性はページにありませんでした。

ログイン状態では、ブラウザは残りのデータを /i/api/graphql/<queryId>/<Operation> という形のパスから取得し、呼び出しのたびにアカウントの auth_token と ct0 の Cookie を送ります。さらに、ct0 からコピーした CSRF ヘッダーと、生成したクライアントトランザクション ID も付けます。twscrape などのライブラリは、同じ呼び出しをブラウザなしで再現します。

公開ポスト 3つの経路 ログアウト状態 ブラウザでx.com 1件かプロフィールの最初の9件 検索はログイン画面へ あなたのXアカウント ログイン状態 /i/api/graphql/ auth_token+40フラグ 検索・タイムライン・フォロワー 12か月でクエリIDが37回変更 アカウントは凍結されうる Sorsa API ApiKeyヘッダーのみ Xログイン不要 JSONでポストを取得 1リクエスト約20件 1,000件あたり$0.07から
ログアウト状態で得られるのは X のごく一部で、ログインすればアカウントを危険にさらします。API ならキーだけで済みます。

スクレイピングのコードを壊すのは、このクエリ ID です。X のウェブアプリを公開で追跡している TwitterInternalAPIDocument(新しいタブで開きます) プロジェクトは、X の GraphQL 定義が変わるたびにそれを保存しています。2025年11月6日から2026年10月31日までの112件のスナップショットを見ると、検索を担うオペレーション SearchTimeline のクエリ ID は37回変わっていました。

これはおよそ10日に1回の変更で、2026年10月だけでも4回ありました。同じ1年間に UserTweets は38回、TweetResultByRestId は34回変わり、検索の呼び出しには現在40個の機能フラグが付いています。これらの値をハードコードしたコードは、誰かが更新するまで失敗します。twscrape にはこの状況のためのエラー GqlFeaturesOutdatedError まであり、ライブラリが有効にできない機能を X が必須にしたときに発生します。

Xの検索のクエリID変更回数(月別) SearchTimelineのクエリID、2025年11月〜2026年10月 37 回(12か月) 1 11月 1 12月 5 1月 5 2月 7 3月 3 4月 2 5月 2 6月 3 7月 2 8月 2 9月 4 10月 2025年 2026年 出典:TwitterInternalAPIDocumentの112件のスナップショット(2025/11/6〜2026/10/31)
X の検索オペレーションは12か月で37回新しいクエリ ID に変わりました。スクレイピングのコードは、およそ10日ごとに更新が必要です。

#Playwright や Puppeteer で公開投稿をスクレイピングする

Python 向けの Playwright や Node.js 向けの Puppeteer によるブラウザ自動化で読み取れるのは、ログアウト状態の訪問者に見える範囲です。1回のページ読み込みにつき投稿1件か、プロフィールの最初の投稿までです。

  1. ドライバーをインストールする。 Python なら pip install playwright と playwright install chromium を、Node.js なら npm install puppeteer を実行します。

  2. 画面に表示されるブラウザを開く。 今回の検証では、サーバー上のデフォルト設定のヘッドレスブラウザは x.com から HTTP 403 を返されましたが、同じ回線の通常のブラウザウィンドウではページが表示されました。

  3. 表示された投稿を読み取る。 ページには data-testid のフックがないため、article 要素が現れるのを待って、そのテキストを取得します。

    from playwright.sync_api import sync_playwright
    
    POST = "https://x.com/XDevelopers/status/2019881223666233717"
    
    with sync_playwright() as p:
        browser = p.chromium.launch(headless=False)  # headless got HTTP 403
        page = browser.new_page()
        page.goto(POST)
        post = page.locator("article").first
        post.wait_for()
        print(post.inner_text())
        browser.close()
    
  4. ログインの壁で止まる。 検索、フォロワー一覧、プロフィールの最初の投稿より先はすべてログインページにリダイレクトされるため、この方法ではそれ以上ページをたどれません。

得られるのは、人が読むのと同じ形の投稿です。名前、ハンドル、本文、時刻、そして 5.6K のようなラベルに丸められたカウント(誰によるものかは分かりません)が1つのテキストの塊で返り、分割は自分で行います。手で開けば済む程度の数件の投稿なら、これで足ります。ページを読み込むたびに、ブロック、レイアウトの変更、ログインの要求に遭う可能性が増えるため、量が必要なプロジェクトはログイン状態で動くライブラリや API に移っていきます。

#X アカウント上の Python ライブラリで Twitter をスクレイピングする

twscrape や Scweet などのオープンソースのライブラリは、ブラウザを使わずに、ログイン済みの X アカウントの Cookie で X の内部 GraphQL API を直接呼び出します。これで検索、タイムライン、フォロワー一覧が開きます。

  1. 予備の X アカウントを使う。 Scweet の README(新しいタブで開きます) は、個人のアカウントは決して使わず、専用のアカウントを用意するよう求めています。X は目をつけたアカウントをどれでもロックできるからです。

  2. Cookie をコピーする。 x.com にログインし、ブラウザの開発者ツールを開いて、サイトの Cookie から auth_token と ct0 をコピーします。

  3. アカウントを追加して検索する。 twscrape(新しいタブで開きます) は、アカウントとセッションをローカルの SQLite ファイルに保存し、パース済みの投稿を返します。

    Python
    import asyncio
    from twscrape import API, gather
    
    COOKIES = "auth_token=xxx; ct0=yyy"
    
    async def main():
        api = API()  # accounts and sessions go to accounts.db
        await api.pool.add_account_cookies("spare_account", COOKIES)
        query = "from:XDevelopers lang:en"
        posts = await gather(api.search(query, limit=40))
        for post in posts:
            print(post.id, post.user.username, post.rawContent[:60])
    
    asyncio.run(main())
    
  4. 量が必要ならアカウントとプロキシを増やす。 twscrape はアカウントごと、オペレーションごとにレート制限を追跡し、制限に達したアカウントはリセットまで待機させて次のアカウントに移ります。アカウントのタイムラインは約3,200件で止まります。

知っておきたいこと

auth_token の Cookie はパスワードと同じ働きをします。持っている人は誰でも、セッションが終わるまでそのアカウントとしてログインした状態になります。コード、リポジトリ、共有ノートブックには入れず、個人アカウントの Cookie は決してスクリプトに入れないでください。

2024年より前のライブラリの大半は、もう動きません。2026年11月2日時点で、メンテナンスされている2つはどちらも X アカウントを必要としました。

ライブラリ最終更新状態
twscrape0.20.1、2026年8月25日メンテナンス中。ログイン済みの X アカウントで動作
Scweet5.8.2、2026年10月22日メンテナンス中。auth_token の Cookie で動作
twikit2.3.3、2025年2月7日20か月リリースなし。未解決の issue が160件
snscrape2023年6月22日Twitter モジュールは2023年6月30日から動作せず(新しいタブで開きます)
Twint2023年2月23日GitHub でアーカイブ済み
  • twscrape

    最終更新
    0.20.1、2026年8月25日
    状態
    メンテナンス中。ログイン済みの X アカウントで動作
  • Scweet

    最終更新
    5.8.2、2026年10月22日
    状態
    メンテナンス中。auth_token の Cookie で動作
  • twikit

    最終更新
    2.3.3、2025年2月7日
    状態
    20か月リリースなし。未解決の issue が160件
  • snscrape

    最終更新
    2023年6月22日
  • Twint

    最終更新
    2023年2月23日
    状態
    GitHub でアーカイブ済み

ホスト型のスクレイピングツール

ノーコードのスクレイピングサービスは、フォームの裏側で収集を代行し、結果ごとに課金します。ブロックや不具合の対応はサービス側の仕事になりますが、X の変更に対する修正は遅れがちです。各ツールを個別に取り上げたのがTwitter スクレイパーの比較です。

#公式 X API で投稿を読む

公式 X API は、公開投稿を前払い制の読み取りとして販売しています。料金ページ(新しいタブで開きます)によると、1投稿あたり$0.005、1ユーザーまたはフォロワーあたり$0.010で、従量課金の場合は月300万投稿の読み取りが上限です。

2026年11月22日からは、投稿に付随する投稿者プロフィールとメディアにも同じ料金が課金されます(X のお知らせ(新しいタブで開きます))。つまり、投稿を投稿者付きで読むと$0.015かかります。

  1. 開発者アプリを作成する。 X アカウントで console.x.com にサインインし、Developer Agreement に同意してアプリを作成し、Bearer トークンをコピーします。画面ごとの手順は、Twitter API キーの取得方法のガイドで説明しています。

  2. クレジットを購入する。 読み取りはすべて前払い残高から差し引かれ、残高がなくなるとリクエストは失敗します。

  3. 最近の投稿を検索する。 最近の投稿の検索は過去7日間が対象で、1リクエストで最大100件です。2006年まで遡る全アーカイブ検索は、従量課金のアカウントで利用できます。

    ターミナル
    curl -G "https://api.x.com/2/tweets/search/recent" \
      -H "Authorization: Bearer $X_BEARER_TOKEN" \
      --data-urlencode "query=from:XDevelopers -is:retweet" \
      --data-urlencode "max_results=100"
    

これは X 自身の経路で、ここで挙げた中で投稿もできる唯一の手段です。1,000投稿あたり$5.00だと、検索結果100万件で$5,000かかり、300万の上限に達するとその月の読み取りは止まります。すべての料金は、X API の料金の解説にまとめています。

#Twitter のスクレイピングにかかる1,000投稿あたりの費用

1,000投稿あたりで見ると、公式 X API は$5.00、Sorsa API は検索なら$0.07から、ID 指定なら$0.014からです。スクレイピングの各手段に利用料はかかりませんが、その代わりに X アカウント、プロキシ、修復の工数を消費します。

収集した投稿数

公式 X API

$5,000

1M投稿の場合

1投稿あたり$0.005

Sorsa API

$70から

1M投稿の場合

検索で1,000件あたり$0.07から

投稿を毎日集めるなら Sorsa API を使います。検索結果100万件が$70からで、公式 X API の$5,000と比べて大幅に安く済みます。毎秒20リクエスト、つまり毎秒約400件の結果を取得でき、失う X アカウントもありません。

各手段を分ける基準は4つあります。1,000投稿あたりの料金、X アカウントを危険にさらすか、X のどこまで届くか、何が原因で壊れるかです。

手段1,000投稿あたり危険にさらす X アカウント取得範囲壊れるとき
Sorsa API検索で$0.07から、ID 指定で$0.014なし2006年までの検索、タイムライン、ID 指定の投稿、プロフィール、フォロワー、リプライレスポンススキーマは安定しており、コードはそのまま動く
公式 X API$5.00、投稿者付きだと最大$15.00開発者アカウント検索、タイムライン、ルックアップ。月300万投稿までX が料金やルールを変えたとき
X アカウントで動くライブラリ利用料なし。アカウントとプロキシが必要プール内のすべてのアカウント検索、タイムライン、フォロワークエリ ID や機能フラグが変わったとき
ログアウト状態のブラウザ利用料なしなし単独の投稿、プロフィールの最初の投稿ページが変わったとき、ブロックされたとき
ホスト型のスクレイピングツールツールごとに異なるツールによるツールのブラウザやアカウントが届く範囲ツールの修正が X の変更に遅れたとき
  • Sorsa API

    1,000投稿あたり
    検索で$0.07から、ID 指定で$0.014
    危険にさらす X アカウント
    なし
    取得範囲
    2006年までの検索、タイムライン、ID 指定の投稿、プロフィール、フォロワー、リプライ
    壊れるとき
    レスポンススキーマは安定しており、コードはそのまま動く
  • 公式 X API

    1,000投稿あたり
    $5.00、投稿者付きだと最大$15.00
    危険にさらす X アカウント
    開発者アカウント
    取得範囲
    検索、タイムライン、ルックアップ。月300万投稿まで
    壊れるとき
    X が料金やルールを変えたとき
  • X アカウントで動くライブラリ

    1,000投稿あたり
    利用料なし。アカウントとプロキシが必要
    危険にさらす X アカウント
    プール内のすべてのアカウント
    取得範囲
    検索、タイムライン、フォロワー
    壊れるとき
    クエリ ID や機能フラグが変わったとき
  • ログアウト状態のブラウザ

    1,000投稿あたり
    利用料なし
    危険にさらす X アカウント
    なし
    取得範囲
    単独の投稿、プロフィールの最初の投稿
    壊れるとき
    ページが変わったとき、ブロックされたとき
  • ホスト型のスクレイピングツール

    1,000投稿あたり
    ツールごとに異なる
    危険にさらす X アカウント
    ツールによる
    取得範囲
    ツールのブラウザやアカウントが届く範囲
    壊れるとき
    ツールの修正が X の変更に遅れたとき

5つの手段のうち、危険にさらす X アカウントなしで検索、タイムライン、フォロワーまで届くのは Sorsa API だけで、料金は1,000投稿あたり$0.07からです。

はい、公開データであれば合法です。hiQ Labs 対 LinkedIn の訴訟で、第9巡回区控訴裁判所は2022年4月、公開プロフィールのスクレイピングはコンピューター詐欺・不正利用防止法(CFAA)にいう「権限のないアクセス」にはあたらない可能性が高いと判断しました。さらに2024年5月には、公開投稿のスクレイピングをめぐって X が Bright Data を訴えた訴訟を、連邦裁判所が棄却しています。

スクレイピングのプロジェクトを健全に保つ習慣は3つです。収集するのは公開データだけにして、非公開アカウントやプライベートメッセージは対象にしないこと。必要な分だけを、必要な期間だけ保持すること。そして投稿を再公開するときは、著作権が投稿者に残るため、投稿者を明記することです。

API を使えば、コードが x.com にサインインすることはないため、自分の X アカウントが危険にさらされることもありません。Sorsa API は X のログイン情報や Cookie を求めません。詳しくはサードパーティの Twitter API は合法かのガイドをご覧ください。

#最初の2,000投稿を今日取得する

2026年に X をスクレイピングするということは、ログインの壁、危険にさらされるアカウント、およそ10日ごとに変わるクエリ ID を抱えるということです。そのどれも抱えずに公開投稿を取得するなら Sorsa API を使います。キー1つで、検索は1リクエストあたり約20件が1,000件あたり$0.07から、ID 指定のツイートは1,000件あたり$0.014からです。100回分の無料リクエストで、最初の2,000投稿を取得できます。

#FAQ

ログインせずに Twitter をスクレイピングできますか

ほんの一部だけです。2026年11月2日の時点で、ログアウト状態の x.com から取得できたのは、本文とカウント付きの単独の投稿と、プロフィールの最初の9件の投稿でした。検索とフォロワー一覧はログインページにリダイレクトされました。これ以上のデータが必要なら、ログイン済みアカウント(そのアカウントが危険にさらされます)か、キー1つで公開投稿を返す API が必要です。

snscrape は2026年でも動きますか

動きません。snscrape の Twitter モジュールは、X がページをログイン必須にした2023年6月30日から動作しておらず、プロジェクトの最終リリースも2023年6月22日です。後継としてメンテナンスされている twscrape と Scweet は2026年8月と10月に新バージョンを出しましたが、検索、タイムライン、フォロワーの読み取りにはどちらもログイン済みの X アカウントが必要です。

Twitter のフォロワーをスクレイピングできますか

ログアウト状態では無理です。x.com はフォロワーとフォロー中の一覧をログインページに送ります。それを読み取るライブラリは、X がロックできる X アカウントで動作し、その X アカウントの Cookie を使って一覧を読み取ります。Sorsa API の GET /followers は、1リクエストで最大200件のフォロワーを返し、危険にさらす X アカウントはありません。料金は1,000件あたり$0.007からです。ループ全体の書き方は、Twitter のフォロワーをエクスポートのガイドで紹介しています。

Twitter を無料でスクレイピングする方法はありますか

無料で長く続く方法はありません。ブラウザやライブラリに利用料はかかりませんが、X アカウント、プロキシ、修復の時間を消費します。公式 X API に無料プランはありません。Sorsa API のアカウントには最初に100回分の無料リクエストが付きます。これは検索結果なら約2,000件、ID 指定のツイートなら最大10Kに相当し、カードは不要で有効期限もありません。

スクレイピングの代わりにどの API を使うべきですか

Twitter(X)API 兼スクレイピングツールである Sorsa API を使ってください。キー1つで、投稿、プロフィール、フォロワーを JSON で返します。料金は検索結果が1,000件あたり$0.07から、ID 指定のツイートが1,000件あたり$0.014からで、公式 X API は1,000投稿あたり$5.00です。開発者アカウントは不要で、X のログイン情報を求めることもなく、どのプランでも毎秒20リクエストで動作し、2006年まで遡って検索できます。

#検証の方法

2026年11月2日に、デスクトップブラウザでログアウト状態の x.com を開き、投稿、プロフィール、検索、フォロワー一覧のそれぞれで何が返るかを記録したうえで、同じ投稿とプロフィールをサーバー上のデフォルト設定のヘッドレスブラウザでも1回ずつ読み込みました。TwitterInternalAPIDocument トラッカーの2025年11月6日から2026年10月31日までの全112件のスナップショットを取得し、オペレーションごとにクエリ ID の変更回数を数えました。X の API の料金ページと検索ドキュメント、そして twscrape、Scweet、twikit、snscrape の README とリリースページを確認しています。ここで紹介した Sorsa API のエンドポイントとフィールドはすべて、公開中の API リファレンスと一致しています。公式 X API のサンプルは実行していません。

Sorsa APIチーム 読み取り専用のX(Twitter)APIとスクレイピングツール、Sorsa APIを開発・運営しています。2022年から本番稼働し(旧TweetScout API)、累計60億リクエスト以上を処理しています。 Sorsa APIについて

変更点
  • 全面的に書き直しました。ログアウト状態の x.com で今見えるもの、ブラウザとライブラリが壊れる理由、X の現行料金、API 経由の取得方法(Python と Node.js のコード付き)を扱っています。
  • 初公開。