◀ 2.

X (Twitter) API 完全ガイド|従量課金の料金・単価(2026年10月)と v2 移行

▶
この記事の要点
  • X API は 2026 年 2 月 6 日に従量課金(Pay-Per-Use)を正式開始。2026-10 時点の公式料金ページは従量課金のみで、月額サブスクリプションは無い
  • 仕組みは前払いクレジット制。Developer Console(console.x.com)でクレジットを買い、リクエストごとに差し引かれる
  • 単価の例(2026-10 時点): 投稿の読み取り 0.005 ドル/件、ユーザー情報 0.010 ドル/件、投稿作成 0.015 ドル/回(URL 入りは 0.20 ドル/回)
  • 自分のデータの読み取り(Owned Reads)は 0.001 ドル/件。同じリソースは UTC の 1 日以内なら 1 回分しか課金されない
  • 従量課金の投稿読み取りは月 300 万件が上限。それ以上や Firehose 等は Enterprise 契約
  • 旧 Free プランに代わる無料枠は無いが、新規アカウントは最大 70 ドルの無料クレジットを受け取れる(2026-10 開始)

X API とは(2026-10 時点の全体像)

X API は、X(旧 Twitter)の投稿・ユーザー・ダイレクトメッセージ・リスト・Spaces・トレンドなどをプログラムから扱うための公式 API です。2026-10 時点で新規開発の対象になるのは X API v2 で、エンドポイントは https://api.x.com/2/... の形をしています。

バージョン・区分公式ドキュメント上の位置付け(2026-10 時点)
X API v2現行版(Current)。新機能はすべてここに追加される。新規プロジェクトは v2 を使うよう案内されている
v1.1(Standard)レガシー(Legacy)。サポートは限定的で更新も最小限。将来的に廃止する意向が示されている
Enterprise大量データ向けの個別契約。専任サポート付き

開発者登録とアプリ作成は Developer Console(console.x.com)で行います。X アカウントでサインインし、Developer Agreement に同意してアプリを作ると、API Key、Bearer Token などの認証情報が発行されます。発行手順の詳細は配下の登録ガイドで扱うので、本記事では料金体系と、それに伴って何が変わったかを中心に整理します。

料金体系はどう変わったか(経緯)

以前の X API は Free / Basic / Pro / Enterprise という月額の段階制(ティア)で、プランによって使えるエンドポイントや月間の上限が決まっていました。これが 2025 年秋から段階的に、使った分だけ払う方式へ切り替わっています。公式の変更履歴(changelog)で確認できる主な出来事は次のとおりです。

日付出来事
2025-08-22不正なエンゲージメント対策として、Free ティアから「いいね」と「フォロー」の作成エンドポイントを削除
2025-10-20クレジット制の従量課金を限定的なクローズドパイロットとして発表
2026-02-06従量課金(Pay-Per-Use)を正式開始。新しい Developer Console(console.x.com)、公式 SDK「XDK」(Python / TypeScript)、ローカル検証用の Playground、AI 向けの MCP サーバーを同時に公開
2026-02-23LLM 生成のスパム対策。セルフサーブ(Enterprise 以外)では、API からの返信は元の投稿者に @メンションされた・引用された場合(summoned)に限定
2026-04-20自分のデータの読み取り(Owned Reads)を 0.001 ドルに値下げ。投稿作成を 0.015 ドル、URL を含む投稿を 0.20 ドルに改定。API 経由のフォロー・いいね・引用投稿はセルフサーブの全ティアから削除
2026-10-02従量課金アカウント向けの無料クレジット特典(カード登録で 20 ドル、初回自動チャージに最大 50 ドル)を開始

2026-02-06 の発表では、公益目的のアプリ(Public Utility Apps)は引き続き無料で拡張アクセスを受けられること、直近に利用のあった旧 Free ティア(Legacy Free tier)のユーザーには 1 回限りの 10 ドル分のバウチャーが配られることが告知されています。

従量課金(Pay-Per-Use)の仕組み

