本文へスキップ

あらゆるアカウントに使える Twitter アナリティクス API

X のすべての公開ポストには、いいね、リポスト、リプライ、引用、閲覧数、ブックマークという6つのエンゲージメント数が付いていて、アナリティクス API ならどのアカウントのものでも取得できます。公式 X API は、返したポスト1件につき$0.005を課金します。

結論: この6つの数値は公開されているため、自分のものではないポストでも API で読み取れます。リンクのクリック数、プロフィールのクリック数、ポストからのフォローは投稿者だけのもので、X 自身のアナリティクスで30日間確認できます。Sorsa API の POST /tweet-info-bulk は、1リクエスト100ポストの6つの数値すべてを1,000件あたり$0.014から返し、100回分の無料リクエストで10,000ポストをカバーできます。

エンドポイント
POST /tweet-info-bulk
1ページの件数
1リクエストあたり100ポスト
料金
1,000件あたり$0.014から

#Twitter アナリティクス API が返すもの

Twitter アナリティクス API とは、X のポストやアカウントの裏にある数値を、ダッシュボードではなく JSON で返すエンドポイントです。各ポストのエンゲージメント数、各アカウントのフォロワー数とポスト数の合計、そして数え上げの対象となるポストそのものが含まれます。何を返せるかは、1つの区分で決まります。誰でも読める公開の数値と、投稿者だけが読める非公開の数値です。

まずブラウザで1つのアカウントのエンゲージメント率を見たい場合は、無料の Twitter エンゲージメント率計算ツールが最新のポストを読み取ります。このガイドの残りは、同じ作業を、任意の数のアカウントとポストについてコードで行います。

すべての投稿で公開 どのAPIでも、公開アカウントなら取得可 いいね212 リポスト31 返信24 引用6 表示9,640 ブックマーク41 投稿者のみ X独自のアナリティクス、過去30日の投稿 リンククリック投稿者のみ プロフィールクリック投稿者のみ 投稿からのフォロー投稿者のみ 詳細を展開投稿者のみ エンゲージメント合計投稿者のみ 投稿者自身のOAuthログインで取得
6つの数値はすべてのポストで公開され、どのアカウントでも読めます。クリックとフォローは30日間、投稿者だけのものです。

表は、それぞれの数値を持つフィールドに対応付けたものです。Sorsa API は、返すすべてのポストに6つの公開数値を含めます。公式 X API は、それらを public_metrics に、非公開のものを non_public_metrics に入れています。

指標Sorsa API のフィールド公式 X API のフィールド読める人
いいねlikes_countlike_count誰でも
リポストretweet_countretweet_count誰でも
リプライreply_countreply_count誰でも
引用quote_countquote_count誰でも
閲覧数view_countimpression_count誰でも
ブックマークbookmark_countbookmark_count誰でも
リンクのクリックなしurl_link_clicks投稿者
プロフィールのクリックなしuser_profile_clicks投稿者
  • いいね

    Sorsa API のフィールド
    likes_count
    公式 X API のフィールド
    like_count
    読める人
    誰でも
  • リポスト

    Sorsa API のフィールド
    retweet_count
    公式 X API のフィールド
    retweet_count
    読める人
    誰でも
  • リプライ

    Sorsa API のフィールド
    reply_count
    公式 X API のフィールド
    reply_count
    読める人
    誰でも
  • 引用

    Sorsa API のフィールド
    quote_count
    公式 X API のフィールド
    quote_count
    読める人
    誰でも
  • 閲覧数

    Sorsa API のフィールド
    view_count
    公式 X API のフィールド
    impression_count
    読める人
    誰でも
  • ブックマーク

    Sorsa API のフィールド
    bookmark_count
    公式 X API のフィールド
    bookmark_count
    読める人
    誰でも
  • リンクのクリック

    Sorsa API のフィールド
    なし
    公式 X API のフィールド
    url_link_clicks
    読める人
    投稿者
  • プロフィールのクリック

    Sorsa API のフィールド
    なし
    公式 X API のフィールド
    user_profile_clicks
    読める人
    投稿者

