Update an assignment
/api/v1/assignments/{id}Updates an existing assignment's role and/or its effective_from/effective_to window, identified by assignment id. Pass null for a date field to clear it, or omit the field to leave it unchanged; the new role must be active and non-system (400 otherwise). Returns 404 when the assignment does not exist in the current Environment. Re-evaluates rbac.manage_assignments at the assignment's node before applying changes.
Authentication
Authorization Option A JWT access token. Never send alongside X-API-Key: a request carrying both is refused.
X-API-Key Option B API key for management-tier access. Never send alongside an Authorization header: a request carrying both is refused.
Path Parameters
idstring Required Request body
application/json
role_idstring Required effective_fromstring Optional effective_tostring Optional Responses
application/json
data *AssignmentResponseDto
application/json
error *ApiErrorBodyDto
application/json
error *ApiErrorBodyDto
application/json
error *ApiErrorBodyDto
application/json
error *ApiErrorBodyDto
Returned object
curl -X PATCH "https://auth.canopy-io.com/api/v1/assignments/value" \ -H "X-API-Key: $CANOPY_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "role_id": "string", "effective_from": "string", "effective_to": "string" }'
{ "data": { "id": "string", "identity_id": "string", "application_node_id": "string", "role_id": "string", "effective_from": "2026-04-20T12:00:00.000Z", "effective_to": "2026-04-20T12:00:00.000Z", "created_at": "2026-04-20T12:00:00.000Z", "updated_at": "2026-04-20T12:00:00.000Z" } }
Tell us how we can improve this guide.