PLANS / create-and-delete-organization-groups-via-org-api

Plans

Create and delete organization groups with the Organization API

Create a manual Organization Group with POST https://api.cursor.com/organizations/groups, and delete an empty one with DELETE https://api.cursor.com/organizations/groups/:groupId. Official reference: Organization API → Create / Delete Organization Group. Dashboard context: Organization Groups.

Authenticate with an Organization API key (Basic auth, key as username, empty password). Writes need members:* (or admin:*). Rate limit: 20 requests per minute per organization.

For SCIM-synced groups, create and sync membership from your identity provider in the dashboard. This create route only builds a manually managed group.

Create

curl -X POST https://api.cursor.com/organizations/groups \
  -u YOUR_ORGANIZATION_API_KEY: \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Engineering"
  }'
Field Rules
name Required. Unique among the organization's active groups. Leading and trailing whitespace is trimmed

Success is 201 with the new group. Capture id (g_…) for later routes; publicId (grp_…) is also returned. New groups start with memberCount: 0 and monthlySpendingLimitDollars: null.

{
  "group": {
    "id": "g_PDSPmvukpYgZEDXsoNirw3CFhy",
    "publicId": "grp_01k2ja2000e0080000000000n2",
    "name": "Engineering",
    "memberCount": 0,
    "monthlySpendingLimitDollars": null,
    "createdAt": "2026-01-15T10:30:00.000Z",
    "updatedAt": "2026-01-15T10:30:00.000Z"
  }
}

A missing, empty, or already-used name returns 400.

Delete

The group must be empty. Remove every member first (see the members how-to), then:

curl -X DELETE https://api.cursor.com/organizations/groups/g_PDSPmvukpYgZEDXsoNirw3CFhy \
  -u YOUR_ORGANIZATION_API_KEY:

Success returns 204 No Content.

Status When
400 Group still has members, or the group has an active SCIM mapping
404 :groupId is not a group on this organization
401 Key missing members:* (or admin:*)

You cannot delete a group with an active SCIM mapping through this endpoint. Remove the mapping in the dashboard, clear members, then delete.

Pitfalls

  • Deleting before membership is empty — clear members with bulk-remove first
  • Reusing a name that another active organization group already holds
  • Expecting create to provision a SCIM-synced group — use IdP push (or dashboard Synced type) for that path
  • Passing grp_… as :groupId — delete needs the g_… id