本文へスキップ

Twitter(X)APIキーの取得方法

Twitter(X)のAPIキーを取得するには、Xアカウントでconsole.x.comにサインインし、開発者契約に同意してアプリを作成、キーとBearerトークンを保存したうえで、クレジットを購入します。読み取りは1投稿あたり$0.005です。

要点: コンソールはアプリの作成時に、APIキーとシークレット、Bearerトークン、OAuth認証情報を発行し、それぞれを1度しか表示しません。クレジットを購入するまで、すべてのリクエストがHTTP 402 CreditsDepleted を返します。公開されているXのデータをキー1つで読み取るなら、Sorsa APIが使えます。ツイートは1,000件あたり$0.014から、100リクエストは無料でカードも不要です。

ApiKey: YOUR_API_KEY
キー1つ、OAuth不要
料金
1,000ツイートあたり$0.014から

#公式X APIキーの取得手順をステップ別に解説

公式X APIキーは、XがAPIの認証情報をすべて発行するサイト、X Developer Console(console.x.com)で取得します。手順は6ステップです。最初の4つは、XのGetting Accessガイド(新しいタブで開きます)に載っています。ステップ5のクレジットはXの料金ページにあり、ステップ6のリクエストはクレジットがないと失敗します。

開発者アカウントの開設とアプリの作成は無料です。費用がかかるのは読み取りで、レスポンスが返す投稿1件につき$0.005、プロフィールまたはフォロワー1件につき$0.010が、事前にチャージした残高から差し引かれます。各単価はX APIの料金の解説にまとめています。

  1. console.x.comにサインインします。 アプリを所有させたいXアカウントを使います。開発者専用のログインはありません。

  2. 開発者契約に同意します。 Xの開発者契約とポリシーを読んで同意し、何を作るのか、どのデータを読み取るのかを平易な言葉で記入します。この手順の審査期間をXは公表していません。

  3. アプリを作成します。 New Appをクリックし、名前、説明、ユースケースを入力します。アプリができた時点で、コンソールが認証情報を生成します。

  4. 認証情報を保存します。 APIキーとシークレット、Bearerトークンをコピーします。アプリが投稿したり、ユーザーに代わって操作したりする場合は、アクセストークンとシークレット、またはOAuth 2.0のクライアントIDとシークレットもコピーします。どの値も表示されるのは1度だけです。

  5. クレジットを購入します。 コンソールでカードを追加し、クレジットを購入します。テスト中は利用上限を設定しておきましょう。自動チャージは、ジョブを絶対に止められなくなってからで十分です。

  6. テストリクエストを送ります。 Authorization ヘッダーにBearerトークンを入れて、公開アカウントを検索します。id、name、username を含むJSONオブジェクトが返れば、キーは有効です。このルックアップはユーザー1件の読み取りの料金、$0.010がかかります。

    ターミナル
    curl "https://api.x.com/2/users/by/username/XDevelopers" \
      -H "Authorization: Bearer $X_BEARER_TOKEN"
    
    01 ログイン先: console.x.com アプリの所有者に なるXアカウントで 02 開発者契約に 同意 作るものを 自分の言葉で説明 03 New Appで アプリを作成 名前、説明、用途。 認証情報はすぐ表示 04 認証情報を 保存 キー、シークレット、Bearer: どれも表示は1回のみ 紛失したら再生成 05 プリペイドの クレジットを購入 1投稿の読み取り$0.005。 残高ゼロだと全呼び出しが 402 CreditsDepletedを返す 06 テスト リクエストを送信 ヘッダーにBearerトークン。 古いアプリは 403 client-not-enrolled
    console.x.comから動作する公式キーまでの6ステップ。Getting Accessガイドが触れていないのが、ステップ5のクレジット購入です。

公開されている投稿やプロフィールを読み取るだけなら、コードが送る認証情報はBearerトークンだけです。アクセストークンとOAuth 2.0のペアが必要になるのは、アプリが投稿したり、他のユーザーに代わって操作したりするときで、どれが何にあたるかは後述の認証情報の表で確認できます。

