My firm is on the enterprise plan. We would like to be able to view and limit both usage usage and spending for Service accounts.
It is my understanding that Service Accounts are subject to the Team Spend Limit for On-Demand Usage, but in practice this does not seem to be the case. Using minor tests, no On-Demand usage was accrued, so the very small Team Limit we set, $1, was not hit.
As I investigated, I was not able to find any Usage or Spending stats for the Service Account on the Cursor dashboard (I am an admin and can see all user stats). I was able to pull stats from https://api.cursor.com/teams/filtered-usage-events, showing that our Service Account did in fact have activity and associated costs.
Please let me know if my assumptions are incorrect, and if there might be more useful approaches to viewing and limiting usage usage and spending for Service accounts. It is very important that we be able to set a hard cap on Service Account spending
Your understanding is mostly right. Service account usage draws from your Enterprise team’s included usage pool first, which is the same pool your team members use. The $1 Team Spend Limit controls on-demand usage, which begins after the included pool is exhausted. Since your tests stayed within included usage, the limit did not trigger.
Once usage moves to on-demand, the Team Spend Limit does apply to service account usage. It does not limit how much of the included pool an individual service account can consume.
For visibility, open Dashboard > Usage, use the User filter, and search for the service account name. It will have a “(Service Account)” label. Service accounts do not appear under Members or in per-member spending views.
The filtered usage events endpoint you found is the right programmatic option. It supports filtering by service account ID and includes the service account name and ID on each event.
A hard spend cap for an individual service account is not currently available. We’ve let the team know this is important. In the meantime, you can stop its usage immediately by rotating its API key, which invalidates the old key, or by archiving the service account to revoke all of its keys.