閲覧数も公開です。X 自身の指標ドキュメント(新しいタブで開きます)は、インプレッションを、通常のベアラートークンであらゆるポストについて読み取れる公開指標として挙げています。同じ人が1つのポストを2回見ると、2インプレッションと数えられます。

非公開の数値には3つの入り口があり、いずれもポストを書いたアカウントに結びついています。1つ目は x.com のアナリティクスダッシュボードです。2つ目は公式 X API の GET /2/tweets/analytics(新しいタブで開きます) で、自分のポスト ID を最大100件まで指定でき、合計値または1時間・1日・1週間ごとの時系列として、アカウントの OAuth トークンで署名して取得します。3つ目は、営業契約にもとづく X の Enterprise Engagement API(新しいタブで開きます) です。非公開の指標は、直近30日間のポストだけが対象です。

公開された数値の場合でも、公式 X API は開発者アカウントとアプリを用意したうえで、読み取ったポストごとに$0.005、1,000件あたり$5.00を課金します(X API の料金(新しいタブで開きます))。2026年11月22日からは、投稿者を付けて読み取ったポストは$0.015になります(X の通知(新しいタブで開きます))。アカウントのタイムラインは直近3,200件のポスト(新しいタブで開きます)で止まり、従量課金は月300万件のポスト読み取りが上限です。

#Sorsa API であらゆるアカウントのエンゲージメント指標を取得する

自分のものではないアカウントのエンゲージメント指標には、Twitter(X)API 兼スクレイピングツールの Sorsa API を使ってください。返すポストにはすべて6つの数値と投稿者の完全なプロフィールが付き、料金は1,000ポストあたり$0.014からで、公式 X API は$5.00です。ApiKey ヘッダー1つで、開発者アカウントと OAuth の代わりになります。全プランで毎秒20リクエストで動作し、自分の X アカウントが関与することはありません。

もっとも手早く始められるのは、アカウントのタイムラインです。1リクエストで最新のポストが数値付きで返り、カーソルをたどれば古いポストへ進めます。カーソルとは、各ページとともに API が返すトークンで、それを送り返すと次のページが取得できます。

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

  2. アカウントのポストを取得する。 ハンドルを POST /user-tweets(新しいタブで開きます) に送ります。1ページに最大20ポストが新しい順に入り、数値と投稿者のプロフィールが付いています。

    Terminal
    curl -X POST "https://api.sorsa.io/v3/user-tweets" \
      -H "ApiKey: YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"username": "harborline_roasters"}'
    
    Response200 OK
    {
      "tweets": [
        {
          "id": "2116184394037384839",
          "full_text": "Winter blend ships Monday. First 200 orders get a tin.",
          "created_at": "2026-10-30T15:04:11Z",
          "lang": "en",
          "likes_count": 212,
          "retweet_count": 31,
          "reply_count": 24,
          "quote_count": 6,
          "view_count": 9640,
          "bookmark_count": 41,
          "is_reply": false,
          "is_quote_status": false,
          "conversation_id_str": "2116184394037384839",
          "user": {
            "id": "1503315520518280839",
            "username": "harborline_roasters",
            "display_name": "Harborline Roasters",
            "followers_count": 8450,
            "followings_count": 312,
            "tweets_count": 3921,
            "verified": false
          }
        }
      ],
      "next_cursor": "DAABCgABG5xQ2bW8AAAKAAIbmN8T0ZbQ6QgAAwAAAAIAAA"
    }
    
  3. 必要な日付まで遡る。 次のボディに next_cursor を入れて送り、空で返ってきたとき、またはポストが開始日より古くなったときに止めます。以下のループは、ポスト1件につき1行を CSV ファイルに書き出します。

    import csv
    import requests
    
    API = "https://api.sorsa.io/v3/user-tweets"
    HEADERS = {"ApiKey": "YOUR_API_KEY"}
    FIELDS = ["id", "created_at", "likes_count", "retweet_count",
              "reply_count", "quote_count", "view_count", "bookmark_count"]
    
    
    def account_posts(username, since="2026-10-01"):
        body, rows = {"username": username}, []
        while True:
            r = requests.post(API, headers=HEADERS, json=body, timeout=30)
            r.raise_for_status()
            data = r.json()
            page = data.get("tweets", [])
            rows += [t for t in page if t["created_at"] >= since]
            old = all(t["created_at"] < since for t in page)
            if not data.get("next_cursor") or old:
                return rows
            body["next_cursor"] = data["next_cursor"]
    
    
    posts = account_posts("harborline_roasters")
    with open("metrics.csv", "w", newline="") as f:
        w = csv.DictWriter(f, fieldnames=FIELDS, extrasaction="ignore")
        w.writeheader()
        w.writerows(posts)
    print(len(posts), "posts written")
    
  4. 実行ごとにスナップショットとして保存する。 カウントはポストの公開後も増え続けるので、取得のたびに日付を付けて保存します(ポスト ID、取得日時、6つの数値)。1日おきの2つのスナップショットを見れば、どのポストがまだ伸びているかがわかります。また、created_at に対して1か月分のカウントをプロットすれば、アカウントのポストのリーチが伸びているか落ちているかが見えます。