2026-10 時点の公式料金ページは「サブスクリプションは無く、使った分だけ払う」と明記しています。要点は次のとおりです。

  • 前払いクレジット制: Developer Console で先にクレジットを購入し、API を呼ぶたびにリアルタイムで差し引かれる
  • エンドポイントごとに単価が違う: 読み取りは「返ってきたリソース 1 件ごと」、書き込み・操作は「リクエスト 1 回ごと」に課金
  • 契約・最低利用額なし: いつでも始めていつでも止められる
  • 重複排除: 同じリソース(同じ投稿など)を UTC の同じ日のうちに何度取得しても課金は 1 回。UTC 0 時にリセットされる。ただし公式は「ソフトな保証」としており、障害時などは重複排除されない場合がある
  • 月 300 万件の上限: 従量課金で読み取れる投稿は 1 請求サイクルあたり 300 万件まで

残高と支出のコントロール

機能内容
クレジット残高Developer Console に表示。残高がわずかにマイナスになることがあり、その場合は不足分を補充するまでリクエストがブロックされる
自動チャージ(Auto-recharge)残高が設定した閾値を下回ったら、設定額を自動で追加購入する。チャージは 5 分に 1 回まで。残高が 0 以下のときは動かないので、手動で補充すると再開する
支出上限(Spending limit)1 請求サイクルあたりの上限額を設定でき、到達すると次のサイクルまでリクエストがブロックされる。開発・テスト中の想定外の請求を防ぐ用途で推奨されている
使用量 APIGET /2/usage/tweets で日ごとの投稿消費量を取得でき、予算管理やアラートに使える

短時間に大量のリクエストを送る使い方では、自動チャージを有効にしていても 5 分の間隔より先に残高を使い切り、「クレジット不足」のエラーになることがあります。公式は、1 回のチャージ額をピーク時 5 分間の消費より十分大きくするよう案内しています。

単価一覧(2026-10 時点)

以下は公式料金ページに掲載されている単価です(米ドル)。公式は「価格は変更される場合がある」としており、最新の単価は Developer Console と developer.x.com の料金ページで確認するよう案内しています。

読み取り(返ってきたリソース 1 件ごと)

リソース単価
Posts: Read(投稿)0.005 ドル
User: Read(ユーザー)0.010 ドル
DM Event: Read(DM イベント)0.010 ドル
Following/Followers: Read(フォロー・フォロワー)0.010 ドル
List / Space / Community / Note: Read各 0.005 ドル
Like / Mute / Block: Read各 0.001 ドル
Profile Update: Read0.005 ドル

書き込み・操作(リクエスト 1 回ごと)

操作単価
Post: Create(投稿作成)0.015 ドル
Post: Create(URL を含む投稿)0.200 ドル
Post: Create(summoned の返信)0.010 ドル
DM Interaction: Create / User Interaction: Create各 0.015 ドル
Interaction: Delete0.010 ドル
Content: Manage / List: Manage / Bookmark / Media Metadata各 0.005 ドル
List: Create / Privacy: Update各 0.010 ドル
Counts: Recent / Counts: All(投稿数の集計)0.005 ドル / 0.010 ドル
Trends0.010 ドル

自分のデータは安い: Owned Reads

アプリの所有者が、認証済みの自分自身のデータを読む場合は Owned Reads として 1 件 0.001 ドル(1,000 件で 1 ドル)になります。対象は、パスの {id} が認証ユーザー本人で、そのユーザーがアプリの所有者である次のようなエンドポイントです。

  • GET /2/users/{id}/tweets(自分の投稿)、/mentions(自分へのメンション)、/liked_tweets
  • /bookmarks、/followers、/following、/blocking、/muting
  • /owned_lists、/followed_lists、/list_memberships、/pinned_lists

自分のアカウントの分析ダッシュボードや管理ツールのように、扱うのが自分のデータだけなら費用を大きく抑えられます。

費用の目安(単価からの試算)

