🫘

Cursor Proプランの料金について調べました。

に公開

仕事でCursorを利用しており、個人向けのProプラン(月額$20)を契約しています。
Cursorには、「このままの調子で使っていると1ヶ月以内に上限超えるよ〜」というアラートがあり、
使いすぎに気付けるようになっているのですが、
今回アラートが出ることなく、突如上限まで使い切ってしまいました!

これを期に料金について理解し、何が起こったのかを明らかにしておきたいと思います。

Cursor Proプラン

Pricing | Cursor Docs に詳細の記載がありますので、最新の情報はそちらでご確認ください。

  • API エージェント利用額 $20
    • APIの利用料金は、モデルごとに異なる
    • Autoは無制限
  • コード補完 無制限

Cursor公式ページには、だいたいどのくらい利用できるかも記載があり、
私が普段よく利用するClaude Code Sonnet 4.5は、225件リクエストできるらしいです。

当社の利用データに基づくと、中央値のユーザー に対する上限は概ね次のとおりです:
Pro:Sonnet 4.5 リクエスト約 225 件、Gemini リクエスト約 550 件、または GPT 5 リクエスト約 500 件

料金計算

AIエージェントの利用料金は、トークンによって決まります。
トークンとは、AIモデルが理解する文章の区切りの単位のようなものです。
人間であれば、I am a bearという文章があったときに、I,am,a,bearと4単語で認識します。AIモデルも、トークンという単位に分割して、理解しています。どの単位でトークンに区切られるのかは、AIモデルや言語によって異なります。
OpenAI社は、Tokenizer - OpenAI APIというツールを公開しており、文章を入力すると、各モデルでどのようにトークン分けするのかを確認することができます。

料金計算されるトークンは、以下の2種類に分けられます。

入力トークン AIモデルへの入力プロンプト。コンテキストのキャッシュも含む。
出力トークン AIモデルの出力内容。

各モデルに関して、トークン量に応じた料金が決められています。
出力トークンの方が入力トークンの料金より圧倒的に高いです。
読むよりも書く方が大変だからです。ブログにしても、読むのは楽ですが、実際書くのは大変ですね。

以下はChatGPTの料金です。Outputの料金が、Inputの料金の4~5倍あります。

Text tokens
Prices per 1M tokens.
Standard

Model Input Cached input Output
gpt-5.1 $1.25 $0.125 $10.00
gpt-5 $1.25 $0.125 $10.00
gpt-4.1 $2.00 $0.50 $8.00

確認方法

Cursorにログインし、Billing & Invoicesから利用したAPIの料金を確認できます。

また、Usageから使用したトークン量も確認できます。12/1のトークン量が普段と比較するとすごいことになっています、、。

いきなり上限突破した原因

出力トークンの量が多かったことが原因と思われます。
今回都合があり、Figmaを元に書き出したHTMLファイルを修正する作業をしていました。(プラグインを使ったのか、書き出した方法は不明)
Figmaから書き出してもらったHTMLファイルが、要素の位置をすべてabsoluteで指定していたので、
コード量が多く、1つ修正したときに他要素の位置も全てずれる場合に、他要素すべてのabsoluteの指定を変更しなくてはならなかったため、コード生成量が膨大になってしまいました。

