> For the complete documentation index, see [llms.txt](https://docs.finout.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.finout.io/billing-integrations/ai-providers/connect-to-cursor.md).

# 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, Kind (e.g. included in business for pre-paid tokens or usage-based for on-demand tokens), and Day.
* This helps you understand who is driving usage, which models are being used, and how costs evolve over time.

## Connect to Cursor

{% hint style="info" %}
**Prerequisite:** You must be a **Cursor team admin** to generate an Admin API key.
{% endhint %}

### 1. Create an API Key in Cursor

1. In Cursor, navigate and click on **Team Settings**.\
   You are brought to the **Team Settings** page.<br>

   <figure><img src="/files/cWzHTQXlPeF9ntwtQ3j8" alt=""><figcaption></figcaption></figure>
2. Scroll down to the **Advanced section**.<br>

   <figure><img src="/files/VvuIJ5kwvmczFanPJ6sv" alt=""><figcaption></figcaption></figure>
3. Click **Add**.\
   A new **API Key** row appears. Set its scope to **Read-Only** and its expiration to **Never Expires**<br>

   <figure><img src="/files/WZJIDzU13ms49GLJgnbK" alt=""><figcaption></figcaption></figure>
4. Enter an **API Key Name** and click **Save**.\
   The '**API Key Created**' pop-up appears.<br>

   <figure><img src="/files/niSUS4awmFFaIIPr5tb4" alt=""><figcaption></figcaption></figure>
5. **Copy** the API Key, save it for later, and click **Done**.

### 2. Integrate Cursor with Finout

1. In Finout, navigate to **Settings > Cost Centers**.<br>

   <figure><img src="/files/7Li7qGoP7Jz6fvpAB7TD" alt=""><figcaption></figcaption></figure>
2. Under Cursor, click **Connect Now**.\
   You are taken to the **Connect Cursor** step.<br>

   <div align="left"><figure><img src="/files/ae4s5IYCnn8b0FoqkVZ4" alt=""><figcaption></figcaption></figure></div>
3. Fill in the following fields:
   1. Cost Center Name
   2. Admin API Key (the key saved in the previous step)
   3. Enter a Monthly Seat Price in USD; enter $0 if your Cursor plan does not charge per seat
4. Click **Complete Setup**.\
   Your Cost Center is created - data should be available on Finout within 24 hours.

## 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.

#### Cost is not broken down by token type

Cursor's API reports token usage split by type (*input*, *output*, *cache read* and *cache write*), but returns a **single aggregated cost** across all types combined.

As a result, Finout reports token counts broken down by type under usage, but cannot attribute cost to a specific token type.

#### Usage-based vs. seat-based costs

Cursor charges in two parts:

* **Included in business** - costs already pre-paid in your plan, such as tokens from a shared organization pool or usage included in a paid seat

{% hint style="info" %}
**To exclude 'included in business' costs from your data, contact your CSM**

These costs are pre-paid and already factored into your seat price. On seat-based plans, including them alongside seat costs counts the same spend twice. To report only on-demand usage, contact your CSM.
{% endhint %}

* **Usage-based cost** - on-demand API costs driven by model usage. These are sourced directly from Cursor's Admin API.
* **Seat cost** - a fixed monthly price per active user. In Finout, this is an estimate based on the number of billable seats in your team and the monthly seat price you provide during setup. This price is set manually and does not sync with your actual Cursor contract - if your contract changes, update it yourself in the cost center settings.

{% hint style="info" %}
**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.
{% endhint %}

#### Why Finout's usage-based 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.

{% hint style="info" %}
**When verifying Finout's numbers, use the Admin Console usage page - not the invoice.**
{% endhint %}

#### 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 is Finout reporting more spend than my Cursor invoice on a seat-based plan?** Cursor's API reports usage already included in your seat price as a separate "included in business" cost line. By default, Finout reports all cost lines returned by the API, including these prepaid costs - which can make your total appear higher than your invoice.

To exclude "included in business" costs and report only on-demand usage billed on top of your plan, contact your CSM.

**Why is Finout reporting lower cost than Cursor's dashboard, when looking at only charged kinds?** When filtering out free, errored and aborted events, Cursor's dashboard may report a marginally higher cost than Finout.

This is because some of these events are actually partially charged for helpful model work, which is reflected in Cursor's dashboard but not in their API.

**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?** Edit your Cursor cost center and enter the new seat price. If your new contract has no per-seat charge, enter $0.

This takes effect going forward only - seat costs already calculated for past dates are not recalculated. This setting is independent of "included in business" cost reporting (see below); changing one does not affect the other.

**If I change how 'included in business' costs are reported, does that affect past data?** The "included in business" cost-reporting setting (changed via your CSM) is not time-bound: if it's toggled and a historical backfill is run, past dates are affected too, not just dates going forward.

**Can I have Finout apply different pricing logic to different date ranges (e.g. seat-based through June, usage-based from July)?** No. Both the seat price and "included in business" settings apply account-wide from the point they're changed - there's no way to define time-bound rules per contract period.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.finout.io/billing-integrations/ai-providers/connect-to-cursor.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