上の単価から単純計算した目安です。重複排除や単価改定で実際の請求は変わるので、正確な額は Developer Console の使用量表示で確認してください。

使い方計算目安
URL なしの投稿を月 300 回300 回 × 0.015 ドル4.5 ドル
URL 入りの投稿を月 300 回300 回 × 0.20 ドル60 ドル
検索で他人の投稿を月 1 万件取得10,000 件 × 0.005 ドル50 ドル
自分の投稿を月 1 万件取得(Owned Reads)10,000 件 × 0.001 ドル10 ドル

見落としやすいのが URL 入り投稿の単価です。通常の投稿の 10 倍以上になるため、ブログ更新の通知ボットのようにリンクを毎回付ける用途では、試算を URL 入りの単価で行う必要があります。

無料で使えるか(旧 Free プランと無料クレジット)

2026-10 時点の公式料金ページに無料プランは掲載されておらず、新規の開発者が月額 0 円で使い続ける方法は案内されていません。代わりに次の無料クレジットがあります。

特典内容主な条件
カード登録1 回限り 20 ドルアカウントで最初のカードで、過去に支払いが無いこと。クレジット・デビットカードのみ(プリペイドは対象外)
初回自動チャージの同額付与初回チャージ額と同額、上限 50 ドル過去に自動チャージが成功したことが無いこと。設定しただけでは付与されず、初回の自動チャージが実際に成功した時点で付与
xAI API クレジット還元X API クレジット購入額に応じて 0〜20%請求サイクル内の累計購入額が 200 ドル以上で 10%、500 ドル以上で 15%、1,000 ドル以上で 20%。xAI のチームと開発者アカウントの連携が必要

カード登録と自動チャージの特典は 2026-10-02 に展開が始まったもので、両方満たすと合計 70 ドルです。この無料クレジットは付与から 3 か月で失効し、購入したクレジットより先に消費されます。現金価値は無く、払い戻しや譲渡もできません。また、展開中のため、アカウントによってはまだ付与されない場合があると公式は注記しています。

旧 Basic / Pro を契約している場合

2026-02-06 の公式変更履歴では、従量課金の開始時点で「Basic と Pro は引き続き提供され、既存の契約者は従量課金に切り替えられる(opt in)」と説明されていました。一方、2026-10 時点の公式料金ページと API の紹介ページは従量課金だけを掲載し、サブスクリプションは無いと明記しています。

旧プランの契約者が従量課金へ移行する時期や移行後の初期設定は、公式ドキュメント上では確認できません。旧プランを契約している場合は、Developer Console の請求画面と開発者フォーラム(devcommunity.x.com)の告知で自分のアカウントの扱いを確認してください。なお、旧ティアの名残として、Developer Agreement の自己利用条項には「Pay-Per-Use、Basic、Pro は趣味・商用の試作・初期開発・限られた利用者向けのアプリ用で、それを超える場合は Enterprise が必要」という趣旨の記載があります。

従量課金と Enterprise の違い

項目従量課金(Pay-Per-Use)Enterprise
料金クレジット制・使った分だけ個別契約
投稿読み取りの月間上限300 万件個別設定・上限なしも可
Volume streams(Firehose 等)なしあり
Likes streamsなしあり
エンゲージメント指標(Engagement metrics)なしあり
引用投稿の作成(quote_tweet_id)不可可
レート制限標準個別・引き上げ可
サポートコミュニティフォーラム専任のアカウントマネージャー
契約期間なし契約ベース

公式ドキュメントでは、行政機関での利用は Enterprise が必要とされています。

主要エンドポイントと課金の考え方

旧ティア時代は「このエンドポイントは Basic 以上」のようにプランで使える範囲が決まっていましたが、従量課金では公式の一覧にあるエンドポイントは原則すべて利用でき、Enterprise 専用のものだけが別扱いです。代わりに、何件のリソースが返ったか・何回操作したかで費用が決まります。

