Twitter リスト API:メンバーとツイートを取得する
Twitter リスト API は、公開 X リストを数値 ID で読み取り、メンバー、フォロワー、メンバーの最新ポストを1つにまとめたフィードを返します。公式 X API では、メンバー1人につき$0.010、ポスト1件につき$0.005が課金されます。
結論: ID はリストの URL の末尾にある数字で、1つのリストには最大5,000アカウントが入ります。X 公式のエンドポイントは1ページ100件で、開発者アカウントが必要です。1つのキーでリストを読み取るなら Sorsa API を使います。GET /list-members は1リクエストで200メンバーを返し、1,000件あたり$0.007からで、100回分の無料リクエストで2万メンバーをカバーできます。
- エンドポイント
GET /list-members- 1ページの件数
- 1リクエストあたり200メンバー
- 料金
- 1,000件あたり$0.007から
#Twitter リスト API で読み取れるもの
X リストは、独自のタイムラインを持つ、最大5,000アカウントの名前付きグループです。API は、公開リストの3つの部分を読み取れます。それぞれ別のエンドポイントから取得します。
- メンバー: リストの作成者が追加したアカウント。スプレッドシートや CRM にエクスポートされるのは、この厳選されたアカウント群です。
- フォロワー: リストのタイムラインを読むためにリストをフォローしている人で、X では購読者とも呼ばれます。メンバー自身のフォロワーではありません。アカウントのフォロワーについては、Twitter フォロワー APIのガイドを参照してください。
- フィード: リストのタイムライン。全メンバーの最新ポストが1か所にまとまっています。
リスト ID は、リストのアドレスにある長い数字です。x.com/i/lists/1234567890123456789 の数字がそれで、リストへのリクエストはすべてこの ID から始まります。
X ヘルプセンター(新しいタブで開きます)にある数点のルールが、読み取れる範囲を決めます。リストは初期設定で公開で、公開リストは誰でもフォローできます。非公開リストを見られるのは作成したアカウントだけなので、どの API でも読み取れません。名前は25文字までです。他人のリストから抜けるには、その作成者をブロックするしかありません。
どのリスト用エンドポイントも返さない情報が2つあります。アカウントが追加された時期と、誰が抜けたかです。変化を追うには、メンバーを定期的にエクスポートし、id でファイルを比較します。アカウントは作成者が X アプリで一度選ぶだけで、コードに必要なのは ID だけなので、リストはTwitter のリアルタイム監視でも最も扱いやすい単位です。
#リストのメンバーを CSV にエクスポートする
リストをエクスポートするには、Twitter(X)API 兼スクレイピングツールである Sorsa API を使います。GET /list-members(新しいタブで開きます) は1リクエストで最大200メンバーを返すので、5,000メンバーの満杯のリストでも25リクエストで済みます。以下の手順で、全メンバーを1つの CSV ファイルに書き出します。
-
リスト ID をコピーする。 x.com でリストを開き、アドレスバーの
/lists/の後ろの数字を取ります。 -
キーを取得する。 サインアップして、ダッシュボードから API キーをコピーします。カードは不要で、最初の100リクエストは無料です。
-
最初のページをリクエストする。 ID を
list_idとして、API キーをApiKeyヘッダーに付けて送ります。ターミナル curl -G "https://api.sorsa.io/v3/list-members" \ -H "ApiKey: YOUR_API_KEY" \ --data-urlencode "list_id=1234567890123456789"レスポンス200 OK { "users": [ { "id": "1592041833471827968", "username": "dana_tracks_markets", "display_name": "Dana Tracks Markets", "description": "Rates, FX and the odd chart.", "location": "Chicago, IL", "followers_count": 48210, "followings_count": 612, "tweets_count": 15873, "verified": true, "protected": false, "created_at": "2014-03-09T16:22:41Z" } ], "next_cursor": "DAABCgABGc3yPLu__-0KAAIZsbqf" } -
カーソルをたどって行を書き出す。
next_cursorが空で返るまで、リクエストごとにそれを送り返し、届いたページを順に保存します。import csv import requests URL = "https://api.sorsa.io/v3/list-members" HEADERS = {"ApiKey": "YOUR_API_KEY"} FIELDS = ["id", "username", "display_name", "followers_count", "verified", "created_at"] def export_members(list_id, path="list_members.csv"): params = {"list_id": list_id} with open(path, "w", newline="", encoding="utf-8") as f: out = csv.DictWriter(f, fieldnames=FIELDS, extrasaction="ignore") out.writeheader() while True: r = requests.get(URL, headers=HEADERS, params=params, timeout=30) r.raise_for_status() page = r.json() out.writerows(page.get("users", [])) cursor = page.get("next_cursor") if not cursor: break params["next_cursor"] = cursor export_members("1234567890123456789")
各行は、公開プロフィールの全体です。プロフィール系エンドポイントが返すものと同じ id、ハンドル、自己紹介、所在地、各種カウント、作成日が入っています。ハンドルは変わることがありますが ID は変わらないので、ファイルのキーには id を使ってください。403 はキーがない、またはリクエストが残っていないことを、429 は1つのキーで1秒間に20リクエストを超えたことを意味するので、1秒待ってからもう一度送ります。
同じループで、GET /list-followers(新しいタブで開きます) からリストのフォロワーもエクスポートできます。こちらも1ページ最大200フォロワーです。パスを変え、リストは list_id ではなく list_link として送ってください。
知っておきたいこと
2つのパラメータは異なります。
/list-membersと/list-tweetsは、数字だけのlist_idを受け取ります。/list-followersはlist_linkを受け取り、リストの URL 全体でも数字でも構いません。完全なアドレスをlist_idに貼り付けてしまうミスはよくあるので、先に数字だけに切り出してください。
#リストのツイートを1つのフィードとして読む
GET /list-tweets(新しいタブで開きます) は、リストのタイムラインを返します。全メンバーの最新ポストが1リクエストに約20件で、それぞれ本文、日時、いいね数、リプライ数、リポスト数、閲覧数と、投稿者のプロフィールが付きます。リストのアカウントが12でも5,000でも、1リクエストで全アカウントをカバーできます。
フィードには「since」の絞り込みがないので、モニターは先頭から読み、保存済みのポストに最初に当たったところで止めます。Snowflake ID、つまり X がすべてのポストに付ける番号は時間とともに増えるため、保存した最新の ID が、前回のチェックの終わりを示します。
次のループは、5分ごとにリストをチェックし、新しいポストを1回ずつ表示します。
import time
import requests
URL = "https://api.sorsa.io/v3/list-tweets"
HEADERS = {"ApiKey": "YOUR_API_KEY"}
LIST_ID = "1234567890123456789"
def new_posts(seen, max_pages=10):
"""Read the feed from the top until a post we already have."""
fresh, params = [], {"list_id": LIST_ID}
for _ in range(max_pages):
r = requests.get(URL, headers=HEADERS,
params=params, timeout=30)
r.raise_for_status()
page = r.json()
for tweet in page.get("tweets", []):
if tweet["id"] in seen:
return fresh
fresh.append(tweet)
cursor = page.get("next_cursor")
if not cursor:
break
params["next_cursor"] = cursor
return fresh
seen = set()
while True:
for t in reversed(new_posts(seen)):
seen.add(t["id"])
print(t["created_at"], "@" + t["user"]["username"],
t["full_text"][:80])
time.sleep(300) # check again in 5 minutes
本番では、seen をデータベースに保管し、直近の数千件の ID までに抑えてください。max_pages の上限により、何も保存されていない最初の実行でも、読み取りは200ポストまでに収まります。
フィードは新着を追うためのものです。リストの古いポストを読むには、検索を使います。メンバーのハンドルを OR でつないだ from: コマンドに入れ、バッチに分けて、期間を指定した上で POST /search-tweets(新しいタブで開きます) に送ります。コマンドはTwitter 検索 APIのガイドで説明しており、アーカイブは2006年までさかのぼれます。
#1つのリストが、全アカウントのポーリングより有利な理由
リストのフィードは、アカウントがいくつ入っていても、1回のチェックにつき1リクエストです。各アカウントのタイムラインを読む方法では、1回のチェックにつきアカウントごとに1リクエストかかります。500アカウントを5分ごとにチェックすると、1つずつ読む場合は月430万リクエスト、リスト1つなら8,640リクエストです。ただし、チェックの間に届く新着が20件未満の場合に限ります。
速度も、もう1つの制約になります。毎秒20リクエストなら、1つのキーで1分に1,200のタイムラインを読めるため、5,000アカウントを1周するには4分以上かかります。リストのフィードなら、同じ問いに1リクエストで、リストが混み合っていても数リクエストで答えられます。
リスト内のアカウント数
チェック間隔
アカウントごとの1日の投稿数
アカウントごとに1リクエスト
4.3M 月間リクエスト数
- 1回のチェック
- 500リクエスト、毎秒20で25秒
- カバーするプラン
- Scale、月5M
リストのフィード1つ
8,640 月間リクエスト数
- 1回のチェック
- 新規投稿約9件につき1リクエスト
- カバーするプラン
- Starter、月10K
リストのフィードなら、リクエストは500分の1で済みます(同じ500アカウントの場合)。
リストの規模、チェック間隔、アカウントの投稿頻度を選んでください。活発なリストは1回のチェックで追加のページが必要になり、静かなリストは1ページで済みます。
1回のチェックあたりのページ数は、新しいポストの数に応じてしか増えません。前回のチェック以降に届いた約20ポストにつき、1リクエストです。リストが見るのは、選んだアカウントの投稿です。誰が書いたかを問わず、ブランド名を含むすべてのポストを捉えるには、代わりに Twitter メンション APIでブランド名を検索してください。
#リストのデータは1,000件あたりいくらか
リストのメンバーとフォロワーは、Sorsa API で1,000件あたり$0.007から、リストのポストは1,000件あたり$0.07からです。公式 X API は、従量課金の料金表(新しいタブで開きます)で、メンバーまたはフォロワー1,000件あたり$10.00、ポスト1,000件あたり$5.00を課金します。
2026年11月22日からは、X はそれらのポストと一緒に返されるすべての投稿者プロフィールにも、1件$0.010を課金します(10月23日の X の通知(新しいタブで開きます))。Sorsa API では、投稿者のプロフィールは追加料金なしですべてのポストに含まれます。
公式 X API
$500
リストメンバー5万人の場合
メンバー1人あたり$0.010
Sorsa API
$0.35から
リストメンバー5万人の場合
1,000件あたり$0.007から
1,000分の1のコスト
リスト API を決める要素は、料金、セットアップ、リクエストレート、取得量、X アカウントの安全性の5つです。Sorsa API は、そのすべてで優位に立ちます。
| 比較項目 | Sorsa API | 公式 X API |
|---|---|---|
| メンバーまたはフォロワー(1,000件あたり) | $0.007から、1リクエスト200件 | $10.00、1ページ100件 |
| リストのポスト(1,000件あたり) | $0.07から、1リクエスト約20件 | $5.00、さらに2026年11月22日から投稿者1人につき$0.010 |
| 5,000メンバーの満杯のリスト | $0.035から | $50.00 |
| セットアップ | API キー1つ | 開発者アカウント、アプリ、ベアラートークン、前払いのクレジット |
| リクエストレート | 全プラン毎秒20リクエスト | リストのエンドポイントごとに15分あたり900リクエスト |
| 取得量の上限 | 月間最大1,000万リクエストまでのプラン、それ以上は相談可 | 課金サイクルあたり300万ポストの読み取り、それ以降は Enterprise |
| X アカウント | 一切触れない:ログインもクッキーも不要 | 開発者アカウントとそのアプリ |
メンバーまたはフォロワー(1,000件あたり)
- Sorsa API
- $0.007から、1リクエスト200件
- 公式 X API
- $10.00、1ページ100件
リストのポスト(1,000件あたり)
- Sorsa API
- $0.07から、1リクエスト約20件
- 公式 X API
- $5.00、さらに2026年11月22日から投稿者1人につき$0.010
5,000メンバーの満杯のリスト
- Sorsa API
- $0.035から
- 公式 X API
- $50.00
セットアップ
- Sorsa API
- API キー1つ
- 公式 X API
- 開発者アカウント、アプリ、ベアラートークン、前払いのクレジット
リクエストレート
- Sorsa API
- 全プラン毎秒20リクエスト
- 公式 X API
- リストのエンドポイントごとに15分あたり900リクエスト
取得量の上限
- Sorsa API
- 月間最大1,000万リクエストまでのプラン、それ以上は相談可
- 公式 X API
- 課金サイクルあたり300万ポストの読み取り、それ以降は Enterprise
X アカウント
- Sorsa API
- 一切触れない:ログインもクッキーも不要
- 公式 X API
- 開発者アカウントとそのアプリ
リストのデータなら Sorsa API を使います。メンバーは1リクエスト200件で1,000件あたり$0.007から、リスト全体のフィードは1,000件あたり$0.07からで、必要なのはキー1つだけです。失敗したリクエストに課金されることはありません。Sorsa API は REST API で、キーを付けた1回のリクエストできれいな JSON が返ります。ブラウザーで動かすものは何もなく、ご自身の X アカウントが危険にさらされることもありません。
#X コミュニティはどうなっていますか?
X は2026年4月23日に、利用の少なさとスパムの多さを理由に、コミュニティを終了すると発表しました(TechCrunch(新しいタブで開きます))。終了日は最初が5月6日、その後が5月30日でした。しかし機能はどちらの日も過ぎて存続し、7月下旬の時点でもまだ稼働していて、X から新しい日付は示されていません。
Sorsa API のリファレンスには、今もコミュニティ用のエンドポイントが5つ載っています。コミュニティのポストを取得する POST /community-tweets(新しいタブで開きます)、メンバーを取得する POST /community-members(新しいタブで開きます)、1アカウントを確認する POST /check-community-member(新しいタブで開きます) などです。ドキュメントでは、これらを使った新しいワークフローを作る前に、どれがデータを返すかをサポートに確認するよう案内しています。キャンペーンでのメンバーシップ確認については、エンゲージメント検証 APIのガイドで説明しています。
継続して動かす必要があるものは、代わりにアカウントをリストに入れてください。リストは終了の対象ではなく、上で紹介したすべてのリスト用エンドポイントで、今日も読み取れます。
#最初のリストを取得する
リストの ID をコピーし、GET /list-members に1回リクエストを送れば、最大200件のプロフィールが JSON で返ります。Sorsa API は、リストのメンバーとフォロワーを1リクエスト200件で1,000件あたり$0.007から、フィード全体を1,000件あたり$0.07から読み取れます。キーは1つで、全プラン毎秒20リクエストです。100回分の無料リクエストで、料金を支払う前に、満杯のリスト4つ分にあたる2万メンバーをエクスポートできます。
#よくある質問
Twitter リストのデータを取得するのに最適な API は何ですか?
Sorsa API は、そのために作られています。GET /list-members と GET /list-followers は1リクエストで200アカウントを1,000件あたり$0.007から返し、GET /list-tweets はリスト全体の最新ポストを1つのフィードで1,000件あたり$0.07から返します。開発者アカウントや OAuth の代わりに API キー1つで使え、全プラン毎秒20リクエストで動作し、X アカウントには一切触れません。
Twitter リストの ID はどうやって調べますか?
x.com でリストを開き、アドレスバーを見てください。x.com/i/lists/1234567890123456789 の /lists/ の後ろの数字が、リスト ID です。Sorsa API の /list-members と /list-tweets は、その数字を list_id として受け取ります。/list-followers は list_link を受け取り、URL 全体でも数字だけでも構わないので、アドレスをそのまま貼り付けられます。
非公開の Twitter リストのメンバーは取得できますか?
いいえ。非公開の X リストを見られるのは作成したアカウントだけなので、どの API でもそのメンバー、フォロワー、ポストは読み取れません。作成者が非公開に切り替えない限り、リストは公開です。Sorsa API は公開リストをすべて ID で読み取りますが、非公開リストからはデータを取得できず、失敗したリクエストに課金されることもありません。
Twitter リストには何アカウント入りますか?
X リストには最大5,000メンバーが入ります。Sorsa API の GET /list-members は1リクエスト200件で返すので、満杯のリストでも25リクエストでエクスポートでき、すべてのアカウントに付く100回分の無料リクエストで、満杯のリスト4つ分をカバーできます。X ヘルプセンターには、リスト名は25文字までで、数字で始めることはできないとも書かれています。
API でリストのメンバーを追加・削除できますか?
はい、公式 X API で可能です。POST /2/lists/{id}/members でアカウントを追加し、DELETE /2/lists/{id}/members/{user_id} で削除します。料金は1リクエスト$0.005で、15分あたり最大300リクエスト、リストの作成者のトークンが必要です。Sorsa API は設計上、読み取り専用なので、2つを組み合わせてください。リストの管理は X で、読み取りは Sorsa API で行います。
#本ガイドの調査と検証の方法
このページのエンドポイント、パラメータ、ページサイズはすべて、2026年11月2日に Sorsa API の最新の API リファレンスと照合し、リクエストもそれに基づいて書きました。掲載したレスポンスは、リファレンスの形式に架空のデータを入れたもので、実際の呼び出しの出力ではありません。公式 X API の料金、ページサイズ、レート制限は同日に読んだ docs.x.com から、11月22日の課金変更は10月23日付の X 開発者フォーラムの通知からのものです。コミュニティの日付は、2026年4月23日の TechCrunch の記事と、7月下旬の作成者のステータス更新に基づいています。
出典
- Sorsa API reference: List Members(新しいタブで開きます)
- Sorsa API reference: List Followers(新しいタブで開きます)
- Sorsa API reference: List Tweets(新しいタブで開きます)
- Sorsa API docs: Lists and Communities(新しいタブで開きます)
- X API pricing(新しいタブで開きます)
- X API: List Posts(新しいタブで開きます)
- X API: List Members(新しいタブで開きます)
- X API rate limits(新しいタブで開きます)
- X Developer Community: PPU expansions update, October 23, 2026(新しいタブで開きます)
- X Help Center: How to use X Lists(新しいタブで開きます)
- TechCrunch: X is shutting down Communities, April 23, 2026(新しいタブで開きます)