本文へスキップ

Twitterの「レート制限超過」の原因と解消方法

「Rate limit exceeded」は、アカウント、そこにつないだアプリ、またはあなたのコードが短時間に多くのリクエストを送ったため、Xが1つの操作を一時停止したという意味です。X APIの枠は15分以内、アカウントの上限は数時間から1日でリセットされます。

要点: 画面の更新や再試行は、そのたびに数えられるのでやめて、枠が過ぎるのを待ちます。コードでは x-rate-limit-reset の時刻まで待機してください。ただし、種類が usage-capped の429は、Xの次の課金サイクルまで解除されません。15分の枠に縛られずにコードからXのデータを読むなら、Sorsa APIが使えます。制限は毎秒20リクエストの1つだけで、まずは100回分の無料リクエストで試せます。

エンドポイント
POST /search-tweets
毎秒20リクエスト
料金
1,000件あたり$0.07から

#Xの「Rate limit exceeded」の意味

「Rate limit exceeded」は、上限を超えたことを知らせるXのメッセージです。レート制限とは、一定の時間枠のなかで、アカウント、アプリ、プログラムが1つの操作を行える回数の上限です。Xは、閲覧、投稿、フォロー、メッセージ送信、そしてAPIの全エンドポイントごとに、この上限を設けています。

どの上限に達したかは、メッセージが出た場所で分かります。Xのアプリやx.comなら、あなた自身のアカウントの制限です。連携ツールやxcancelのような閲覧サイトなら、そのツールのXへのアクセスの制限です。自分のコードではHTTP 429として返ってきます。レスポンス全体とリセット時刻の読み方は、X APIのエラーコードのガイドで解説しています。

どこで表示されましたか?

11件のメッセージ

  • スクロール中に「Rate limit exceeded」と表示される

    制限
    お使いのアカウントに対するXの閲覧制限です。Xは2023年7月以降、この数値を公表していません。
    期間
    Xは時間を示していません
    対処
    ポストの読み込みをやめて、後でもう一度開いてください。更新するたびにポストが追加で読み込まれます。
  • "Sorry, you are rate limited. Please wait a few moments then try again."

    制限
    ログインやメールアドレスの変更(1時間に4回まで)、ユーザー名の変更など、繰り返した操作に対する制限です。
    期間
    メールアドレスの変更は1時間
    対処
    再試行をやめ、時間を置いてから1回だけ試してください。
  • ポストやリプライが送信できない

    制限
    未認証アカウントは1日50ポストと200リプライまでで、30分単位の枠に分割されます。
    期間
    数時間
    対処
    まとめて投稿せず、1日に分散して投稿してください。
  • これ以上フォローできない

    制限
    1日400フォローまでです。フォロー数が5,000アカウントを超えると、フォロワー数との比率による制限も適用されます。
    期間
    約1日
    対処
    その日はフォローを控えてください。
  • ダイレクトメッセージが送信できない

    制限
    ダイレクトメッセージの送信は1日500件までです。
    期間
    約1日
    対処
    1日の上限が解除されるのを待ってください。
  • 連携したアプリやツールに「Rate limit exceeded」と表示される

    制限
    アカウントに連携したすべてのサードパーティアプリが、1時間ごとの共通のAPI上限を消費します。
    期間
    最長1時間
    対処
    使っていないアプリの連携を解除してください: 設定とプライバシー、セキュリティとアカウントアクセス、アプリとセッション。
  • サードパーティの閲覧サイトにレート制限と表示される

    制限
    そのサイトは全訪問者の分をまとめてXから読み取っており、Xの制限に達しています。お使いのアカウントは関係ありません。
    期間
    サイトによる
    対処
    後でもう一度お試しください。
  • Webサイトに埋め込んだXのタイムラインが読み込まれない

    制限
    Xの埋め込みサービスが、そのサイトに429を返しています。
    期間
    Xは時間を示していません
    対処
    お客様側でできることはありません。後で再読み込みしてください。
  • 429 コード88「Rate limit exceeded」付き

    制限
    1つのエンドポイントのウィンドウで、アプリごとまたはユーザーごとに適用されます。
    期間
    リセット時刻まで: 大半のエンドポイントは15分、一部は24時間
    対処
    リセット時刻まで待機し、バックオフを付けて再試行してください。
  • 429 type: usage-capped

    制限
    従量課金の上限である、課金サイクルあたり3Mポストの読み取りに達しています。
    期間
    次の課金サイクルまで
    対処
    再試行をやめてください。リセットヘッダーを待っても解消しません。サイクルの更新を待つか、Enterpriseに申し込んでください。
  • リセット後もすべてのリクエストがブロックされる

    制限
    支出上限に達したか、クレジット残高がゼロになっています。
    期間
    次のサイクルまで、またはチャージするまで
    対処
    Developer Consoleで支出上限を引き上げるか、クレジットを追加してください。

