
Plans
Manage organization group members with the Organization API
List members with GET https://api.cursor.com/organizations/groups/:groupId/members, add with POST …/members/bulk-add, and remove with POST …/members/bulk-remove. Official reference: Organization API → List / Add / Remove Organization Group members. Dashboard context: Organization Groups.
Authenticate with an Organization API key (Basic auth, key as username, empty password). Every group route needs members:* (or admin:*). Rate limit: 20 requests per minute per organization.
:groupId must be the Organization API group id (g_…). Member ids are public user_… values.
SCIM-synced groups reject manual membership changes with 400. Manage those members in your identity provider.
List members
curl -X GET "https://api.cursor.com/organizations/groups/g_PDSPmvukpYgZEDXsoNirw3CFhy/members?page=1&pageSize=50" \
-u YOUR_ORGANIZATION_API_KEY:
page defaults to 1. pageSize defaults to 50 and clamps at 200.
{
"members": [
{
"userId": "user_abc123",
"name": "Alex Developer",
"email": "alex@company.com",
"joinedAt": "2026-01-15T10:30:00.000Z"
}
],
"pagination": {
"page": 1,
"pageSize": 50,
"totalCount": 1,
"totalPages": 1,
"hasNextPage": false,
"hasPreviousPage": false
}
}
Add members
Up to 100 user_… ids per request.
curl -X POST https://api.cursor.com/organizations/groups/g_PDSPmvukpYgZEDXsoNirw3CFhy/members/bulk-add \
-u YOUR_ORGANIZATION_API_KEY: \
-H "Content-Type: application/json" \
-d '{
"userIds": ["user_abc123", "user_def456"]
}'
{ "addedCount": 2 }
addedCount only counts new memberships. Users outside the organization and users already in the group are ignored and do not inflate the count.
Remove members
curl -X POST https://api.cursor.com/organizations/groups/g_PDSPmvukpYgZEDXsoNirw3CFhy/members/bulk-remove \
-u YOUR_ORGANIZATION_API_KEY: \
-H "Content-Type: application/json" \
-d '{
"userIds": ["user_def456"]
}'
{ "removedCount": 1 }
Users who are not in the group are ignored. Empty the group with bulk-remove before you can DELETE the group itself.
Resolve user ids
curl -X GET "https://api.cursor.com/organizations/members?page=1&pageSize=50" \
-u YOUR_ORGANIZATION_API_KEY:
Organization member list returns numeric userId values plus email and team assignments. For group userIds, use the public user_… ids from a prior group members response, or map from your roster the same way you do for Team directory group bulk routes. Do not pass a team Billing Group id or a Team directory team_group_… id as :groupId.
Pitfalls
- Calling bulk-add or bulk-remove on a SCIM-synced group — expect 400
- Passing more than 100 ids in one request
- Passing Team directory or Billing Group ids as
:groupId - Assuming ignored users raise an error — they are skipped silently and only the count reflects real changes