429 は1秒間に20リクエストを超えたことを意味するので、1秒待ってから再送します。403 はキーがない、またはリクエストを使い切ったこと、401 はキーが誤っていることを意味します。失敗したリクエストに課金されることはありません。

#指標を最新に保つ:追跡中のポストを100件ずつ更新する

追跡するポストが決まったら、ID を指定してカウントを更新します。POST /tweet-info-bulk(新しいタブで開きます) は最大100件のポストリンクまたは ID を受け取り、すべてのポストを最新のカウント付きで1リクエストで返します。料金は1,000ポストあたり$0.014からです。この方法なら、100万ポスト分の指標が$14からで取得できます。

アカウントのタイムラインの最初のページは、その一部を無料でまかなってくれます。最新20ポストが現在のカウント付きで、すでに入っているからです。1日2回投稿するアカウントなら、そのリクエスト1つで直近10日分が最新に保たれます。それより古いポストだけにバッチ呼び出しが必要です。

=、1ページ目 最新20件の投稿と現在のカウント: リクエスト1回 1日目 2日目 3日目 4日目 5日目 6日目 7日目 POST /tweet-info-bulk 古い投稿はID指定、1リクエスト100件 1日5投稿するアカウントで、各投稿を7日間毎日再取得。左が最新。
タイムライン1ページで最新20ポストが更新できます。それより古いものは、ID 指定で1リクエスト100ポストずつ処理します。
Terminal
curl -X POST "https://api.sorsa.io/v3/tweet-info-bulk" \
  -H "ApiKey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"tweet_links": ["2116184394037384839", "2115861688481928839"]}'

Python では、ID リストを100件ずつのスライスに切り分け、それぞれを tweet_links として送ります。レスポンスは tweets 配列1つで、カーソルはありません。

Python
HEADERS = {"ApiKey": "YOUR_API_KEY"}


def refresh(ids):
    out = []
    for i in range(0, len(ids), 100):
        r = requests.post(
            "https://api.sorsa.io/v3/tweet-info-bulk",
            headers=HEADERS, json={"tweet_links": ids[i:i + 100]},
            timeout=60)
        r.raise_for_status()
        out += r.json().get("tweets", [])
    return out

カードは、ポストのリストを1回走査した場合の比較です。すべてのポストの6つの数値を、1回ずつ読み取ります。

ポスト数

公式 X API

$5,000

100万 ポストの指標の場合

1ポスト $0.005

Sorsa API

$14から

100万 ポストの指標の場合

1,000件あたり$0.014から

#API でリプライ、引用、リツイートしたユーザーを取得する

