Remove Role Membership

DELETE /v1/endpoints/{id}/rbac/memberships

Revoke a specific (client_id, role_id) assignment. The pair is passed in the request body rather than the URL — gorilla/mux can't put both IDs in the path here, and using the body keeps the API symmetric with create.

Effect is immediate: the next request from this client no longer carries this role's permissions. If that was their only role, they retain authentication ability but get no permission grants — your upstream service should treat them as "logged in but unauthorised".

Path parameters

id string (uuid) Req
Endpoint UUID.

Request body

client_id int64 Req
RBAC client whose membership to remove.
role_id int64 Req
Role to revoke.

Response (200 OK)

Returns the full updated memberships array for the endpoint (same shape as List Role Memberships), not 204. Removing a non-existent pairing still returns 200 with the unchanged list.

Errors

400 Bad Request
Missing/non-positive client_id or role_id, unknown fields, or invalid JSON.
401 Unauthorized
Missing auth.
403 Forbidden
Caller lacks the endpoints:delete permission in the active account.
404 Not Found
Endpoint doesn't exist or doesn't belong to the calling account.
Request
curl -X DELETE "https://api.ngris.com/v1/endpoints/<uuid>/rbac/memberships" \ -H "X-API-KEY: <your_api_key>" \ -H "Content-Type: application/json" \ -d '{"client_id": 11, "role_id": 3}'
Python
from ngris import Ngris client = Ngris(api_key="<your_api_key>") client.endpoint_rbac.delete_membership("<endpoint_uuid>", { "client_id": 11, "role_id": 3, })
Response — 200 OK
[ {"id": 41, "client_id": 11, "role_id": 1, "assigned_by": 1024, "created_at": "2026-04-01T00:00:00Z", "updated_at": "2026-04-01T00:00:00Z"} ]
On this page
Remove Role Membership
Iris