How Cursor Bills
Cursor combines a monthly subscription with a depleting pool of included usage. Users pay a predictable price, and Cursor covers the variable cost of different AI models from that pool. Pricing Tiers: Cursor offers tiers from Hobby to Ultra. Cursor’s plans include usage pools charged at each model’s API price, not fixed request counts (Cursor pricing docs). The request allowances in the table are illustrative values this deconstruction models.
Model-Weighted Depletion: Each request consumes credits based on the cost of the underlying model. One subscription covers several model providers, and expensive operations draw more from the pool. Cursor doesn’t publish per-request credit costs, so the weights below are illustrative.
Credit Exhaustion and Overages: When credits run out, users move to a “Slow” queue with cheaper models instead of being cut off. Users can also enable on-demand usage to keep premium access, billed at the end of the cycle.
Enterprise: On the Enterprise plan, the whole organization shares one usage pool. Heavy users draw from the same pool as everyone else, so one person’s limit doesn’t block them while teammates have unused capacity. Cursor lists pooled usage as an Enterprise feature on its pricing page.
What Makes It Unique
Cursor’s model balances user experience against infrastructure cost in four ways:- Provider Abstraction: One subscription wraps several LLM providers, such as OpenAI and Anthropic. Cursor handles the provider pricing and API keys.
- Weighted Depletion: Powerful models cost more credits, so the price of a request tracks its cost.
- Graceful Degradation: The “Slow” queue replaces a hard cutoff. Users stay in the product, and the slower experience encourages an upgrade.
- Pooled Credits: An organization-level pool lets a team share capacity instead of managing individual limits.
Build This with Dodo Payments
You can build this model with Dodo Payments credit entitlements and usage-based billing. The steps below create the credit, the plans, the meter, the slow-queue logic, and the checkout.1
Create a Custom Unit Credit Entitlement
Go to Products → Credits and click Create Credit. This credit represents the “Premium Requests” that come with each subscription. Use these settings:
- Credit Type: Custom Unit
- Unit Name: “Premium Requests”
- Precision: 0 (a request can’t be split)
- Credit Expiry: 30 days (credits reset each billing cycle)
- Rollover: Disabled (unused requests don’t carry over)
- Allow Overage: Enabled
- Price Per Unit: $0.04 (the cost of each request after the included pool is used)
- Overage Behavior: Bill overage at billing (the overage cost is added to the next invoice)
2
Create Subscription Products
Create one subscription product per tier. Attach the same credit entitlement to each product with a different Credits issued per billing cycle value. One credit system across all tiers keeps upgrades and downgrades simple.
- Hobby: $0/month, 50 credits/cycle
- Pro: $20/month, 500 credits/cycle
- Pro+: $60/month, 5000 credits/cycle (effectively unlimited for most users)
- Ultra: $200/month, 50000 credits/cycle (effectively unlimited)
3
Create a Usage Meter Linked to Credits
Create a meter with the event name
ai.request, Sum aggregation, and credit_cost as the Over Property. On your usage-based product, toggle Bill usage in Credits, select the credit entitlement, and set Meter units per credit to 1.Your application decides the credit cost of each request from the model and the action type, then sends it in the event:4
Handle Credit Exhaustion (Slow Queue)
Subscribe to the
credit.balance_low webhook. When a customer’s balance falls below the Low Balance Threshold set on the product, move them to a slow queue in your application. This is the graceful degradation logic.5
Create Checkout
Create a checkout session when a user subscribes to a plan. Dodo Payments processes the payment, calculates tax, and grants the plan’s credits.
Accelerate with the LLM Ingestion Blueprint
The credit-weighted events above drive billing. To also record raw token consumption per provider, run the LLM Ingestion Blueprint alongside your credit system.inputTokens, outputTokens, totalTokens, and model in the event metadata. You get two layers of data: credit-weighted events for billing and raw token counts for cost and margin analysis.
Pooled Team Credits (Enterprise)
Cursor’s Enterprise plan pools usage across a team. To build this with Dodo Payments, create one subscription for the organization instead of one per user. The team’s usage then accrues to a single billing entity, which larger customers expect.Implementation Strategy
- Organization-Level Customer: Create one Dodo Payments customer for the whole organization. This customer holds the shared credit pool, and all invoices and credit grants belong to its
customer_id. - Seat-Based Billing: Charge a per-user platform fee with a seat add-on, as described in Seat-Based Billing. When the team adds a member, change the add-on quantity. Revenue grows with the number of users, and the credit pool stays separate.
- Shared Usage Tracking: Send every team member’s requests with the organization’s
customer_id, so each request depletes the same pool. To report on individual users, add auser_idto the event metadata.
Comparison with Traditional SaaS Billing
Traditional SaaS billing uses flat-rate tiers, for example $10/month for 100 units. A user who needs 101 units must often jump to a $50/month tier. This “cliff” frustrates users and drives churn. Flat tiers also ignore the different costs of different kinds of usage, which matter for AI products. A Cursor-style model built on Dodo Payments avoids these problems:- No “Cliff” Effects: Users don’t have to upgrade when they hit a limit. They can pay for overage or accept slower performance, so they keep working in the product.
- Cost Alignment: Revenue follows infrastructure cost. Users of expensive models pay more, through credits or overage, which protects your margins on high-cost features.
- Better Retention: Users who reach their limit can keep working instead of being cut off. Continued use builds loyalty and raises customer lifetime value.
Handling Model Updates and Evolution
AI providers update and replace models often, and a new model can have a different cost. Because credit costs live in your application, you can price a new model without migrating billing data. To add a more expensive model, give it a higher cost ingetCreditCost. You don’t change the credit entitlement, the meter, or existing subscriptions. Billing stays separate from application logic, so you can ship model changes without touching billing.
User Notifications and Transparency
Show users how many credits they have used so they can manage cost and trust the bill. Thecredit.balance_low webhook fires when a balance drops below the product’s Low Balance Threshold. For more checkpoints, such as 50% and 80% usage, compare the balance in credit.deducted events against the plan’s allocation.
Send these alerts by email, in-app message, or Slack. A timely warning lets users reduce usage or upgrade before they reach the slow queue, which reduces support tickets.
Security and Fraud Prevention
Credits have direct monetary value, so protect the system that spends them.- Idempotency: Give every usage event a unique
event_id. Dodo Payments usesevent_idto detect duplicates, so a network retry with the same ID doesn’t charge the user twice. - Rate Limiting: Limit request rates in your application so one user can’t exhaust their credits, or your provider budget, too quickly.
- Monitoring: Watch usage for anomalies such as account sharing or automated abuse. The meter dashboard’s Customers view shows per-customer usage totals.
Best Practices for Credit Systems
Keep these practices in mind when you design a credit system:- Keep it Simple: Users should understand what a request costs and how many credits they have left.
- Provide Value: Price requests so users feel the credits are worth it. A cost that feels too high for a small action reads as nickel-and-diming.
- Be Transparent: Show the current credit balance and usage history. Customers can also see both in the Customer Portal.
- Automate Everything: Use Dodo Payments webhooks and APIs to automate billing tasks and remove manual work.
Key Dodo Features Used
Credit-Based Billing
Manage depleting credit pools and overages with custom units.
Subscriptions
Set up recurring billing for different tiers with integrated credits.
Usage-Based Billing
Track events and bill based on consumption.
Event Ingestion
Send high-volume usage data to Dodo Payments.
Webhooks
React to credit balance changes and automate user tiering.
LLM Ingestion Blueprint
Automatic token tracking across multiple LLM providers.