#約3分でSorsa APIキーを取得

公開されているXのデータを読み取るなら、Twitter(X)API兼スクレイピングツールであるSorsa APIが使えます。キー1つで、アプリも認証情報もクレジット残高も不要になり、ツイートは1,000件あたり$0.014からです。公式X APIの250分の1にあたります。Xアカウントは一切関与しないため、アカウントにリスクはなく、キーは無料アカウントも含め、どのプランでも毎秒20リクエストで動作します。

  1. サインアップします。 GoogleまたはメールアドレスでSorsa APIにサインアップします。カードもXアカウントも審査も不要で、アカウントには有効期限のない100リクエストが付与されます。

  2. キーをコピーします。 ダッシュボードの概要ページにAPIキーが表示されます。サーバーの環境変数、たとえば SORSA_API_KEY に保存します。

  3. キーを無料で確認します。 ApiKey ヘッダーにキーを入れて、GET /key-usage-info(新しいタブで開きます) を呼び出します。この呼び出しはリクエストにカウントされないので、キーの確認に費用はかかりません。

    ターミナル
    curl "https://api.sorsa.io/v3/key-usage-info" \
      -H "ApiKey: YOUR_API_KEY"
    
    レスポンス200 OK
    {
      "key_requests": 100,
      "remaining_requests": 100,
      "total_requests": 0
    }
    

remaining_requests は、キーで使える残りのリクエスト数です。有料プランでは、レスポンスに valid_until も含まれます。これは現在のリクエスト残高の有効期限で、100リクエストの無料分には期限がありません。ここから先は、Sorsa APIの全45エンドポイントが同じヘッダーを使います。GET /info(新しいタブで開きます) はプロフィールを返し、検索、タイムライン、フォロワー、100ツイート単位のバッチも同じ方法で動きます。

並べて比べると、Sorsa APIキーは必要な部品が少なく、確認も無料で、ツイートの取得は公式料金のごく一部で済みます。

必要なものSorsa APIキー公式X APIキー
サインアップ方法メールまたはGoogleXアカウント
キーが発行されるまでサインアップのみ開発者契約、用途の説明、アプリ
保管するものAPIキー1つ最大7つの値:キーとシークレット、Bearerトークン、アクセストークンとシークレット、クライアントIDとシークレット
毎回のリクエストのヘッダーApiKey: <key>Authorization: Bearer <token>
最初の読み取りの前に100リクエスト無料、カード不要事前チャージのクレジット、なければHTTP 402
キーの動作確認GET /key-usage-info、無料課金される読み取り(プロフィールなら$0.010など)
リクエストレート全プランで毎秒20リクエストエンドポイントごとに別々の15分ウィンドウ
1,000ツイート$0.014から$5.00
  • サインアップ方法

    Sorsa APIキー
    メールまたはGoogle
    公式X APIキー
    Xアカウント
  • キーが発行されるまで

    Sorsa APIキー
    サインアップのみ
    公式X APIキー
    開発者契約、用途の説明、アプリ
  • 保管するもの

    Sorsa APIキー
    APIキー1つ
    公式X APIキー
    最大7つの値:キーとシークレット、Bearerトークン、アクセストークンとシークレット、クライアントIDとシークレット
  • 毎回のリクエストのヘッダー

    Sorsa APIキー
    ApiKey: <key>
    公式X APIキー
    Authorization: Bearer <token>
  • 最初の読み取りの前に

    Sorsa APIキー
    100リクエスト無料、カード不要
    公式X APIキー
    事前チャージのクレジット、なければHTTP 402
  • キーの動作確認

    Sorsa APIキー
    GET /key-usage-info、無料
    公式X APIキー
    課金される読み取り(プロフィールなら$0.010など)
  • リクエストレート

    Sorsa APIキー
    全プランで毎秒20リクエスト
    公式X APIキー
    エンドポイントごとに別々の15分ウィンドウ
  • 1,000ツイート

    Sorsa APIキー
    $0.014から
    公式X APIキー
    $5.00