出典: Xの制限に関するページとAPIリファレンス(2026年11月2日確認)。

メッセージが表示された場所を選ぶと、背後にある制限、続く期間、対処法が表示されます。

Xは、制限の目的をシステムへの負荷の軽減とダウンタイムの削減だと説明しています。サイトの利用が集中する時間帯には、全員に対して制限が引き下げられることもあるとしています。同じ使い方でも、空いている日は問題なく、混んでいる日は制限にかかることがあります。

#Twitterのレート制限はどのくらい続くか

Xのレート制限の多くは、15分から1日のあいだで解除されます。待ち時間は、どの上限に達したかで変わります。それぞれが独自の時計で動いているためです。公式X APIのエンドポイントの枠は、ほとんどが15分以内にリセットされます。投稿のアカウント上限は数時間、メッセージとフォローの上限は1日かかります。

待ち時間 短い順 制限の種類 1秒 Sorsa API: 1秒に20リクエスト超 次の秒から同じキーが再び使える 15分 公式X APIのほとんどのエンドポイントのウィンドウ x-rate-limit-reset gives the exact time 最長1時間 アカウント連携のサードパーティアプリ全体 Xの1時間あたりAPI上限を共有 数時間 投稿・返信: 未認証は1日50件・200件 30分刻みで集計 1日 DM 500件またはフォロー400件/日 24時間ウィンドウのX APIエンドポイント 1課金サイクル X API利用上限: 月300万投稿の読み取り 次のサイクルまで待つ429
Xの制限はそれぞれ独自の時計で動いていて、15分のAPI枠から月ごとの課金サイクルまで幅があります。
  • 投稿とリプライは数時間で戻ります。Xは1日の上限を30分ごとの区切りで数えていて、数時間後にもう一度試すよう案内します。
  • ダイレクトメッセージとフォローは、その日の制限が過ぎると戻ります。
  • サードパーティアプリは1時間単位の制限を共有しているため、1時間以内に再び使えるようになります。
  • 公式X APIの枠は、x-rate-limit-reset ヘッダーのUnix時間に再開します。大半のエンドポイントは15分、一部は24時間です。
  • 閲覧の制限には、公表された継続時間がありません。

閲覧の制限は、スクロール中に多くの人が出会うものです。同時に、Xが制限のページ(新しいタブで開きます)に載せたことのない、唯一の制限でもあります。2023年7月、Xは閲覧を、認証済みアカウントは1日6,000投稿、未認証は600投稿、新規アカウントは300投稿に制限し、一時的な措置だとしました。ロイターが報じた(新しいタブで開きます)とおりです。その後、現行の数値は公表されていません。数値を載せているページは推測で書いています。

知っておきたいこと

Xの制限ページには、未認証アカウントの上限として1日50投稿・200リプライと書かれていますが、さらに下の段落には1日2,400件の更新という記述がまだ残っています。現行のルールは箇条書きのほうです。Xは2026年5月に上限を引き下げました。PCMagが報じています(新しいタブで開きます)。2,400件と書いているガイドは、古い記述をそのまま写しています。

#Xアプリで「レート制限超過」を解消する方法

Xのアプリやx.comで「レート制限超過」を解消するには、制限にかかった操作をやめ、Xを閉じて、上記の時間だけ待ちます。アカウントの上限は、こちら側の操作で早めに解除することはできません。

  1. 更新をやめます。 再読み込みのたびにXへ投稿を要求することになり、同じ制限に数えられます。

  2. どの操作かを特定します。 スクロール、投稿、フォロー、メッセージ送信には、それぞれ別の上限があります。待ち時間は上の判別表で確認できます。

  3. 使っていないアプリの連携を解除します。 「設定とプライバシー」から「セキュリティとアカウントアクセス」、「アプリとセッション」の順に開き、不要なツールの接続を取り消します。これらはすべて1時間単位のAPI制限を共有しています。

  4. 自分だけの問題かを確認します。 Xは、サイトの負荷が高いときに全アカウントの制限を引き下げ、ステータスサイトで案内します。友人にも同じメッセージが出ているなら、待つのはXの側の事情です。

  5. 一度だけ試します。 待ち時間が過ぎたら、操作を1回だけ行い、通ることを確認してから続けてください。