カウントが示すのは、何人がエンゲージしたかです。あと3つのエンドポイントで、それが誰で、何を書いたかがわかります。どれもポストのリンクまたは ID を受け取り、各リプライと引用は、独自のカウントと投稿者付きの完全なポストとして返ります。

知りたいことSorsa API のエンドポイント返ってくるもの
ポストへのリプライ/comments(新しいタブで開きます)1ページ最大20件のリプライ。関連度、新着順、いいね数で並べ替え可能
ポストの引用ポスト/quotes(新しいタブで開きます)1ページ最大20件の引用。追加された本文付き
リポストしたアカウント/retweeters(新しいタブで開きます)フォロワー数付きのプロフィール。新しい順
多数のアカウントの合計/info-batch(新しいタブで開きます)1リクエストあたり最大100プロフィール

それぞれが別の問いに答えます。Likes で並べ替えたリプライなら、いちばん多くいいねされた返信が1ページ目に来るので、1リクエストでポストがオーディエンスにどう受け取られたかがわかります。引用には人々が付け加えたコメントが入っていて、トーンやセンチメントの元データになります。リツイートしたユーザーのフォロワー数を合計すれば、ポストが間接的に届いたオーディエンスの規模になります。

Python
BASE = "https://api.sorsa.io/v3"
HEADERS = {"ApiKey": "YOUR_API_KEY"}


def pages(path, body, key, limit=10):
    for _ in range(limit):
        r = requests.post(f"{BASE}/{path}", headers=HEADERS,
                          json=body, timeout=30)
        r.raise_for_status()
        data = r.json()
        yield from data.get(key, [])
        if not data.get("next_cursor"):
            return
        body = {**body, "next_cursor": data["next_cursor"]}


post = "https://x.com/harborline_roasters/status/2116184394037384839"
top = list(pages("comments", {"tweet_link": post, "order_by": "Likes"},
                 "tweets", limit=1))[:5]
quotes = list(pages("quotes", {"tweet_link": post}, "tweets"))
fans = list(pages("retweeters", {"tweet_link": post}, "users"))
reach = sum(u.get("followers_count", 0) for u in fans)
print(len(quotes), "quotes,", len(fans), "retweeters,", reach, "reach")

公式 X API では、引用ポストは GET /2/tweets/:id/quote_tweets から1件$0.005、リツイートしたユーザーは GET /2/tweets/:id/retweeted_by から1件$0.010、つまり1,000アカウントあたり$10.00で取得します。この2つのエンドポイントは、どちらも15分間に75リクエストまでです(X API のレート制限(新しいタブで開きます))。リプライには専用のエンドポイントがなく、conversation_id を検索して取得しますが、直近検索では7日前までしか遡れません。

2つの用途は、それぞれ専用のページで解説しています。1つのアカウントがフォロー、リツイート、引用、リプライをしたかどうかを確認するには、Twitter 検証 API のガイドが、1回のチェックで答えを出します。コードを使わずにポストのリプライを読みたい場合は、X のコメントを見る方法を参照してください。

#API のデータからエンゲージメント率を計算する方法

エンゲージメント率とは、ポストに反応した人の割合のことで、API のフィールドから一般的な2つの計算ができます。閲覧数ベースでは、いいね、リポスト、リプライ、引用を足し、閲覧数で割って100を掛けます。フォロワー数ベースでは、同じ合計を投稿者の followers_count で割ります。この値はすべてのポストの user オブジェクトに入っています。

上のレスポンスのポストを例にします。いいね212、リポスト31、リプライ24、引用6で、インタラクションは273です。閲覧数9,640に対しては2.83%、フォロワー数8,450に対しては3.23%になります。Twitter エンゲージメント率計算ツールも同じ2つの式を使っているため、コードと無料ツールは、どのアカウントでも一致します。

Python
from statistics import median