コードでは、キーを環境変数から読み込みます。最初の試行なら YOUR_API_KEY の部分に直接貼り付けても構いません。ステータスが200以外なら処理を止めましょう。JSONの message に原因が書かれています。

import os
import requests

key = os.environ.get("SORSA_API_KEY", "YOUR_API_KEY")
r = requests.get("https://api.sorsa.io/v3/key-usage-info",
                 headers={"ApiKey": key}, timeout=30)
if r.status_code != 200:
    raise SystemExit(f"{r.status_code}: {r.json()['message']}")
print("requests left:", r.json()["remaining_requests"])

Xのコンソール自体を避けたくてこのページに来たのであれば、開発者アカウントなしでTwitter APIを使う方法のガイドで、ツイート、検索、フォロワーリストといった最初の読み取りを順に確認できます。

#Xの認証情報の種類と役割

公式X APIは4種類の認証情報を発行しますが、公開データの読み取りに必要なのはBearerトークンだけです。コンシューマーキーとシークレットとも呼ばれるAPIキーとシークレットは、アプリを識別するもので、アプリのユーザー名とパスワードのように機能します。XのAPI Key and Secretのページ(新しいタブで開きます)も、そう説明しています。そのほかの認証情報は、これらから作られるか、アプリを使う個人のためのものです。

公開投稿をそれだけで読めるのはBearerトークンだけです。投稿しないスクリプトなら、残り3行は無視して構いません。

認証情報内容用途単独で公開投稿を読めるか
APIキーとシークレット(コンシューマーキーとシークレット)アプリのIDOAuth 1.0aリクエストの署名、Bearerトークンの発行読めない
Bearerトークンアプリ単位のOAuth 2.0トークン公開データの読み取り:投稿、プロフィール、検索読める
アクセストークンとシークレットアプリを所有するアカウント用のOAuth 1.0aペアそのアカウントとしての投稿・操作読める(そのアカウントとして)
OAuth 2.0のクライアントIDとシークレットログインフローにおけるアプリのID他のユーザーにXでログインしてもらい、アプリ経由で操作させる読めない(ユーザートークンを生成する)
  • APIキーとシークレット(コンシューマーキーとシークレット)

    内容
    アプリのID
    用途
    OAuth 1.0aリクエストの署名、Bearerトークンの発行
    単独で公開投稿を読めるか
    読めない
  • Bearerトークン

    内容
    アプリ単位のOAuth 2.0トークン
    用途
    公開データの読み取り:投稿、プロフィール、検索
    単独で公開投稿を読めるか
    読める
  • アクセストークンとシークレット

    内容
    アプリを所有するアカウント用のOAuth 1.0aペア
    用途
    そのアカウントとしての投稿・操作
    単独で公開投稿を読めるか
    読める(そのアカウントとして)
  • OAuth 2.0のクライアントIDとシークレット

    内容
    ログインフローにおけるアプリのID
    用途
    他のユーザーにXでログインしてもらい、アプリ経由で操作させる
    単独で公開投稿を読めるか
    読めない(ユーザートークンを生成する)

紛失したBearerトークンは、キーとシークレットから再発行できます。XのBearerトークンのガイド(新しいタブで開きます)では、これらをBasic認証のペアとして oauth2/token に送ります。返ってきたJSONの access_token フィールドがBearerトークンです。

ターミナル
curl -u "$X_API_KEY:$X_API_SECRET" \
  --data "grant_type=client_credentials" \
  "https://api.x.com/oauth2/token"

権限はトークンではなくアプリに紐づきます。Read権限のアプリは投稿できません。ユーザー認証の設定でRead and writeに切り替え、アクセストークンとシークレットを再生成してください。トークンは作成時の権限を保持するためです。切り替え前に作ったトークンは、最初の投稿で403が返る原因としてよくあります。

実行したい処理を選ぶと、使うべき認証情報、ヘッダー、最初のリクエストが表示されます。

コードで何をしたいですか?

公開投稿とプロフィールの読み取り

Sorsa API

認証情報
APIキー1つ
取得場所
サインアップ直後のダッシュボード
ヘッダー
ApiKey: <key>
最初のリクエスト
GET /v3/key-usage-info 無料
1,000ツイート
$0.014から