ログアウトして入り直す、別のブラウザーや端末に切り替える、別のネットワークに移るといったことでは、アカウントの上限はリセットされません。Xは、アカウントの操作をすべての端末とAPIを合わせて数えているため、新しいセッションでも同じカウンターが適用されます。

#コードで X APIの429エラーを解消する方法

公式X APIの429は、2種類の制限のどちらかを意味します。数分で解除されるのは片方だけなので、待機する前にエラーの種類を確認してください。Xのエラーリファレンス(新しいタブで開きます)では、同じステータスの背後にある、レート制限と利用上限の両方が挙げられています。

ウィンドウ制限 エンドポイントがリクエストを使い切った HTTP/1.1 429 Too Many Requests x-rate-limit-remaining: 0 x-rate-limit-reset: 1793621700 {"errors": [{"code": 88, "message": "Rate limit exceeded"}]} 解除 リセット時刻に、ほとんどのエンドポイントで 15分以内 利用上限 この課金サイクルで投稿の読み取り300万件を消費 HTTP/1.1 429 Too Many Requests "type": ".../problems/usage-capped" 月間上限を示すXのエラータイプ リセットヘッダーでは解除されない: 再試行しても429が増えるだけ 解除 次の課金サイクル、または Enterprise契約で解除
1つの429ステータスが2種類の制限を表します。コード88は数分、usage-cappedは次の課金サイクルまで待ちます。

一般的なのは枠の制限です。各エンドポイントは、15分ごと(一部は24時間ごと)に決まった回数のリクエストを許可していて、Bearerトークンならアプリ単位、OAuthトークンならユーザー単位で数えます。すべてのレスポンスに付く3つのヘッダーで、現在の状況が分かります。x-rate-limit-limit、x-rate-limit-remaining、そして秒単位のUnix時間である x-rate-limit-reset です。remaining が0になると、その時刻まで、すべての呼び出しがエラーコード88つきの429を返します。エンドポイントごとの数値は、X APIのレート制限のガイドにまとめています。

利用上限は月単位です。従量課金のアクセスは、課金サイクルあたり300万件の投稿読み取りで止まります。それを超えると、サイクルが終わるかEnterprise契約に移るまで、すべての読み取りが種類 usage-capped の429を返します。リセット時刻に再試行しても、試行回数を消費するだけです。開発者コンソールで設定した支出上限も、次のサイクルまで同じようにリクエストを止めます。クレジット残高が0のときは、クレジットを追加するまで止まります。

次のハンドラーは、枠の制限ならリセットまで待機し、利用上限なら停止します。

Python
import time
import requests

def get_x(url, headers, params=None):
    while True:
        r = requests.get(url, headers=headers, params=params, timeout=30)
        if r.status_code != 429:
            r.raise_for_status()
            return r.json()
        if "usage-capped" in r.text:
            raise RuntimeError("X usage cap: wait for the next billing cycle")
        reset = int(r.headers.get("x-rate-limit-reset", time.time() + 60))
        time.sleep(max(reset - time.time(), 1) + 1)

呼び出しを枠の全体に分散させると、次の429を避けられます。たとえば直近検索はアプリあたり15分に450リクエストまで許可されるので、2秒に1回のペースなら上限に達しません。メッセージが、リクエストが自動化されたものに見えると言っている場合は、レート制限ではありません。その原因は別にあり、Xが「自動化されたリクエスト」と判定する理由で解説しています。

#ほとんど何もしていないのにレート制限される場合

数回の操作でレート制限を受けることがあるのは、カウントに自分の操作以外が含まれるからです。バックグラウンドで動くアプリ、共有サービス、混雑した日にXが引き下げる制限が該当します。

  • 連携アプリ。 スケジューラー、分析ツール、フォロワー追跡ツールは、あなたのアカウントの1時間単位のAPI制限を共有して消費します。寝ているあいだに合算で使い切ることがあります。
  • 共有の閲覧サイト。 xcancelやNitterのインスタンスは、訪問者全員に代わってXを読み取っています。そのサイトがXの制限にかかると、開いた全員に「レート制限」と表示されます。あなた自身のアカウントは関係ありません。
  • 埋め込みタイムライン。 ウェブサイトに埋め込まれたXのタイムラインは、Xの埋め込みサービス経由で読み込まれます。このサービスが、サイトに対して独自の429を返すことがあります。
  • 混雑した日。 利用が集中すると、Xは全員の制限を引き下げることがあります。別の日なら通る通常の使い方でも、制限にかかります。