def engagement(posts):
    followers = posts[0]["user"]["followers_count"]
    for t in posts:
        acts = (t["likes_count"] + t["retweet_count"]
                + t["reply_count"] + t["quote_count"])
        views = t["view_count"] or 1
        t["er_views"] = round(100 * acts / views, 2)
        t["er_followers"] = round(100 * acts / followers, 2)
    return median(t["view_count"] for t in posts)

率とあわせて、閲覧数の中央値も報告してください。1つのバイラルなポストは平均を何か月も押し上げますが、中央値なら典型的なポストの実力がわかります。公開から2日たっていないポストは、閲覧数がまだ伸びている最中なので、中央値から除外します。

知っておきたいこと

閲覧数が数えるのは人ではなく画面です。X はポストが画面に表示されるたびにインプレッションを1つ数えるため、同じ読者が2回スクロールで通り過ぎれば、2閲覧になります。閲覧数ベースの率は、規模が近いアカウント同士で比較し、オーディエンスの比較にはフォロワー数ベースの率を使ってください。

#X のアナリティクスパイプラインの月額コスト

アナリティクスパイプラインの費用は、3つの数字で決まります。追跡するアカウント数、各アカウントが1日に公開するポスト数、そして各ポストを何日間読み直すかです。スライダーを動かして、両方の API での1か月分を確認してください。

100
5
7
$525
公式X API、月額
105K件の投稿を1件$0.005で取得。11月22日以降は各投稿の投稿者情報を付けた場合:$1,575。
最安 $4.83
Sorsa API、月額
1,000リクエストあたり$1.40。Proの単価$1.99なら$6.87。投稿者情報はすべての投稿に含まれます。

1日あたり約6秒分のリクエスト(毎秒20リクエスト):アカウントごとにタイムライン1ページ、古い投稿はIDで1リクエスト100件。

アカウントごとに毎日タイムライン1ページ、古い投稿は1リクエスト100件で更新。公式X APIは返したすべての投稿を1件$0.005で再取得します。

差が生まれる原因は単位です。公式 X API は、返したポストごと、読み直した日ごとに課金し、月300万件のポスト読み取りで止まります。それを超えると、月約$42,000からの Enterprise 契約しか残りません。Sorsa API はリクエストに課金し、1リクエストでID 指定なら最大100ポスト、タイムラインなら20ポストを取得できます。

競合、クライアント、クリエイターを対象にしたダッシュボードには、Sorsa API を選んでください。ツイートの指標は、$5.00ではなく1,000ポストあたり$0.014からです。全プランで毎秒20リクエストで動作し、API キー1つで開発者アカウントの代わりになり、同じキーでリプライ、引用、リツイートしたユーザー、2006年まで遡る検索も読み取れます。読み取り専用なので、あなたの X アカウントに触れることもありません。

#1つのアカウントだけでなく、トピックを分析する

エンゲージメント分析は、会話に対しても使えます。トピックに関するポストを検索し、カウントで順位を付けます。POST /search-tweets(新しいタブで開きます) は X 独自の検索演算子を受け付け、6つの数値と投稿者付きで1ページ約20ポストを返し、2006年まで遡れます。

Terminal
curl -X POST "https://api.sorsa.io/v3/search-tweets" \
  -H "ApiKey: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query": "\"cold brew\" min_faves:50 lang:en", "order": "popular"}'

期間を指定するには、クエリに since: と until: を追加します。投稿者ごとにインタラクションを合計すれば、誰がそのトピックを動かしているかがわかります。同じ期間でブランドごとにクエリを1つずつ実行すれば、シェア・オブ・ボイスも出せます。演算子は Twitter 検索 API のガイドに、同じデータをベンチマークにする方法は Twitter 競合分析にまとめています。

#まず1つのアカウントから今日始める

すべての公開ポストのいいね、リポスト、リプライ、引用、閲覧数、ブックマークは、どのアカウントのものでも API で読み取れます。投稿者だけのものとして残るのは、クリックとフォローだけです。Sorsa API は6つの数値すべてを投稿者のプロフィール付きで返し、ID 指定なら1リクエスト100ポスト、料金は1,000件あたり$0.014からで、公式 X API は$5.00です。上のループで1つのアカウントの直近1か月分を取得し、毎日更新すれば、100回分の無料リクエストで最初の10,000ポストをカバーできます。