エンドポイント用途課金の考え方・注意点
POST /2/tweets投稿作成1 回 0.015 ドル(URL 入りは 0.20 ドル)。返信は summoned の場合に限られ、引用投稿は Enterprise のみ
GET /2/tweets/search/recent直近 7 日間の投稿検索返ってきた投稿 1 件ごとに Posts: Read。クエリは 512 文字まで
GET /2/tweets/search/all全期間検索(2006 年まで遡れる)返ってきた投稿 1 件ごとに Posts: Read。クエリは 1,024 文字まで
GET /2/tweets/counts/recent ・ /counts/all条件に合う投稿数の集計リクエスト 1 回ごとに 0.005 ドル / 0.010 ドル
GET /2/users/:idユーザー情報返ってきたユーザー 1 件ごとに User: Read
GET /2/users/:id/tweetsユーザーの投稿タイムラインPosts: Read。本人のデータなら Owned Reads(0.001 ドル)
GET /2/spacesSpaces 情報Space: Read
GET /2/tweets/search/streamフィルタ付きストリーム配信された投稿が使用量に計上される。ルールは最大 1,000 件、接続は 1 本

2026-04-20 以降、API 経由のフォロー・いいね・引用投稿の作成はセルフサーブの全ティアから外されています。ボットで「自動フォロー」「自動いいね」をする設計は、従量課金では成り立たない点に注意してください。

認証方式の選び方

Developer Console でアプリを作ると、用途に応じて次の認証情報が発行されます。認証情報は一度しか表示されないので、その場でパスワードマネージャーなどに保存します。紛失した場合は再発行が必要で、古いものは無効になります。

認証情報用途
Bearer TokenApp-only 認証。公開データの読み取り(検索、ユーザー検索など)
Client ID / Client SecretOAuth 2.0 のユーザーコンテキスト。他のユーザーに代わって投稿・DM などを行う。必要な権限だけをスコープで要求でき、公式はこちらを推奨
API Key / Secretアプリの識別。トークン生成や OAuth 1.0a の署名に使う
Access Token / Secretアプリ所有者自身のアカウントとして操作する(OAuth 1.0a)。テストや個人のボット向け

2026-09-21 には、保存済みの OAuth 1.0a ユーザートークンを、ユーザーに再認可させずに OAuth 2.0 のアクセストークンとリフレッシュトークンに交換する仕組み(POST /2/oauth2/token のトークン交換)が追加されました。OAuth 1.0a で運用中のアプリを OAuth 2.0 に寄せる際に使えます。

最初のリクエストを送る

2026-02 から公式 SDK の XDK(Python / TypeScript)が提供されています。次は公式ドキュメントのクイックスタートと同じ、Bearer Token で直近の投稿を検索する Python の例です。

pip install xdk
from xdk import Client

client = Client(bearer_token="YOUR_BEARER_TOKEN")

for page in client.posts.search_recent(query="api", max_results=10):
    if page.data and len(page.data) > 0:
        print(page.data[0].text)
        break

TypeScript 版は npm install @xdevplatform/xdk で導入します。コミュニティ製ライブラリでは、Python の Tweepy、Node.js の node-twitter-api-v2 なども公式ページで v2 対応ライブラリとして紹介されています。

従量課金では検索 1 回でも返ってきた件数分のクレジットを消費します。開発中は max_results を小さくするか、実際の API を呼ばずに v2 エンドポイントを模擬する公式のローカルサーバー X API Playground を使うと、クレジットを使わずに動作確認できます。使用量は次のように確認できます。

curl "https://api.x.com/2/usage/tweets" \
  -H "Authorization: Bearer $BEARER_TOKEN"

レート制限と課金は別物

レート制限は「一定時間に何回呼べるか」、課金は「何件取得したか」で、公式も両者は別だと説明しています。制限内でも費用はかかり、逆に制限に達しても追加費用はかかりません。制限の窓は多くが 15 分または 24 時間で、ユーザートークンで呼べばユーザー単位、Bearer Token で呼べばアプリ単位で数えられます。