どれにも当てはまらず、メッセージが出ないまま投稿が人に届かなくなっただけなら、原因はレート制限ではありません。下のシャドウバンについてのFAQを確認してください。

#Sorsa APIなら毎秒20リクエストでXのデータを読み取れる

コードから公開Xデータを読み取るなら、Twitter(X)API兼スクレイピングツールであるSorsa APIは、エンドポイントごとの枠ではなく、1つの制限だけです。全プランで、APIキーあたり毎秒20リクエスト(新しいタブで開きます)です。ここで429が返るのは、1秒間に20回を超える呼び出しがあったという意味で、次の1秒には再び使えます。

必要なのは、ApiKey ヘッダーに入れるAPIキー1つだけです。Xの開発者アカウントもOAuthも不要で、Xのログイン情報を求めることもないため、Xアカウントが危険にさらされることはありません。セットアップの手順は、開発者アカウントなしのTwitter APIのガイドで説明しています。Sorsa APIが読み取るのは公開データだけで、投稿はしません。投稿が必要なら、公式X APIと組み合わせてください。

並べて比べると、Sorsa APIは毎秒リセットされ、300万件の読み取り上限もありません。公式X APIはエンドポイントごとにリセットされ、月間300万件の投稿読み取りで止まります。

Sorsa API公式X API
レート制限キーあたり毎秒20リクエスト(全プラン)エンドポイント単位、アプリ単位、ユーザー単位。多くは15分ごと
429の意味1秒間に20リクエスト超枠が尽きた、または利用上限に達した
再試行の時期次の1秒x-rate-limit-reset の時刻、または次の課金サイクル
月間の上限プランのリクエスト数(超過分は追加リクエストで対応)300万件の投稿読み取り、その先はEnterpriseで月約$42K〜
1,000投稿あたりの料金IDで取得なら$0.014から、検索なら$0.07から$5.00
アクセスAPIキー1つ開発者アカウントとOAuth
  • レート制限

    Sorsa API
    キーあたり毎秒20リクエスト(全プラン)
    公式X API
    エンドポイント単位、アプリ単位、ユーザー単位。多くは15分ごと
  • 429の意味

    Sorsa API
    1秒間に20リクエスト超
    公式X API
    枠が尽きた、または利用上限に達した
  • 再試行の時期

    Sorsa API
    次の1秒
    公式X API
    x-rate-limit-reset の時刻、または次の課金サイクル
  • 月間の上限

    Sorsa API
    プランのリクエスト数(超過分は追加リクエストで対応)
    公式X API
    300万件の投稿読み取り、その先はEnterpriseで月約$42K〜
  • 1,000投稿あたりの料金

    Sorsa API
    IDで取得なら$0.014から、検索なら$0.07から
    公式X API
    $5.00
  • アクセス

    Sorsa API
    APIキー1つ
    公式X API
    開発者アカウントとOAuth

2026年11月22日から、公式X APIは各投稿に付く投稿者にも1ユーザーあたり$0.010を課金します(Xのお知らせ(新しいタブで開きます))。Sorsa APIでは、すべてのツイートが同じリクエストの中に投稿者のプロフィール全体を含みます。Xの料金表の残りは、X APIの料金の解説にあります。

  1. キーを取得します。 登録して、ダッシュボードからAPIキーをコピーします。最初の100リクエストは無料です。

  2. 1回のリクエストで検索します。 POST /search-tweets(新しいタブで開きます) は、Xの任意の検索クエリを受け取り、1ページあたり約20件の投稿を返します。次のページ用に next_cursor も付きます。

    Terminal
    curl -X POST "https://api.sorsa.io/v3/search-tweets" \
      -H "ApiKey: YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"query": "from:ratelimit_fix_demo", "order": "latest"}'
    
    Response200 OK
    {
      "tweets": [
        {
          "id": "2117203385470271488",
          "full_text": "Paced reads, no 15-minute windows.",
          "created_at": "2026-11-02T10:41:07Z",
          "lang": "en",
          "likes_count": 12,
          "retweet_count": 3,
          "reply_count": 1,
          "view_count": 1840,
          "user": {
            "id": "1592041833471827968",
            "username": "ratelimit_fix_demo",
            "display_name": "Rate Limit Demo",
            "followers_count": 920
          }
        }
      ],
      "next_cursor": "DAACCgACG1x7rWyAJxAKAAMbXHutbH_YUwgABAAAAAEAAA"
    }
    
  3. 全速でページをたどります。 next_cursor が空で返ってくるまで送り返し、呼び出しの間に20分の1秒の間隔を置き、429が返ったら1秒待ちます。

    import time
    import requests
    
    URL = "https://api.sorsa.io/v3/search-tweets"
    HEADERS = {"ApiKey": "YOUR_API_KEY"}
    
    def search_all(query, max_pages=100):
        body, tweets, pages = {"query": query, "order": "latest"}, [], 0
        while pages < max_pages:
            r = requests.post(URL, json=body, headers=HEADERS, timeout=30)
            if r.status_code == 429:  # over 20 requests in one second
                time.sleep(1)
                continue
            r.raise_for_status()  # 403: the key's requests ran out
            page = r.json()
            tweets += page.get("tweets", [])
            pages += 1
            if not page.get("next_cursor"):
                break
            body["next_cursor"] = page["next_cursor"]
            time.sleep(0.05)  # stays under 20 requests per second
        return tweets
    
    print(len(search_all("from:ratelimit_fix_demo")))
    
  4. 残高を確認します。 GET /key-usage-info(新しいタブで開きます) は、残りリクエスト数とその更新日を返し、この確認自体は無料です。403が返ったら、キーのリクエストを使い切っています。