公式X API

認証情報
ベアラートークン
取得場所
アプリの「Keys and tokens」タブ
ヘッダー
Authorization: Bearer <token>
最初のリクエスト
GET /2/users/by/username/… $0.010
1,000ツイート
$5.00

自分のアカウントとして投稿

公式X API

認証情報
アクセストークンとシークレット(APIキーとシークレットで署名)
取得場所
アプリを「Read and write」に設定した後の「Keys and tokens」
ヘッダー
Authorization: OAuth … OAuth 1.0aの署名付き
最初のリクエスト
POST /2/tweets
投稿1件ごと
$0.015

リンク付きの投稿は$0.20です。Sorsa APIは設計上読み取り専用で、投稿は一切行わないため、あなたのXアカウントは関与しません。

他の人がXでサインインできるようにする

公式X API

認証情報
OAuth 2.0のクライアントIDとシークレット
取得場所
アプリのユーザー認証設定(コールバックURL付き)
ヘッダー
Authorization: Bearer <user token> ユーザーごと
最初のリクエスト
サインインの流れ:PKCE付き認証コードフロー
読み取りと投稿
公式料金

サインインした各ユーザーが専用のトークンを持ち、そのトークンでの読み取りや投稿はすべてあなたのクレジットに課金されます。

1つの用途に1つの認証情報:取得場所、使用するヘッダー、最初のリクエストの料金を示します。

#X-API-Key、Bearer、ApiKey:どのヘッダーを使うか

公式X APIがトークンを読み取るのは Authorization: Bearer ヘッダーだけで、Sorsa APIがキーを読み取るのは ApiKey ヘッダーだけです。どちらも X-API-Key は読み取りません。これは他の多くのAPIがキーに使うヘッダー名です。「X APIキー」と読めてしまうため混同されがちですが、Xとは無関係です。APIゲートウェイや多くのSaaSで使われており、そこにキーを入れても、Xのサーバーにはキーなしのリクエストとして届きます。

Sorsa API GET /v3/key-usage-info Host: api.sorsa.io ApiKey: YOUR_API_KEY 無料のキー確認、カウントされない 公式X API GET /2/users/by/username/XDevelopers Host: api.x.com Authorization: Bearer AAAA… ユーザー読み取りとして課金、$0.010 X-API-Keyとして送信 X-API-Key: YOUR_API_KEY 汎用的なヘッダー名: どちらのAPIも読まない Sorsa APIの応答 403 missing key in request header 公式X APIの応答 401 Unauthorized
Sorsa APIはApiKeyからキーを、公式X APIはAuthorizationからBearerトークンを読み取り、どちらもX-API-Keyは読み取りません。

2026年11月2日に、架空のキーを使って両方のAPIに同じリクエストを送りました。下の各回答が、実際に返ってきたものです。

送ったものSorsa APIの回答公式X APIの回答
キーなし403 missing key in request header401 Unauthorized
正しいヘッダーに架空のキー401 invalid api key401 Unauthorized
X-API-Key ヘッダーにキー403 missing key in request header401 Unauthorized
Authorization: Bearer としてキー403 missing key in request header401 Unauthorized
  • キーなし

    Sorsa APIの回答
    403 missing key in request header
    公式X APIの回答
    401 Unauthorized
  • 正しいヘッダーに架空のキー

    Sorsa APIの回答
    401 invalid api key
    公式X APIの回答
    401 Unauthorized
  • X-API-Key ヘッダーにキー

    Sorsa APIの回答
    403 missing key in request header
    公式X APIの回答
    401 Unauthorized
  • Authorization: Bearer としてキー

    Sorsa APIの回答
    403 missing key in request header
    公式X APIの回答
    401 Unauthorized

つまり、公式X APIの401は、トークンが間違っている、ない、または送り方が違うことを示すだけで、どれなのかは分かりません。Sorsa APIは両者を区別します。401 invalid api key は値が間違っていること、403 missing key in request header はヘッダー名が間違っていることを意味します。

#新しいキーが失敗するとき:401、402、403、429

