Enterprise
Cursor Enterprise Service Accounts for API, CLI & Cloud Agents
Enterprise service accounts are non-human identities for automating Cursor. They authenticate the Cloud Agents API and the CLI (CURSOR_API_KEY), draw usage from the team pool without taking a seat, and every team admin can see the cloud agent runs they start. Connect the Cursor GitHub app at team level first, or they can't run cloud agents on your repos.

On this page
Why use service accounts instead of a developer API key?
A developer API key ties an automation to one person, so the automation breaks when that person changes roles or leaves. A service account is a non-human identity that the whole admin team can see and manage, and it differs from a personal key in four ways:
- Survives org changes
- Automations keep running when people change roles or leave.
- Central credential control
- Admins rotate keys and suspend or archive accounts without touching anyone's personal account.
- Audit trail
- Every team admin can see the cloud agent runs a service account starts.
- No seat license
- Included with Enterprise at no extra cost; usage draws from the team pool like any member's.
Compare a service account with the specific personal key that runs your automation today, often the key of whoever built it. That key is tied to one account, so the automation inherits whatever happens to that account. Each row above follows from moving that dependency to an identity the admin team can see.
Because a service account doesn't take a seat, an automation costs only the usage it consumes. That usage lands in the same analytics and billing as everyone else's work, so its cost sits next to the team's.
This exact topic is a hands-on Lesson: Model, MCP, integration and safety controls — about 6 minutes, free to read.
Rather do it than read about it? Run 11 interactive Cursor walkthroughs in a simulated editor. Free, no account needed.
How do we create and secure a service account?
Creating one is a short dashboard flow, and the security work is in handling the key. Cursor shows the API key once, so copy it straight into your secrets manager.
- 1Go to Dashboard → Settings → API Keys → Service Accounts (Enterprise admins).
- 2Click New Service Account, enter a name (for example
linear-ticket-agent) and an optional description, then click Create. - 3Copy the API key immediately. Cursor shows it once and can't show it again.
- 4Store the key in your secrets manager. If you lose it, rotate it to get a new one.
Use the integrating system in the name (sentry-remediation, migration-runner) so audit logs and analytics attribute automation correctly. Six months on, sentry-remediation explains itself in a log line, and test-account-2 needs somebody who remembers 2026.
The show-once key is the easiest part to mishandle, and usually in a small, human way: someone creates the account during a meeting and pastes the key into the chat so it doesn't get lost. Create the account when you can paste the key straight into the secrets manager.
Rotation invalidates the old key immediately, so every consumer has to be updated in the same window. That is manageable when one account serves one workflow and painful when one account has come to serve six. Cursor recommends separate accounts for different workflows, and the rotation window is a practical reason to follow that advice. Group consumers so you can update all of them in one sitting.
To pause an automation without losing its keys, suspend the account. Its keys stop working, and resuming the account restores them with no rotation.
Archiving is permanent for the keys: it revokes every key on the account but keeps the record, so the audit history stays under Show Archived. Anything still calling those keys breaks at that moment, so find out what uses an account before you archive it.
Why do cloud agents fail without team GitHub?
Service accounts can start cloud agent runs only on repositories authorized through the team-level Cursor GitHub app. A personal GitHub connection is not enough. Admins connect it under Dashboard → Settings → Integrations: connect the Cursor GitHub app to your organization, then authorize the repositories service accounts may use. Repository access follows the permissions on that installation, so GitHub decides the allowlist.
This failure wastes time because nothing flags it at setup; it shows up when a run starts. Your personal connection covers cloud agents you start yourself, so a run you trigger by hand can succeed while the same run from a service account fails. The difference looks like a flaky pipeline when it is a missing integration.
When a service account can't see a repository, check the team's GitHub app installation before anything in the Cursor dashboard.
How do we call APIs and CI with a service account?
Pass the API key as a Bearer token in the authorization header when you call the Cloud AgentsAgents that run in a Cursor-managed virtual machine, check out the repo, do the work and open a pull request, then shut down, with no load on your laptop. Press Enter for the full definition. API. For the CLI and headless jobs, set CURSOR_API_KEY in the environment, so pipelines authenticate without a browser login.
The CLI path pays off quickest. CURSOR_API_KEY in the environment is what makes agent -p --force "..." usable in CI, in cron and anywhere a browser login is impossible, and Cursor recommends it for those cases. The same variable works locally, so you can test a pipeline prompt before you commit it to a workflow file.
Settle two things before this reaches CI: which prompt the job runs, and what happens when the change it produces is wrong. A service account run is a real change from a real identity. The review gate matters more here than in an interactive session, where somebody is already reading the diff.
Give unattended jobs a spending ceiling too.
Admins can set a limit per service account for each billing period, and new accounts start with no limit. An account that reaches its limit gets a "Service account spend limit reached" error for the rest of the period, unless an admin raises or removes the limit. Spend limits never block BugbotCursor's automated PR reviewer that posts inline findings and can push fix commits from isolated VMs. Press Enter for the full definition. service accounts, because Bugbot bills through its own subscription.
What automations fit service accounts?
Service accounts fit anything event-driven or scheduled that should run without a person in the loop. The common shape is a webhook or a cron job that starts a cloud agent run, as in these four patterns:
A new Linear or Jira issue triggers a cloud agent to implement or investigate it.
A Sentry or monitoring webhook starts a scoped remediation run.
An internal platform service runs the CLI on a cron schedule with a fixed prompt and repo list.
Give review automation its own service account so its runs have a stable identity. BugbotCursor's automated PR reviewer that posts inline findings and can push fix commits from isolated VMs. Press Enter for the full definition. service accounts bill through your Bugbot subscription.
All four start a run on an event or a schedule, with nobody watching the terminal. That suits investigation and scoped fixes, and it gets riskier the more the agent is allowed to touch. Pick the first automation for how easy its output is to review.
Frequently asked questions
Do service accounts count toward seat licenses?
No. They are included with Enterprise at no extra cost and don't consume a seat. Their usage draws from the team's usage pool, like a human member's.
Can we revoke access without deleting integrations?
Yes. Suspending a service account stops all of its API keys without revoking them, and resuming restores access. Rotating a key invalidates the old one immediately, so have every consumer ready to take the new key. Archiving revokes every key but keeps the account record for audits.
Who can see runs started by a service account?
All team admins can access the cloud agent runs that service accounts start, for oversight.
Sources & last verified
Cursor ships frequently. Last updated October 28, 2026.