エンドポイントアプリ単位ユーザー単位
GET /2/tweets/search/recent450 回 / 15 分300 回 / 15 分
GET /2/tweets/search/all1 回 / 秒、300 回 / 15 分1 回 / 秒
POST /2/tweets10,000 回 / 24 時間100 回 / 15 分
GET /2/users/:id300 回 / 15 分900 回 / 15 分

残りの回数はレスポンスヘッダーで確認できます。上限を超えると HTTP 429 が返るので、x-rate-limit-reset(Unix 時刻)まで待ってから再試行します。

x-rate-limit-limit: 900
x-rate-limit-remaining: 847
x-rate-limit-reset: 1705420800
import time
import requests

def get_with_rate_limit(url, headers):
    while True:
        res = requests.get(url, headers=headers)
        if res.status_code != 429:
            return res
        reset = int(res.headers.get("x-rate-limit-reset", 0))
        wait = max(reset - time.time(), 60)
        time.sleep(wait)

従量課金では、同じ投稿を同じ UTC 日のうちに取り直しても追加課金はされませんが、レート制限の回数は消費します。取得結果は手元にキャッシュし、リアルタイム性が必要ならポーリングではなくフィルタ付きストリームを使うのが公式の推奨です。

v1.1 から v2 への移行

v1.1 はレガシー扱いで、新機能は v2 にしか追加されません。公式のエンドポイント対応表から、よく使うものを抜き出すと次のとおりです。

v1.1v2
POST statuses/update ・ POST statuses/destroy/:idManage Posts(POST /2/tweets ・ DELETE /2/tweets/:id)
GET statuses/show ・ GET statuses/lookupPosts lookup(GET /2/tweets)
GET statuses/user_timeline ・ mentions_timeline ・ home_timelineTimelines(ユーザー投稿・メンション・逆時系列ホーム)
GET search/tweetsRecent search / Full-archive search
GET statuses/filterFiltered stream

v2 ではレスポンスの構造も変わり、必要なフィールドを tweet.fields などで指定し、関連オブジェクトを expansions で展開して includes に受け取る形になっています。v1.1 のパーサーはそのままでは使えないので、公式のデータ形式移行ガイドを参照してください。

よくある質問

Q: 個人のボットで投稿だけしたい。いくらかかる?
A: 2026-10 時点の単価では、URL なしの投稿が 1 回 0.015 ドル、URL 入りが 1 回 0.20 ドルです。月額の固定費はありません。新規アカウントなら無料クレジット(最大 70 ドル、3 か月で失効)もあります。

Q: 以前のように無料プランで投稿できる?
A: 公式の料金ページに無料プランは無く、クレジットを購入して使う形です。公益目的のアプリ(Public Utility Apps)は無料の拡張アクセスを受けられると告知されています。

Q: 想定外の高額請求が心配
A: Developer Console で請求サイクルごとの支出上限を設定できます。上限に達するとリクエストが止まるので、開発・テスト中は必ず設定しておくのが安全です。前払い制なので、自動チャージを使わなければ購入した額以上は消費されません(残高がわずかにマイナスになる場合はあります)。

Q: 大量のデータを分析したい
A: 従量課金は投稿の読み取りが月 300 万件までです。それを超える量や、Firehose・Likes streams・エンゲージメント指標が必要な場合は Enterprise の問い合わせフォームから相談します。

Q: ボットから返信やいいねができなくなった
A: 2026-02-23 から、セルフサーブでの API 返信は元の投稿者に @メンションまたは引用された場合に限られました。いいね・フォロー・引用投稿の作成も 2026-04-20 にセルフサーブから外されています。エラーの見分け方は配下のエラー一覧の記事を参照してください。

関連

Post Share
子ページ
  1. APIにアプリケーションを登録する
  2. ツイートできないにもかかわらずエラー内容が出力されない場合
  3. エラー一覧
同階層のページ
  1. YouTube Data API (v3)
  2. Twitter API
  3. Facebook API
  4. Google Trends
  5. Google Custom Search API
  6. App Store Connect API