新しい公式X APIキーが失敗する原因は4つあり、それぞれ固有のステータスコードを返します。401はトークンの誤りまたは再生成、402はクレジット残高の不足、403は権限の不足またはプロジェクトに属さないアプリ、429はレート制限ウィンドウの使い切りです。同じ番号でもSorsa APIでは意味が異なり、メッセージを見れば対処法が分かります。

ステータスSorsa API公式X API
401キーが間違っているか削除された(invalid api key)トークンが間違っている、ない、または再生成された
402使用しないCreditsDepleted:アカウントにクレジットがない
403ApiKey ヘッダーにキーがないか、リクエストを使い切ったアプリに権限がないか、プロジェクトに属していない(client-not-enrolled)
4291秒間に20リクエストを超えたそのエンドポイントの15分ウィンドウを使い切った
  • 401

    Sorsa API
    キーが間違っているか削除された(invalid api key)
    公式X API
    トークンが間違っている、ない、または再生成された
  • 402

    Sorsa API
    使用しない
    公式X API
    CreditsDepleted:アカウントにクレジットがない
  • 403

    Sorsa API
    ApiKey ヘッダーにキーがないか、リクエストを使い切った
    公式X API
    アプリに権限がないか、プロジェクトに属していない(client-not-enrolled)
  • 429

    Sorsa API
    1秒間に20リクエストを超えた
    公式X API
    そのエンドポイントの15分ウィンドウを使い切った

402は、XのGetting Accessガイドがまったく触れていないエラーです。レスポンスの本文にはタイトル CreditsDepleted と、「Your enrolled account does not have any credits to fulfill this request.」という1文が含まれます。これはXの開発者フォーラム(新しいタブで開きます)で開発者が投稿しており、クレジットを購入すれば解消します。残高がわずかにマイナスになることもあり、その場合は、チャージで不足分が埋まるまでリクエストは止まったままです。

403 client-not-enrolled は、キーが「Projectに紐づけられた」開発者アプリのものでなければならないことを示します。古い単独のアプリで発生し、コンソールでアプリをプロジェクトに紐づけるか、そこで新しいアプリを作成すれば解消します。公式X APIのレート制限はエンドポイントごとに異なり、X APIのレート制限のガイドに一覧があります。Sorsa APIの429は1秒以内に解消し、失敗したリクエストには課金されないため、再試行に費用はかかりません。

#キーは秘密にし、漏えいしたら交換する

APIキーはパスワードと同じように扱います。サーバーの環境変数かシークレットマネージャーに保管し、フロントエンドのコードやGitリポジトリには置かないでください。X_BEARER_TOKEN や SORSA_API_KEY を記した .env ファイルは、最初のコミットの前に .gitignore に追加しましょう。ボットが公開リポジトリからキーを探し回っているためです。

キーが漏れると、どちらのAPIでも損失が出ます。公式X APIでは、Xのベストプラクティスのページ(新しいタブで開きます)が、盗まれたキーによって有料のアクセス枠を使い果たされたり、アプリが停止されたりする恐れがあると警告しています。Sorsa APIでは、リクエストが消費されます。

  • 公式X API: アプリのKeys and tokensタブを開き、漏えいした認証情報の横にあるRegenerateをクリックします。古い値は直ちに使えなくなるため、その値を使っていたサーバーはすべて更新してください。Bearerトークンは oauth2/invalidate_token で無効化して、再発行することもできます。
  • Sorsa API: ダッシュボードのAPIキーのページで、新しいキーを作成し、漏えいしたキーを削除します。古いキーは直ちに停止し、401を返します。

Sorsa APIキーはサーバー側のコードにだけ置いてください。ブラウザから直接APIを呼び出すことはできず、フロントエンドのJavaScriptに入れたキーは、ページを開いた人なら誰でも読めてしまいます。

知っておきたいこと

Xは各認証情報を、生成した瞬間に1度だけ表示します。そのままパスワードマネージャーかシークレットストアに貼り付けてください。先にページを閉じてしまうと、再生成するしかなく、古い値を持つスクリプトはすべて動かなくなります。

