TweetScout の Twitter API は Sorsa API v3 になりました
TweetScout API は Sorsa API になりました。2025年に名称が変わり、TweetScout 時代の v2 は2026年5月1日から 410 Gone を返しています。29コールのうち27個は、現在 https://api.sorsa.io/v3 で動作します。
結論: TweetScout 連携の移行に必要な修正は4つです。ベース URL、パスからクエリパラメーターへ移るハンドル、cursor から next_cursor への名称変更、そして一部のフィールド名の変更です。移行したコールを動かすなら Sorsa API v3 を使ってください。同じ ApiKey ヘッダーで、毎秒20リクエストの45エンドポイントを利用でき、100回分の無料リクエストで旧コールをすべて試せます。
api.sorsa.io/v3- 29コール中27個が引き継ぎ済み
- 料金
- 1,000リクエストあたり$1.40から
#TweetScout API に起きたこと
TweetScout API は2025年に Sorsa API へ名称変更されました。2022年から Scouts Labs Inc で運営してきた同じチームが手がけています。TweetScout 時代のバージョンである v2 は、2026年5月1日に廃止(新しいタブで開きます)されました。現在、v2 のエンドポイントはすべて 410 Gone を返し、api.tweetscout.io/v2 を指したままのコードは、その廃止済みバージョンを呼び出しています。
プロダクトは2つの利用者層に沿って分かれました。暗号資産の分析アプリは sorsa.io(新しいタブで開きます) の Sorsa アプリになり、tweetscout.io と app.tweetscout.io はそこへリダイレクトされます。開発者向け API は api.sorsa.io の Sorsa API になりました。TweetScout スコアは算出方法そのままに Sorsa Score と名前を変え、そのエンドポイントは v3 に含まれています。ティアとスコアの構成は Sorsa Score API のガイドで解説しています。
「Tweet Scout」や「Twitter Scout」で検索しても、たどり着くのは同じプロダクトです。コードにとって変わったのはバージョンです。v3 は TweetScout の機能を引き継ぎ、一部のパスとパラメーターの名前を変え、旧 API になかった20個のエンドポイントを加えて、合計45個になっています。
#TweetScout のコールを4ステップで Sorsa API v3 に移行する
TweetScout のコールはどれも同じ4つの修正で移行でき、ほとんどは1行で済みます。TweetScout 連携の直接の後継は Sorsa API v3 です。25個の v3 パスが旧来の機能を担い、キーは引き続き ApiKey ヘッダーに入れ、全プランで毎秒20リクエストで動作します。
-
v3 のキーを取得する。 サインアップして、ダッシュボードの API Keys からキーをコピーします。
GET /key-usage-info(新しいタブで開きます) でキーが有効かどうかと残りリクエスト数を確認でき、このリクエスト自体は消費されません。 -
ベース URL を差し替える。 コード内の
https://api.tweetscout.io/v2とhttps://api.sorsa.io/v2を、すべてhttps://api.sorsa.io/v3に置き換えます。 -
ハンドルと ID をパスから外す。 TweetScout ではアカウントをパスに入れていました(
/score/{user_handle}、/info-id/{user_id})。v3 ではクエリパラメーターで渡します。username、user_id、user_linkのうち、ちょうど1つを指定します。変更前:TweetScout API v2(現在は 410 Gone) curl "https://api.tweetscout.io/v2/score/orbit_dao_watcher" \ -H "ApiKey: YOUR_API_KEY"変更後:Sorsa API v3 curl -G "https://api.sorsa.io/v3/score" \ -H "ApiKey: YOUR_API_KEY" \ --data-urlencode "username=orbit_dao_watcher" -
ページングとボディのキー名を変更する。
cursorはnext_cursor、linkはuser_link、user_handleはusernameになります。POST /check-followでは、project_handleがusername_1(フォローされるべきアカウント)、user_handleがusername_2(確認対象のアカウント)になります。
スクリプトで見ても修正は同じです。ベース URL は1か所だけ変え、ハンドルは params に移し、v2 では1つの配列で返っていたリストは、v3 ではカーソル付きのページで届きます。v3 の基本は Python で使う Twitter API のチュートリアルで解説しています。
import requests
BASE = "https://api.sorsa.io/v3" # was https://api.tweetscout.io/v2
HEADERS = {"ApiKey": "YOUR_API_KEY"}
def score(handle):
# v2: GET /score/{handle} -> v3: GET /score?username=
r = requests.get(f"{BASE}/score", headers=HEADERS,
params={"username": handle}, timeout=30)
r.raise_for_status()
return r.json()["score"]
def following(handle):
# v2 returned one array; v3 pages 200 accounts at a time
users, cursor = [], None
while True:
params = {"username": handle}
if cursor:
params["next_cursor"] = cursor
r = requests.get(f"{BASE}/follows", headers=HEADERS,
params=params, timeout=30)
r.raise_for_status()
page = r.json()
users += page["users"]
cursor = page.get("next_cursor")
if not cursor:
return users
print(score("orbit_dao_watcher"))
print(len(following("orbit_dao_watcher")))
401 はキーが誤っていること、403 はキーがない、またはリクエストを使い切ったこと、429 は1秒間に20リクエストを超えたことを意味します。429 のときは1秒待ってから再送してください。スコア系のエンドポイントは Sorsa Score データベースにあるアカウントに対して応答します。また v3 では、各フォロワーのフォロー日が取得できるようになりました。GET /top-followers の応答は次のとおりです。
{
"users": [
{
"id": "1600000000000000004",
"username": "lattice_fund_research",
"display_name": "Lattice Fund Research",
"followers_count": 48210,
"followings_count": 612,
"verified": true,
"score": 1873,
"follower_date": "2026-03-14T09:21:07Z"
}
]
}
#TweetScout API のエンドポイント対応表(v2 から v3 へ)
TweetScout 時代の v2 リファレンスにある29個のエンドポイントのうち、27個が v3 に引き継がれ、2個が廃止されました。27個は25個の v3 パスに着地します。2組が統合されたためで、/info と /info-id は1つの GET /info に、/score と /score-id は1つの GET /score になりました。
コードやログにある旧コールをコンバーターに貼り付ければ、対応する v3 リクエストと必要な修正がわかります。
移行済み TweetScoutの GET /v2/score/{user_handle} 現在、Sorsa APIの GET /v3/score です。
curl -G "https://api.sorsa.io/v3/score" \
-H "ApiKey: YOUR_API_KEY" \
--data-urlencode "username=orbit_dao_watcher"
- ベースURL:
https://api.tweetscout.io/v2は次に変わります:https://api.sorsa.io/v3. - ハンドルはパスから外れ、次に入れます:
?username=;?user_id=と?user_link=も使えます。 - 1アカウントあたり1リクエスト、1,000アカウントにつき最安$1.40。
TweetScout APIの呼び出しを貼り付けるか例を選ぶと、それに代わるSorsa API v3のリクエストが表示されます。
完全な対応表には、旧リファレンスのグループ順に v2 のコールをすべて並べ、置き換え先の v3 パスと、必要な修正を1つずつ示しています。パスが変わらないコールにも、新しいベース URL は必要です。
| TweetScout API v2 | Sorsa API v3 | 変更点 |
|---|---|---|
GET /info/{user_handle} | GET /info | ハンドルは ?username= へ |
GET /info-id/{user_id} | GET /info | ID は ?user_id= へ |
GET /about | GET /about | link は user_link に変更。username も使用可 |
GET /follows | GET /follows | link は user_link に変更。1ページ200件、next_cursor 付き |
GET /handle-to-id/{user_handle} | GET /username-to-id/{user_handle} | パス名を変更 |
GET /id-to-handle/{user_id} | GET /id-to-username/{user_id} | パス名を変更。応答には引き続き handle を含む |
POST /user-tweets | POST /user-tweets | link は user_link、cursor は next_cursor に変更 |
POST /tweet-info | POST /tweet-info | ボディは同じ。ツイートのフィールド名を変更 |
POST /tweet-info-bulk | POST /tweet-info-bulk | ボディは同じ。応答は tweets で包む |
POST /comments | POST /comments | order_by を任意で追加。応答キーは comments から tweets に変更 |
POST /search-tweets | POST /search-tweets | 変更なし |
POST /search-users | POST /search-users | 変更なし |
GET /list-members | GET /list-members | next_cursor によるページングを追加 |
GET /list-tweets | GET /list-tweets | cursor は next_cursor に変更 |
POST /community-tweets | POST /community-tweets | cursor は next_cursor、order_by は order に変更 |
POST /check-member | POST /check-community-member | パス名を変更 |
POST /check-follow | POST /check-follow | project_* は *_1、user_* は *_2 に変更 |
POST /check-quoted | POST /check-quoted | user_handle は username に変更 |
POST /check-retweet | POST /check-retweet | user_handle は username に変更 |
GET /check-comment | GET /check-comment | user_handle は username に変更 |
GET /score/{user_handle} | GET /score | ハンドルは ?username= へ |
GET /score-id/{user_id} | GET /score | ID は ?user_id= へ |
GET /score-changes | GET /score-changes | user_handle は username に変更 |
GET /followers-stats | GET /followers-stats | user_handle は username に変更 |
GET /top-followers/{user_handle} | GET /top-followers | ハンドルは ?username= へ。from は廃止 |
GET /top-following/{user_handle} | GET /top-following | ハンドルは ?username= へ |
GET /new-following-7d | GET /new-following-7d | user_handle は username に変更 |
POST /when-follow | 廃止 | POST /check-follow が有無を返す |
GET /handle-history | 廃止 | GET /about が変更回数と最終変更日を返す |
GET /info/{user_handle}- Sorsa API v3
GET /info- 変更点
- ハンドルは
?username=へ
GET /info-id/{user_id}- Sorsa API v3
GET /info- 変更点
- ID は
?user_id=へ
GET /about- Sorsa API v3
GET /about- 変更点
linkはuser_linkに変更。usernameも使用可
GET /follows- Sorsa API v3
GET /follows- 変更点
linkはuser_linkに変更。1ページ200件、next_cursor付き
GET /handle-to-id/{user_handle}- Sorsa API v3
GET /username-to-id/{user_handle}- 変更点
- パス名を変更
GET /id-to-handle/{user_id}- Sorsa API v3
GET /id-to-username/{user_id}- 変更点
- パス名を変更。応答には引き続き
handleを含む
POST /user-tweets- Sorsa API v3
POST /user-tweets- 変更点
linkはuser_link、cursorはnext_cursorに変更
POST /tweet-info- Sorsa API v3
POST /tweet-info- 変更点
- ボディは同じ。ツイートのフィールド名を変更
POST /tweet-info-bulk- Sorsa API v3
POST /tweet-info-bulk- 変更点
- ボディは同じ。応答は
tweetsで包む
POST /comments- Sorsa API v3
POST /comments- 変更点
order_byを任意で追加。応答キーはcommentsからtweetsに変更
POST /search-tweets- Sorsa API v3
POST /search-tweets- 変更点
- 変更なし
POST /search-users- Sorsa API v3
POST /search-users- 変更点
- 変更なし
GET /list-members- Sorsa API v3
GET /list-members- 変更点
next_cursorによるページングを追加
GET /list-tweets- Sorsa API v3
GET /list-tweets- 変更点
cursorはnext_cursorに変更
POST /community-tweets- Sorsa API v3
POST /community-tweets- 変更点
cursorはnext_cursor、order_byはorderに変更
POST /check-member- Sorsa API v3
POST /check-community-member- 変更点
- パス名を変更
POST /check-follow- Sorsa API v3
POST /check-follow- 変更点
project_*は*_1、user_*は*_2に変更
POST /check-quoted- Sorsa API v3
POST /check-quoted- 変更点
user_handleはusernameに変更
POST /check-retweet- Sorsa API v3
POST /check-retweet- 変更点
user_handleはusernameに変更
GET /check-comment- Sorsa API v3
GET /check-comment- 変更点
user_handleはusernameに変更
GET /score/{user_handle}- Sorsa API v3
GET /score- 変更点
- ハンドルは
?username=へ
GET /score-id/{user_id}- Sorsa API v3
GET /score- 変更点
- ID は
?user_id=へ
GET /score-changes- Sorsa API v3
GET /score-changes- 変更点
user_handleはusernameに変更
GET /followers-stats- Sorsa API v3
GET /followers-stats- 変更点
user_handleはusernameに変更
GET /top-followers/{user_handle}- Sorsa API v3
GET /top-followers- 変更点
- ハンドルは
?username=へ。fromは廃止
GET /top-following/{user_handle}- Sorsa API v3
GET /top-following- 変更点
- ハンドルは
?username=へ
GET /new-following-7d- Sorsa API v3
GET /new-following-7d- 変更点
user_handleはusernameに変更
POST /when-follow- Sorsa API v3
- 廃止
- 変更点
POST /check-followが有無を返す
GET /handle-history- Sorsa API v3
- 廃止
- 変更点
GET /aboutが変更回数と最終変更日を返す
廃止された2行にも、同じ答えにたどり着く方法があります。それぞれの方法は、下の「v3 に1対1のエンドポイントがない TweetScout のコール」のセクションで示します。
#名前が変わったレスポンスのフィールド
v3 の応答は TweetScout の応答の形を保っていますが、10個のフィールド名が変わりました。また、v2 では配列だけで返っていたリストが、オブジェクトの中に入って返ります({"users": [...]} または {"tweets": [...]})。パーサーが最初に壊れるのはこの名前変更なので、まず自分のコードで旧名称を検索してください。
| TweetScout API v2 のフィールド | Sorsa API v3 のフィールド | 登場箇所 |
|---|---|---|
screen_name | username | プロフィール、ツイートの投稿者、リストのメンバー |
name | display_name | プロフィール、ツイートの投稿者 |
friends_count | followings_count | プロフィール、ツイートの投稿者 |
statuses_count | tweets_count | ツイートの投稿者 |
register_date | created_at | プロフィール |
avatar | profile_image_url | プロフィール、ツイートの投稿者 |
banner | profile_background_image_url | プロフィール |
id_str | id | ツイート、ツイートの投稿者 |
favorite_count | likes_count | ツイート |
in_reply_to_status_id_str | in_reply_to_tweet_id | ツイート |
screen_name- Sorsa API v3 のフィールド
username- 登場箇所
- プロフィール、ツイートの投稿者、リストのメンバー
name- Sorsa API v3 のフィールド
display_name- 登場箇所
- プロフィール、ツイートの投稿者
friends_count- Sorsa API v3 のフィールド
followings_count- 登場箇所
- プロフィール、ツイートの投稿者
statuses_count- Sorsa API v3 のフィールド
tweets_count- 登場箇所
- ツイートの投稿者
register_date- Sorsa API v3 のフィールド
created_at- 登場箇所
- プロフィール
avatar- Sorsa API v3 のフィールド
profile_image_url- 登場箇所
- プロフィール、ツイートの投稿者
banner- Sorsa API v3 のフィールド
profile_background_image_url- 登場箇所
- プロフィール
id_str- Sorsa API v3 のフィールド
id- 登場箇所
- ツイート、ツイートの投稿者
favorite_count- Sorsa API v3 のフィールド
likes_count- 登場箇所
- ツイート
in_reply_to_status_id_str- Sorsa API v3 のフィールド
in_reply_to_tweet_id- 登場箇所
- ツイート
旧トップフォロワーリストの camelCase のキー(screeName、followersCount、friendsCount、registerDate)は、v3 のほかのプロフィールと同じ snake_case の名前になりました。名前が変わっていないフィールドには、full_text、retweet_count、reply_count、quote_count、view_count、bookmark_count、can_dm があります。v3 のプロフィールにはそれぞれ、location、bio_urls、pinned_tweet_ids、protected が加わっています。
知っておきたいこと
フォロー日の表記は v3 に2種類あります。
GET /top-followersではfollower_date、GET /new-followers-7dとGET /new-following-7dではfollowerDateです。ID は v2 と同様、どこでも文字列なので、データベースでもテキストとして保存してください。長い Snowflake ID は、JavaScript で数値として扱うと桁が失われます。
#v3 に1対1のエンドポイントがない TweetScout のコール
v2 のエンドポイント2個が廃止されました。また、TweetScout の名前で検索される3つの項目は、もともと API のエンドポイントではありません。いずれも、v3 には同じ答えにたどり着く方法があります。
/when-followは、あるアカウントが別のアカウントをフォローした日付を返していました。対象は TweetScout のデータベースにすでにあるアカウントだけです。v3 ではPOST /check-follow(新しいタブで開きます) がフォローの有無を返します。日付については、GET /top-followersがアカウントのフォロワー上位20件を、GET /new-followers-7d(新しいタブで開きます) が過去7日間にフォローした暗号資産関連アカウントを返します。/handle-historyは、アカウントの過去のハンドルを返していました。GET /about(新しいタブで開きます) はusername_change_countとlast_username_change_atを返し、無料の Twitter ユーザー名履歴チェッカーでは、どのアカウントについても確認できます。- 「オーディエンスの質」 は、TweetScout アプリで表示されていた、アカウントをフォローしているのが誰かというビューでした。API では
GET /followers-stats(新しいタブで開きます) が該当し、フォロワーに含まれるインフルエンサー、プロジェクト、VC ファンドを集計します。あわせてGET /top-followersとGET /scoreも使えます。 - センチメントのエンドポイント は、v2 にも v3 にも存在したことがありません。
POST /search-tweetsまたはPOST /mentionsでポストを取得し、自前のモデルでスコアを付けてください。やり方は Twitter のセンチメント分析のガイドにあります。 /v1/analyzeは、api.tweetscout.io の TweetScout エンドポイントだったことはありません。生成されたトレーディングボットのコードに登場し、そこでは仮のエンドポイントと注記されていて、このアドレスは 404 を返します。この用途にはGET /scoreとGET /followers-statsを呼び出してください。
#TweetScout にはなかった、同じキーで読めるもの
Sorsa API v3 は、TweetScout API になかった20個のエンドポイントを追加しました。そのため、暗号資産ダッシュボードが別のプロバイダーから買っていた一般的な X データの用途も、1つのキーでまかなえます。TweetScout 連携がフォロワーリストや検索のために別の API と並行して動いていたなら、両方を Sorsa API に集約してください。キー1つ、請求1つで、スマートフォロワーのデータも同じ JSON に入ります。
TweetScout 利用者が別のプロバイダーに頼っていた用途を、Sorsa API で1,000件あたりいくらかかるかを、公式 X API の料金(新しいタブで開きます)と並べて示します。公式 X API は開発者アカウントと OAuth が必要で、月300万件のポスト読み取りで上限に達します。
| 用途 | Sorsa API のエンドポイント | Sorsa API(1,000件あたり) | 公式 X API(1,000件あたり) |
|---|---|---|---|
| フォロワーの全リスト | GET /followers、1ページ200件 | $0.007から | $10.00 |
| バッチでのプロフィール取得 | GET /info-batch、1リクエスト100件 | $0.014から | $10.00 |
| ID 指定のポスト取得 | POST /tweet-info-bulk、1リクエスト100件 | $0.014から | $5.00 |
| 2006年まで遡る検索とメンション | POST /search-tweets、POST /mentions、1ページ約20件 | $0.07から | $5.00 |
| 暗号資産の影響力スコアとフォロワーカテゴリ | GET /score、GET /followers-stats、1リクエストにつき1アカウント | $1.40から | 提供なし |
フォロワーの全リスト
- Sorsa API のエンドポイント
GET /followers、1ページ200件- Sorsa API(1,000件あたり)
- $0.007から
- 公式 X API(1,000件あたり)
- $10.00
バッチでのプロフィール取得
- Sorsa API のエンドポイント
GET /info-batch、1リクエスト100件- Sorsa API(1,000件あたり)
- $0.014から
- 公式 X API(1,000件あたり)
- $10.00
ID 指定のポスト取得
- Sorsa API のエンドポイント
POST /tweet-info-bulk、1リクエスト100件- Sorsa API(1,000件あたり)
- $0.014から
- 公式 X API(1,000件あたり)
- $5.00
2006年まで遡る検索とメンション
- Sorsa API のエンドポイント
POST /search-tweets、POST /mentions、1ページ約20件- Sorsa API(1,000件あたり)
- $0.07から
- 公式 X API(1,000件あたり)
- $5.00
暗号資産の影響力スコアとフォロワーカテゴリ
- Sorsa API のエンドポイント
GET /score、GET /followers-stats、1リクエストにつき1アカウント- Sorsa API(1,000件あたり)
- $1.40から
- 公式 X API(1,000件あたり)
- 提供なし
TweetScout 利用者がアプリで行っていた KOL やスマートフォロワーの追跡には、v3 に4つのコールがあります。アカウントを支えているのが誰かを知る GET /top-followers と GET /followers-stats、過去1週間の暗号資産関連のフォローを知る GET /new-followers-7d と GET /new-following-7d です。暗号資産かどうかを問わない全フォロワーのリストは GET /followers(新しいタブで開きます) で取得でき、エクスポートの全手順は Twitter フォロワー API のガイドにあります。
そのほかの新しいエンドポイントでは、引用、リツイートしたユーザー、ユーザーのリプライとリツイート、X 記事、スペース、地域別トレンド、認証済みフォロワー、リストのフォロワー、コミュニティの情報・メンバー・検索、シャドウバンの確認を読み取れます。公式 X API からも読み取っているチームは、同様の対応表を使って Twitter/X API から移行できます。
#最初の TweetScout コールを今日移行する
TweetScout API は Sorsa API v3 として続いています。ベース URL を変え、ハンドルをクエリパラメーターに移し、cursor の名前を変えれば、旧29コールのうち27個が再び動きます。それらを動かす先は Sorsa API です。Sorsa Score を含む45エンドポイント、全プランで毎秒20リクエスト、そしてプランを選ぶ前に連携全体を変換してテストできる100回分の無料リクエストがあります。
#よくある質問
TweetScout と Sorsa API は同じものですか?
はい。TweetScout は暗号資産の分析アプリであり、その開発者向け API でもあり、2022年から Scouts Labs Inc が運営してきました。2025年に、アプリは sorsa.io の Sorsa アプリに、API は api.sorsa.io の Sorsa API になり、どちらも同じチームが手がけています。Sorsa API が読み取るのは公開 X データだけで、投稿は一切行わず、X のログイン情報も求めません。そのため、あなたの X アカウントが危険にさらされることはありません。
TweetScout API のドキュメントは今どこにありますか?
TweetScout API のドキュメントは、現在 docs.sorsa.io(新しいタブで開きます) の Sorsa API v3 リファレンスになっています。公開中の OpenAPI ファイルから生成され、全45エンドポイントとそのパラメーター、レスポンスのフィールドを掲載しています。TweetScout 時代の v2 ドキュメントは、2026年5月1日に v2 とともに終了しました。このページの対応表には、v2 のパスのすべてが、置き換え先の v3 コールの隣に残してあります。
以前の TweetScout API キーは今も使えますか?
Sorsa API ダッシュボードの API Keys に表示されているキーを使ってください。それが、同じ ApiKey ヘッダーですべての v3 エンドポイントが受け付けるキーです。/v2 のパスへのリクエストは、キーが何であっても 410 Gone で失敗します。TweetScout のキーを持っていたアカウントにもうログインできない場合は、新しいアカウントを1分で作成でき、100回分の無料リクエストから始められます。
TweetScout API の代わりにどの API を使えばよいですか?
TweetScout API の後継である Sorsa API を使ってください。TweetScout の29コールのうち27個が引き継がれ、Sorsa Score も GET /score から取得できます。同じキーで、フォロワーの全リストは1,000件あたり$0.007から、ポストは1,000件あたり$0.014から読み取れます。全プランで毎秒20リクエストで、X の開発者アカウントも OAuth も不要です。
TweetScout スコアは今も API で取得できますか?
はい。Sorsa Score として取得できます。TweetScout スコアが新しい名前になったもので、算出方法は同じです。どの暗号資産インフルエンサー、プロジェクト、ファンドがそのアカウントをフォローしているかを数えます。GET /score(新しいタブで開きます) は1リクエストにつき1アカウント分を返し、GET /score-changes は直近1週間と1か月の変化を返します。スコアはおよそ1日に1回更新されます。
TweetScout の元利用者にとって、Sorsa API の料金はいくらですか?
Sorsa API は、どのエンドポイントでも1コールを1リクエストと数えます。料金は Starter プランの1,000リクエストあたり$4.90から、Hyperscale の$1.40までで、失敗したリクエストに課金されることはありません。新規アカウントには、有効期限がなくカードも不要な100回分の無料リクエストが付きます。小規模な TweetScout 連携なら、変換してテストするのに十分な量です。
#検証方法
2026年11月2日に、api.sorsa.io/v2/swagger.json が今も配信している TweetScout 時代の v2 リファレンスファイルを、公開中の v3 リファレンスと並べて読みました。スクリプトで、v2 の29個すべてのエンドポイントと、そのパラメーターおよびレスポンスのフィールドを v3 と照合しました。v2 の廃止日は Sorsa API のドキュメントで、公式 X API の料金は docs.x.com で、同日に確認しています。この記事では API キーを使っていません。リクエストとレスポンスは、デモアカウントを使った v3 リファレンスに従っています。