#レート制限の枠を待つのをやめる

Xの「Rate limit exceeded」は、時間がたてば自然に解除されます。公式X APIの枠の大半は15分、アカウントの上限は数時間から1日、300万件の投稿読み取り上限は次の課金サイクルです。コードでXのデータを読んでいて何度もこの制限にかかるなら、読み取りをSorsa APIに移してください。全プラン、キーあたり毎秒20リクエストという1つの制限だけで、投稿は1,000件あたり$0.014からです。今日から使える100回分の無料リクエストで試せます。

#よくある質問

「Rate limit exceeded」はシャドウバンと同じですか?

いいえ。レート制限はエラーを表示し、枠が過ぎるまで1つの操作を止めます。シャドウバンは投稿を見られる相手を制限し、メッセージは一切表示されません。Xの制限ページには、各レート制限と解除までの流れが記載されています。エラーが出ないまま投稿が人に届かなくなった場合は、Twitterのシャドウバンとはを読んで、アカウントを確認してください。

Twitterのレート制限を回避できますか?

設定、ブラウザー、拡張機能、ネットワークのどれを変えても、Xのアカウント上限は解除できません。Xは、すべての端末とAPIを合わせて操作を数えるからです。対処は待つことだけです。アカウントの上限は数時間から1日でリセットされ、各上限はXの制限ページに載っています。

X Premiumでレート制限はなくなりますか?

X Premiumは一部の制限を緩和しますが、なくしはしません。Xの制限ページでは、50投稿・200リプライの上限は未認証アカウントに適用されるため、認証済みのPremiumアカウントはその数値に縛られません。2023年には、認証済みアカウントの閲覧上限が10倍高く設定されました。1日500件のダイレクトメッセージと400件のフォロー、そして公式X APIの枠は、どの階層でも変わりません。

X APIのエラーコード88は何を意味しますか?

エラーコード88は、公式X APIの「Rate limit exceeded」です。1つのエンドポイントの枠で、あなたのアプリまたはユーザーの残りリクエストがなくなると、HTTP 429とともに返ります。秒単位のUnix時間である x-rate-limit-reset ヘッダーを読み、その時刻まで待ってください。大半の枠は15分以内にリセットされます。それより早く再試行しても、また429が返るだけで何も変わりません。

レート制限エラーなしでTwitterデータを読み取るには、どのAPIを使えばよいですか?

コードからTwitter/Xのデータを読み取るなら、Sorsa APIを使ってください。全プランでAPIキーあたり毎秒20リクエストという制限が1つあるだけで、15分の枠も月間300万件の投稿読み取り上限もありません。投稿は1,000件あたり$0.014からで、公式X APIの$5.00を大きく下回ります。キー1つで使え、開発者アカウントは不要です。最初の100リクエストは無料です。

#検証の方法

2026年11月2日に、ブラウザーでXの制限ページを読み、レート制限、レスポンスコード、従量課金の料金に関するXの開発者向けリファレンスと、45のエンドポイントを持つ公開中のSorsa APIリファレンスを確認しました。このページのリクエストとコードはそれらのリファレンスに沿っています。レスポンスはデモアカウントで作った抜粋例で、実際に記録した呼び出しではありません。

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

変更点
  • 全面的に書き直しました。Xの各レート制限メッセージの判別表、制限ごとの待ち時間、公式X APIの2種類の429、Xの制限ページにある現行のアカウント上限、毎秒20リクエストに合わせた読み取りループを追加しています。2026-07-11: 初回公開。