Connect to Cursor
Overview
The Cursor integration ingests cost and usage data from your Cursor account and makes it available in MegaBill alongside other cost centers (such as AWS and GCP). This allows you to analyze Cursor spend alongside the rest of your infrastructure costs.
Finout connects to Cursor using the Admin API and retrieves read-only data. The integration does not perform any actions in your Cursor account.
Once connected, you can break down Cursor costs by key dimensions, including User, Model, Usage type (seat vs. usage), and Day.
This helps you understand who is driving usage, which models are being used, and how costs evolve over time.
Connect to Cursor
Prerequisite: You must be a Cursor team admin to generate an Admin API key.
1. Create an API Key in Cursor
In Cursor, navigate and click on Team Settings. You are brought to the Team Settings page.

Scroll down to the Advanced section.

Click Add. A new API Key row appears.

Enter an API Key Name and click Save. The 'API Key Created' pop-up appears.

Copy the API Key, save it for later, and click Done.
2. Integrate Cursor with Finout
In Finout, navigate to Settings > Cost Centers.

Under Cursor, click Connect Now. You are taken to the Connect Cursor step.

Fill in the following fields:
Cost Center Name
Admin API Key (The key saved in the previous step)
Enter a Monthly Seat Price in USD
Click Complete Setup. Your Cost Center is created. You will receive an email notification once your data has been retrieved and your Cost Center is set up.
Understanding Cursor Cost Data in Finout
Cursor pricing and usage differ from those of typical cloud providers. Understanding these differences will help you interpret your data correctly in Finout.
Usage-based vs. seat-based costs
Cursor charges in two parts:
Seat cost - a fixed monthly price per active user. In Finout, this is an estimate based on the number of active members and the monthly seat price you provide during setup.
Usage-based cost - on-demand API costs driven by model usage. These are sourced directly from Cursor's Admin API.
A Charge Type dimension distinguishes between the two across all Finout views and breakdowns.
Seat-based costs are available from your integration date onward
Cursor's API does not expose historical seat membership data, so seat costs prior to the day you connected Finout cannot be retrieved.
On-demand (usage-based) costs are unaffected and are backfilled historically.
Why Finout's numbers won't match your Cursor invoice exactly
Finout reports costs by full calendar day, which matches what you see in Cursor's Admin Console under the usage page.
Cursor invoices work differently: rather than closing at midnight, Cursor charges for usage whenever your organization's cumulative spend hits an internal threshold, then resets the counter. Since that threshold can be crossed at any point during the day, invoice lines won't align with calendar dates. The totals will be close but won't match to the cent.
When verifying Finout's numbers, use the Admin Console usage page - not the invoice.
Per-user quota reset behavior
Each user's monthly quota resets based on their individual join date, not on the first of the month. This means users will have different quota cycles within the same calendar month, and usage patterns may appear uneven or staggered across users. This is expected behavior and does not indicate a data issue.
FAQs
Why do users show different usage patterns within the same month? Each user's quota resets on their individual join date. Usage is therefore distributed across different time windows per user - this is expected and does not indicate a data issue.
Why doesn't my total match my Cursor invoice exactly? Finout reports by full calendar day, while Cursor invoices are cut whenever cumulative spend hits an internal billing threshold - not at midnight. The numbers will be close but won't align to the cent. For verification, use the Admin Console usage page instead of the invoice.
Why does a team member who left still appear in Finout? Finout displays users based on data returned from Cursor's Admin API. If a user still appears, they are included in the usage or membership data for the selected time range. Historical usage for that user will continue to appear in Finout.
How do I update my seat price after a contract change? Reconnect the Cursor integration or update its settings and enter the new seat price. Finout will use the updated value to calculate seat costs going forward.
I'm on an enterprise Cursor plan - will the integration work for me? The current integration is built around Team plan billing logic. If your enterprise plan is billed primarily by usage, or you don't need seat cost tracking, the integration works as-is. If your contract includes a committed seat count that differs from your active user count, seat cost reporting may not reflect your contracted minimum. Contact your Finout CSM if this applies to you.
Last updated
Was this helpful?