Set or clear a project's Site Manager
Sets or clears the per-project Site Manager flag for an assigned **Site Crew** member. The caller must be an Admin or the project's existing Site Manager, and the user must already be on the roster. The target's account role must be Site Crew: an admin already manages every project, so the flag is meaningless for them and setting it is rejected with `422`.
Sets or clears the per-project Site Manager flag for an assigned Site Crew member. The caller must be an Admin or the project's existing Site Manager, and the user must already be on the roster.
The target's account role must be Site Crew: an admin already manages
every project, so the flag is meaningless for them and setting it is
rejected with 422.
The per-tenant API key, copied from Settings → API & integrations.
Sent as the x-api-key request header. The key is tenant-scoped and acts
with Admin-equivalent, tenant-wide access.
In: header
Path Parameters
Resource id.
The assigned crew member's user id.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/projects/497f6eca-6276-4993-bfeb-53cbbbba6f08/crew/497f6eca-6276-4993-bfeb-53cbbbba6f08/site-manager" \ -H "Content-Type: application/json" \ -d '{ "isSiteManager": true }'{ "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8", "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b", "isSiteManager": true}{ "error": { "code": "unauthorized", "message": "Missing or invalid API key." }}{ "error": { "code": "read_only", "message": "Your subscription is inactive. This action is read-only." }}{ "error": { "code": "not_found", "message": "Not found." }}{ "error": { "code": "validation", "message": "One or more inputs are invalid.", "fields": { "fieldName": "A message explaining what's wrong with this field." } }}