#今すぐデータを読めるキーから始める

公式X APIキーは、最初のレスポンスを得るまでに6ステップとクレジット残高が必要で、読み取る投稿は1件ごとに$0.005かかります。公開されているXのデータの読み取りには、Sorsa APIキーが向いています。サインアップ1回、ヘッダー1つで、ツイートは1,000件あたり$0.014からです。キーをコピーして無料で確認し、支払う前に100リクエスト、最大1万ツイート分を試してください。投稿も行いたい場合は、書き込み用に小さな公式アプリを残し、読み取りはすべてSorsa APIで行います。

#よくある質問

X APIキーとBearerトークンはどこで確認できますか?

console.x.comのX Developer Consoleで、サイドメニューのAppsを開き、アプリを選んでKeys and tokensタブへ進みます。タブにはAPIキーとシークレット、Bearerトークン、アクセストークンが並び、それぞれにRegenerateボタンがあります。Xはシークレットを生成時にしか表示しないため、紛失した値は再表示できず、交換するしかありません。

Twitter APIキーは無料ですか?

公式X APIキーの作成は無料ですが、利用は無料ではありません。公式X APIに新規開発者向けの無料枠はなく、読み取りはすべて事前チャージのクレジットから引かれます。投稿は1件$0.005、プロフィールは1件$0.010です。Sorsa APIキーには、カード不要の100リクエスト、最大1万ツイート分が付いています。両者を詳しく比べたTwitter APIは無料かの記事もご覧ください。

ツイートの読み取りには、どのTwitter APIキーを使えばよいですか?

Sorsa APIキーを使ってください。取得は約3分で、アプリ、OAuth、Xアカウントのいずれも不要です。1つの ApiKey ヘッダーが全45エンドポイントで使え、どのプランも毎秒20リクエストで動作します。ツイートは1,000件あたり$0.014からと、公式X APIの$5.00の250分の1で、最初の100リクエストは無料です。Sorsa APIは2022年からXのデータを提供し、累計60億リクエスト以上を処理しています。

X APIキーの取得にはどのくらいかかりますか?

Xは審査期間を公表していません。Getting Accessガイドには、サインイン、開発者契約への同意、アプリの作成という3ステップが載っており、認証情報はアプリの作成時にコンソールが生成します。ただし、クレジットを購入するまでキーでは何も読み取れないため、支払いの手順も見込んでおきましょう。Sorsa APIキーは、サインアップから最初のレスポンスまで約3分です。

ツイートを投稿するには、どのキーが必要ですか?

投稿に必要なのはBearerトークンではなくユーザートークンです。Read and writeに設定したアプリのアクセストークンとシークレット、または書き込み権限つきのOAuth 2.0ユーザートークンを使います。Xの料金は、投稿が1件$0.015、リンクつき投稿が1件$0.20です。Sorsa APIは設計上、読み取り専用なので、投稿は行わず、Xアカウントにも触れません。ボットが読み取りと公開の両方を行う場合は、2つを組み合わせてください。

#検証方法

2026年11月2日に、docs.x.comのアクセス取得、APIキーとシークレット、Bearerトークン、開発者アプリ、料金、エラー、キーの安全管理に関するページと、402および403のセットアップエラーを扱うX開発者フォーラムのスレッドを確認しました。同じ日に、キーなし、架空のキー、誤ったヘッダーに入れたキーで両方のAPIにリクエストを送っています。返ってきたコードとメッセージはヘッダーの表のとおりです。Sorsa APIのリクエストは最新のAPIリファレンスに従っており、key-usageのレスポンスは、実際に取得した呼び出し結果ではなく、新規アカウントの値を示しています。

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

変更点
  • 全面的に書き直しました。公式の手順を今日時点のdocs.x.comで確認し、クレジット購入の手順と402エラーを追加。認証情報、ヘッダー(自前のリクエスト検証つき)、セットアップ時のエラーを扱う新セクション、無料でキーを確認できるSorsa APIキーの取得手順、2つの図と認証情報の選択ツールも加えました。
  • 初公開。