Skip to main content

Overview

nOps connects to Cursor with a Team API key, one per Cursor team. The key powers AI seat tracking — per-user period-to-date spend and, on Cursor Enterprise, per-user spend limits — once you enable Cursor on a seat tracking project. Keys are validated before they are stored and are never shown again in the nOps UI. If your organization has several Cursor teams, connect each one. nOps reports on all of them together.
A single Team API key covers everything nOps reads for that team — members, daily usage, per-event usage, and spend. It authenticates with HTTP Basic auth (the key as the username, no password), so there is no separate secret to supply.
Use a Team API key, not an Organization API key. The two are different credentials: Organization API keys call /organizations/* routes and carry a single scope chosen from a dropdown, and they cannot call the /teams/* routes nOps relies on for members, usage, and spend. A Cursor organization is an aggregation layer above teams — per-user spend limits live on the team, which is why nOps asks for a team key even on Enterprise.

Prerequisites

  • A Cursor Teams or Enterprise plan with admin access to each team you want to connect
  • Permission to create Team API keys in Cursor
  • nOps organization administrator access to connect or manage the integration
Members can view integration status on Account Settings and Integrations, but only admins (and owners) can connect, re-validate, or disconnect. Non-admins see an Admin Only indicator on the Cursor card.

What nOps can do, by plan

Cursor exposes per-user spend limits only on Enterprise, so what nOps can do depends on the plan of the team you connect. Read-only seats are still tracked, allocated, budgeted, and forecast in nOps. Their limits show as Not reported rather than as unlimited, because Cursor does not tell nOps a number.

Create a Team API key

  1. Sign in to Cursor with an account that has team admin privileges.
  2. Open the Cursor dashboard and go to API Keys.
  3. Create a key for the team you want to connect:
    • Read-only is enough for seat spend tracking.
    • Choose Admin scope only if you want nOps to change per-user spend limits on a Cursor Enterprise team.
  4. Copy the key immediately — it starts with crsr_ and Cursor shows it only once.
Repeat this for each Cursor team you plan to connect.
Treat the Team API key like a password. Do not share it in chat, email, or source control.

Connect in nOps

Only nOps administrators can complete these steps.

Where to open Cursor

  • To connect for the first time — go to Settings → Integrations (the main Account Settings page shows a preview of available apps; use View all to open the full catalog if Cursor is not in the preview) and click the Cursor card.
  • To manage existing connections — go to Account Settings → Account Status → Connected apps and click the Cursor chip.

Add a team

The Cursor modal lists the teams you have already connected and lets you add another. For each team:
  1. Team name — a label so you can tell your connections apart, for example Platform team. One connection per Cursor team.
  2. Cursor plan — choose Team or Enterprise. This is what tells nOps whether per-user spend limits exist at all for these seats, so pick the plan this team is actually on.
  3. Organization ID (Enterprise only) — the Cursor organization ID from your Enterprise dashboard, starting with org_. This is metadata that ties the connection back to your Cursor org; it is not an Organization API key, and nOps still uses the Team API key for all reads and writes.
  4. Manage seat limits from nOps (Enterprise only) — leave this off for read-only tracking. Turn it on to let nOps change per-user spend limits, which requires an Admin-scoped Team API key.
  5. Team API key — paste the crsr_ key for this team.
  6. Click Connect.
nOps validates the key against Cursor (GET /teams/members) before saving it. On success the team appears in the list, the integrations catalog card shows Integrated, and the card’s connection count reflects how many teams you have connected.

Add the rest of your teams

Repeat Add a team for every Cursor team. Each connection stores its own key, plan, and limit-management setting, so a read-only Teams-plan connection can sit alongside an Enterprise connection that nOps writes to.

Use in AI seat tracking

After at least one Cursor team is connected, enable Cursor on a seat tracking project:
  1. In the sidebar, open AI.
  2. Add Cursor to the project’s providers under Project settings → Provider sync.
  3. Matched users show period-to-date spend and, where available, seat limits in the seat table. nOps matches seats to nOps users by email, because the Cursor Admin API itself joins members to spend on email.
Seats whose limit nOps can change render an editable limit; everything else renders read-only, so you never get an editable field that fails on save. Removing Cursor from a project stops its seats from being tracked there — it does not disconnect the org integration. See Set up AI seat tracking for the full workflow.

Someone who belongs to two connected teams

If the same email appears in more than one connected Cursor team, nOps sums that person’s spend across those teams so reporting and budgets stay complete. Their limit becomes read-only, because nOps cannot tell which team’s limit you meant to change. To manage such a seat’s limit from nOps, change it in Cursor, or keep the person in a single connected team.

Manage your connections

Administrators can open the Cursor card or chip to work on any connected team:
  • Re-validate — checks the stored key against Cursor again without asking you to re-enter it.
  • Edit — change the label, plan, Organization ID, or limit-management setting. Leave the API key field blank to keep the current key, or paste a new key to rotate it.
  • Disconnect — removes that team’s stored key and its connection. Other connected teams are unaffected.
If validation fails, for example because a key was revoked in Cursor, the status changes to Action required. An administrator should edit that connection with a new key, or use Re-validate after fixing the key in Cursor.

What nOps stores

Per connected team, nOps saves the integration status and configuration — the label, plan tier, Organization ID if you supplied one, whether limit management is on, and when the team was connected and last validated — so your team can see whether each connection is active. Each Team API key is stored securely and is never shown again in the nOps UI after you connect.

Troubleshooting

Invalid API key

  • Confirm you copied the full key, starting with crsr_, with no leading or trailing spaces.
  • Ensure it is a Team API key from Cursor dashboard → API Keys, not an Organization API key and not a personal or user key. An Organization API key cannot call the team routes nOps uses and will fail validation.
  • Verify the Cursor team still has API access enabled.

Seat limits are read-only when you expected to edit them

Work through these in order:
  • The connection’s Cursor plan is set to Team. Per-user spend limits do not exist on that plan. If the team is actually on Enterprise, edit the connection and correct the plan.
  • Manage seat limits from nOps is off. Edit the connection and turn it on.
  • The seat’s email appears in two connected teams, so it is intentionally read-only. See Someone who belongs to two connected teams.
  • Cursor refused a limit write. nOps trusts your Enterprise and limit-management settings up front, then records what Cursor actually allows the first time it tries a real write. If Cursor rejects it as unauthorized — most often because the key is Read-only rather than Admin — nOps records that and treats the connection’s limits as read-only from then on. Rotate the connection to an Admin-scoped Team API key to restore write access.

Action required

  • The stored key for that team may have been revoked or expired in Cursor. Create a new Team API key and edit the connection, or use Re-validate after updating the key in Cursor.
  • Only nOps administrators can resolve this status.

Admin Only on the card

  • You are signed in as a member, not an administrator. Ask an org admin to connect or manage Cursor, or request the administrator role in nOps.

No account found for a seat

  • nOps matches nOps users to Cursor members by email. Confirm emails match, or show unmatched users in the seat table.
  • If the person is in a Cursor team you have not connected yet, add that team.

A seat’s limit shows “Not reported”

Cursor returned no limit for that seat. This is expected on a Cursor Teams plan, which has no per-user limits. It does not mean the seat is uncapped.

Rate limited

Cursor limits Admin API requests per team. If you see a rate-limit error, wait a minute and try again. Connecting more teams does not consume a single shared budget — each team’s key is rate limited by Cursor separately.

Still stuck?

Contact your nOps administrator or nOps support with the time of the error (not the API key itself).

Reference