確認してみたらstyleだけで、200行40000字ありました、、、。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Example</title>
<link href="https://fonts.googleapis.com/css?family=Montserrat&display=swap" rel="stylesheet" />
<style>
    /* 共通リセット */
    * { box-sizing: border-box; }
    body { font-size: 14px; margin: 0; padding: 0; background: rgba(29,41,55,1); }
    .name { color: #fff; }
    body, html {
        background-color: rgba(29,41,55,1);
    }

    /* --- PC版 CSS (Base) --- */
    /* 画像パスを ../images/ から images/ に置換しています */
    
    .v3224_2576 {
        width: 100%;
        max-width: 1200px;
        height: 8500px;
        background: rgba(29,41,55,1);
        opacity: 1;
        position: relative; /* absoluteから変更してフローさせる */
        top: 0px;
        left: 0px;
        overflow: hidden;
        margin: 0 auto;
    }
    
    /* PC版の各要素スタイル */
    .v3225_2705 { width: 783px; color: rgb(194, 204, 82); position: absolute; top: 434px; left: 205px; font-family: Montserrat; font-weight: Bold; font-size: 24px; opacity: 1; text-align: center; }
    .v3225_2709 { width: 783px; color: rgb(194, 204, 82); position: absolute; top: 719px; left: 205px; font-family: Montserrat; font-weight: Bold; font-size: 20px; opacity: 1; text-align: center; }
    .v3225_2724 { width: 783px; color: rgb(194, 204, 82); position: absolute; top: 1540px; left: 189px; font-family: Montserrat; font-weight: Bold; font-size: 20px; opacity: 1; text-align: center; }
    .v3227_2858 { width: 783px; color: rgb(194, 204, 82); position: absolute; top: 3307px; left: 189px; font-family: Montserrat; font-weight: Bold; font-size: 20px; opacity: 1; text-align: center; }
    .v3227_2865 { width: 783px; color: rgb(194, 204, 82); position: absolute; top: 3974px; left: 189px; font-family: Montserrat; font-weight: Bold; font-size: 20px; opacity: 1; text-align: center; }
    .v3233_2913 { width: 783px; color: rgb(194, 204, 82); position: absolute; top: 7666px; left: 189px; font-family: Montserrat; font-weight: Bold; font-size: 20px; opacity: 1; text-align: center; }
    .v3226_2728 { width: 783px; color: rgb(194, 204, 82); position: absolute; top: 1608px; left: 181px; font-family: Montserrat; font-weight: Bold; font-size: 16px; opacity: 1; text-align: left; }
    .v3234_2918 { width: 794px; color: rgb(194, 204, 82); position: absolute; top: 8178px; left: 174px; font-family: Montserrat; font-weight: Bold; font-size: 20px; opacity: 1; text-align: center; }
    .v3225_2706 { width: 783px; color: rgba(255,255,255,1); position: absolute; top: 515px; left: 205px; font-family: Montserrat; font-weight: Medium; font-size: 20px; opacity: 1; text-align: center; }
    .v3225_2707 { width: 783px; color: rgba(255,255,255,1); position: absolute; top: 594px; left: 205px; font-family: Montserrat; font-weight: Bold; font-size: 14px; opacity: 1; text-align: center; }
    .v3225_2710 { width: 783px; color: rgba(255,255,255,1); position: absolute; top: 759px; left: 205px; font-family: Montserrat; font-weight: Bold; font-size: 14px; opacity: 1; text-align: center; }
    .v3225_2712 { width: 783px; color: rgba(255,255,255,1); position: absolute; top: 822px; left: 205px; font-family: Montserrat; font-weight: Bold; font-size: 14px; opacity: 1; text-align: center; }
    .v3225_2726 { width: 637px; color: rgba(255,255,255,1); position: absolute; top: 1574px; left: 254px; font-family: Montserrat; font-weight: Medium; font-size: 14px; opacity: 1; text-align: center; }
    .v3225_2714 { width: 783px; color: rgba(255,255,255,1); position: absolute; top: 910px; left: 205px; font-family: Montserrat; font-weight: Bold; font-size: 14px; opacity: 1; text-align: center; }
    .v3225_2711 { width: 637px; color: rgba(255,255,255,1); position: absolute; top: 782px; left: 278px; font-family: Montserrat; font-weight: Medium; font-size: 14px; opacity: 1; text-align: center; }
    .v3227_2859 { width: 799px; color: rgba(255,255,255,1); position: absolute; top: 3341px; left: 185px; font-family: Montserrat; font-weight: Medium; font-size: 14px; opacity: 1; text-align: center; }
... ↑このような指定が全要素、PC版、スマホ版と続く。。 ....

計画利用のために

難しい作業は、高性能のモデルに依頼し、単純作業は、Auto/安めのモデルにするなど、使い分けする事が必要だなと感じました。今回は、HTMLファイルの修正だったので、性能の低いモデルで十分だったと思います。
調べてみると、Cursor Stats - Visual Studio MarketplaceというリアルタイムでCursorの使用状況を確認できる拡張機能もあるみたいなので、使ってみようかなと思います!

まとめ

  • ご利用は計画的に

参考

Discussion