Manage project members
This walkthrough covers the lifecycle of a project member: importing members in bulk, listing and filtering them, changing their product access, and removing them.
Get a token that can act as a user
Member writes are user-scoped. Use a 3-legged token, or a 2-legged token
plus the User-Id header of a project or account admin. See
Authentication.
Import the members
POST projects/:projectId/users:import adds up to 200 members in one
request. Each entry needs an email and the products the member should
get, where access is administrator, member or none.
The response reports per-entry success and failure, so a partially valid
batch still imports the valid rows — always inspect failures rather than
relying on the status code alone.
Confirm the members landed
GET projects/:projectId/users lists members. Narrow it with filters and
trim the payload with fields:
Bulk-inviting across projects
To seed the same people into several projects, call
POST accounts/:accountId/projects/users:batch-invite instead of importing
project by project.
Syncing instead of importing
When an external system owns the membership list, POST projects/:projectId/users:sync reconciles the project against the list you
send, and POST projects/:projectId/users:sync-status reports on the resulting
job. The same pattern exists for companies and roles.
New integrations should call the v2 import operation: it takes a pure 2-legged token and returns richer per-row errors. See Migrating to v2.