#よくある質問

他のアカウントの Twitter アナリティクスを取得できますか?

はい。公開されている数値はすべて取得できます。公開アカウントのポストごとのいいね、リポスト、リプライ、引用、閲覧数、ブックマーク、そしてフォロワー数とポスト数の合計は、所有者の関与なしに読み取れます。リンクのクリック、プロフィールのクリック、ポストからのフォローは、投稿者だけのものです。ブラウザで2つのアカウントを比べるなら Twitter アカウント比較を、多数のアカウントなら、API でコードから処理できます。

公式 X API は、任意のツイートの閲覧数を返しますか?

はい。X はインプレッションを公開指標として挙げており、公式 X API でベアラートークンを使って読み取ったどのポストにも、public_metrics.impression_count が付きます。料金は1ポストあたり$0.005です。Sorsa API は同じ数値を、すべてのポストの view_count として1,000ポストあたり$0.014から返します。オーガニックとプロモーションの内訳やクリックには、投稿者自身のログインが必要です。

API で、ツイートにいいねした人を確認できますか?

自分のものではないポストについては、いいねしたユーザーを一覧できる API はありません。X は2024年6月にいいねを非公開にし、いいねしたユーザーのエンドポイントも、1ポストあたり最大100ユーザーまでしか返しません(X のいいねに関するドキュメント(新しいタブで開きます))。いいね数は公開のままで、Sorsa API はすべてのポストの likes_count として返します。ほかの操作の人物は、/retweeters、/quotes、/comments で特定できます。

Twitter アナリティクスに最適な API は?

自分のものではないアカウントのアナリティクスには、Sorsa API を使ってください。すべてのポストに、いいね、リポスト、リプライ、引用、閲覧数、ブックマークと投稿者のプロフィールが付き、1,000ポストあたり$0.014から。公式 X API は$5.00です。全プランで毎秒20リクエスト、API キー1つで開発者アカウントは不要、さらにリプライ、引用、リツイートしたユーザーも取得できます。自分のポストのクリックは、X 自身のアナリティクスに残ります。

Twitter エンゲージメント API の料金はいくらですか?

Sorsa API では、ID 指定のポスト指標が1,000ポストあたり$0.014から、タイムライン、リプライ、引用は1,000件あたり$0.07からです。1リクエストで100件または20件を取得できるためです。公式 X API は、1,000ポストあたり$5.00、リツイートしたユーザー1,000件あたり$10.00で、2026年11月22日からは投稿者付きで1,000ポストあたり$15.00です。Sorsa API の100回分の無料リクエストは、カード不要で有効期限もありません。

#検証方法

2026年11月2日に、このガイドのすべてのエンドポイント、パラメーター、レスポンスのフィールドを、公開中の Sorsa API リファレンス(45エンドポイント)と、/user-tweets、/tweet-info-bulk、/comments、/quotes、/retweeters のドキュメントページと照合しました。リクエストとレスポンスにはデモアカウントを使っています。公式 X API の指標、アナリティクスのエンドポイント、料金、レート制限は docs.x.com から、11月22日の課金変更は X の開発者フォーラムから、同日に読み取りました。コストの数字は、両方の料金表から私たち自身が計算したものです。

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

変更点
  • ゼロから全面的に書き直し、Twitter エンゲージメント API のガイドと統合しました。両 API のフィールド名を並べた公開・投稿者限定の指標の表、Python と Node.js のタイムラインのループ、1リクエスト100ポストでの毎日の更新、エンゲージメントデータとしてのリプライ・引用・リツイートしたユーザー、閲覧数の中央値によるエンゲージメント率、月額コスト計算ツール、公式 X API の2026年の料金・制限・11月22日の課金変更を追加しています。
  • 初公開。