Update Membership
patch
/v1/memberships/{membership_id}Updates a membership's role, status, default flag, or firebase id. Setting status to active is how an invite is accepted; setting a role re-resolves the person's permissions on their next request. Side effect: writes the membership row and may update the linked person's profile via meta.person. Note: the underlying route is registered as PUT and accepts the same JSON:API body.
Requires a bearer token: Authorization: Bearer <token>.
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
| membership_id | string <uuid> | Yes | Public UUID of the membership.e.g. 3d4e5f60-7182-493a-a4b5-c6d7e8f9a0b1 |
Request
cURL
curl -X PATCH https://api.wellapp.ai/v1/memberships/{membership_id} \
-H "Authorization: Bearer $WELL_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"data": {
"type": "membership",
"attributes": {
"status": "active",
"is_default": true
}
},
"meta": {
"person": {
"firstName": "Dani",
"lastName": "Park"
}
}
}'Request body
{
"data": {
"type": "membership",
"attributes": {
"status": "active",
"is_default": true
}
},
"meta": {
"person": {
"firstName": "Dani",
"lastName": "Park"
}
}
}Responses
200 — The updated membership.
{
"data": {
"type": "membership",
"id": "3d4e5f60-7182-493a-a4b5-c6d7e8f9a0b1",
"attributes": {
"membership_role": "member",
"status": "active",
"firebase_id": null,
"invite_token": null,
"is_default": true,
"created_at": "2026-02-01T10:00:00.000Z",
"updated_at": "2026-02-01T10:00:00.000Z"
},
"relationships": {
"workspace": {
"data": {
"type": "workspace",
"id": "8f6b2c10-4a1e-4d2b-9c3a-1f0e7a5b6c21"
}
},
"person": {
"data": {
"type": "people",
"id": "d5e6f7a8-9b0c-41d2-83e4-f5a6b7c8d9e0"
}
},
"parent_workspace": {
"data": null
},
"invited_by": {
"data": {
"type": "people",
"id": "c4d5e6f7-8a9b-40c1-92d3-e4f5a6b7c8d9"
}
}
}
},
"included": []
}400 — Bad Request
{
"code": "BAD_REQUEST",
"status": 400,
"title": "Bad Request",
"message": "See title.",
"meta": {
"trace_id": "a1b2c3",
"log_id": "a1b2c3"
}
}401 — Unauthorized
{
"code": "UNAUTHORIZED",
"status": 401,
"title": "Unauthorized",
"message": "See title.",
"meta": {
"trace_id": "a1b2c3",
"log_id": "a1b2c3"
}
}403 — Forbidden
{
"code": "FORBIDDEN",
"status": 403,
"title": "Forbidden",
"message": "See title.",
"meta": {
"trace_id": "a1b2c3",
"log_id": "a1b2c3"
}
}404 — Not Found
{
"code": "NOT_FOUND",
"status": 404,
"title": "Not Found",
"message": "See title.",
"meta": {
"trace_id": "a1b2c3",
"log_id": "a1b2c3"
}
}