# 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

{% 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.<br>

   <figure><img src="/files/TMxnMjZIgshXd5hXfsB4" 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
4. 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.

{% 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 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 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.


---

# Agent Instructions: 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:

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

The question should be specific, self-contained, and written in natural language.
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.
