Help centerIntegrations

Add and remove case members with a manage key

Put people on cases with a role and designation, send the invitation email, read who's on a case, or take someone off.

In this article7 sections

This page covers the calls that put people on cases and take them off. Paths are under https://prd-api-manage.caseactive.com/v1/<hub id>, and the person must already be in your hub; see Add and update users with a manage key.

Calls

CallWhat it does
GET /cases/permissions?case_id=<case_id>Lists everyone on a case
POST /cases/permissionsPuts someone on a case
GET /cases/permissions/<case_id>/<user_id>Reads one person's place on a case
PUT /cases/permissions/<case_id>/<user_id>Changes someone's designation on a case
DELETE /cases/permissions/<case_id>/<user_id>Takes someone off a case

There's no call to change someone's role on a case, or to send their invitation again: take them off and add them again, which runs your welcome rules for their role.

Adding someone

FieldWhat it doesRequiredDefault
case_idThe case, from your hubYes—
user_idThe person, from your hub. Someone disabled in your hub is refused.Yes—
case_role_idTheir roleRole A set of permissions that decides what someone can see and do on a case, such as staff or clients. on the case, in full: role::clients, role::staff or one of your custom roles from GET /roles. The Virtual Assistant's role::bots is refused.Yes—
case_notifytrue sends them the invitation to their caseYes—
staff_designationFor role::staff and your custom roles: primary, attorney, paralegal, case_manager, lead_attorney or lead_paralegalNoprimary
client_designationFor role::clients: primary or guardianNoprimary

A designationDesignation A label for someone's job on a case, such as Lead Attorney, Paralegal or Guardian. says who someone is on the case, so templates can name, for example, the case's primary client. role::clients keeps client_designation, and every other role keeps staff_designation. Leave the other one out, or send primary: a guardian with any other role, or a staff designation with role::clients, is refused at its field, and nobody is added.

curl -X POST https://prd-api-manage.caseactive.com/v1/ca-7e6d5c4b3a2f10/cases/permissions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"case_id": "cc-1a2b3c4d5e6f70", "user_id": "cu-4f1c2a9e8b7d60", "case_role_id": "role::clients", "case_notify": true, "client_designation": "primary"}'

It answers 201 with the case_id and user_id.

  • A case holds 20 people, its Virtual AssistantVirtual Assistant An automated team member that posts welcome messages, check-ins and stage updates for the firm; its posts carry a Virtual Assistant badge. included, so 19 others.
  • A closed case takes nobody. Reopen it first; see Create and update cases with a manage key.
  • The person sees the case in their portal at once.

What happens next

  • With case_notify set to true, the person gets an invitation to the case from your firm, with a link that signs them in to it. It goes to their confirmed email address, or as a text to their confirmed phone number if they have no email; with neither, nothing is sent. Someone who has removed your firm's access gets nothing.
  • Your welcome rules for their role add their templates to the case; see Welcome clients when they join a case.
  • Nothing is posted on the case, and no webhook is sent.

Changing a designation

PUT /cases/permissions/<case_id>/<user_id> with {"case_designation": "lead_attorney"} answers 204. It changes the person's designation on that case and nothing else: they stay on everything they're on, nobody is sent anything, and no welcome rule runs. The next template post and prefilled form use the new one.

The designation must suit their role on the case: primary or guardian for role::clients, and the six staff designations for any other role. The Virtual Assistant's can't be changed.

curl -X PUT https://prd-api-manage.caseactive.com/v1/ca-7e6d5c4b3a2f10/cases/permissions/cc-1a2b3c4d5e6f70/cu-9d8c7b6a5f4e30 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"case_designation": "lead_attorney"}'

Reading who's on a case

GET /cases/permissions?case_id=cc-1a2b3c4d5e6f70 answers everyone on the case at once, the Virtual Assistant included, as role::bots:

{
  "data": {
    "items": [
      {
        "case_id": "cc-1a2b3c4d5e6f70",
        "user_id": "cu-4f1c2a9e8b7d60",
        "case_role_id": "role::clients",
        "case_designation": "primary",
        "case_notify": true,
        "case_status": 1,
        "case_ref_id": "ca-7e6d5c4b3a2f10::rear-end-2026",
        "given_name": "Jane",
        "family_name": "Sample",
        "host_user_status": 1,
        "locale": "en",
        "zoneinfo": "US/Eastern",
        "created_on": "2026-10-02T14:06:30+00:00"
      }
    ],
    "currentItemCount": 1,
    "selfLink": "https://prd-api-manage.caseactive.com/v1/ca-7e6d5c4b3a2f10/cases/permissions?case_id=cc-1a2b3c4d5e6f70"
  }
}

Each entry also carries a copy of the case's title and description. Email addresses and phone numbers aren't included: read the person with GET /users/relations/<user_id>. A case that isn't in your hub answers an empty list.

Taking someone off

DELETE /cases/permissions/<case_id>/<user_id> answers 204, also when the person wasn't on the case, so it's safe to repeat. Nobody is told, though the person is sent a cancellation for each upcoming event on the case, answered or not. The person loses the case from their portal at once. The Virtual Assistant can't be taken off.

If a call is refused

StatusmessageWhy
400SchemaFieldsExceptionA field is missing or invalid; errors names it. A case, person or role that isn't in your hub is FieldValidatorFailedException on that field, and so is a designation the role doesn't take.
400FieldUserDupsExceptionThe person is already on the case
400CaseUserLimitOrTransactionExceptionThe case already has 20 people, or a busy moment cancelled the add. Check the count, then try again.
400TransactionCanceledExceptionA busy moment cancelled the add. Try again.
400CaseUserDisabledExceptionThe person is disabled in your hub. Re-enable them first.
403CaseClosedExceptionThe case is closed, for an add or a designation change
403DatabaseTransactionConditionalCheckFailedYou tried to take the Virtual Assistant off
404ItemNotFoundExceptionReading one person or changing their designation: they aren't on the case, or the case isn't in your hub. Adding someone or changing a designation: the case is being deleted.

For the error body and the rest of the codes, see Handle API errors and status codes.

Related articles

Read roles with a manage keyList your hub's roles and read one role's permissions, so your software can put people on cases with the right role.Integrations