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

NameTypeRequiredDescription
membership_idstring <uuid>YesPublic 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

200The 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": []
}

400Bad Request

{
  "code": "BAD_REQUEST",
  "status": 400,
  "title": "Bad Request",
  "message": "See title.",
  "meta": {
    "trace_id": "a1b2c3",
    "log_id": "a1b2c3"
  }
}

401Unauthorized

{
  "code": "UNAUTHORIZED",
  "status": 401,
  "title": "Unauthorized",
  "message": "See title.",
  "meta": {
    "trace_id": "a1b2c3",
    "log_id": "a1b2c3"
  }
}

403Forbidden

{
  "code": "FORBIDDEN",
  "status": 403,
  "title": "Forbidden",
  "message": "See title.",
  "meta": {
    "trace_id": "a1b2c3",
    "log_id": "a1b2c3"
  }
}

404Not Found

{
  "code": "NOT_FOUND",
  "status": 404,
  "title": "Not Found",
  "message": "See title.",
  "meta": {
    "trace_id": "a1b2c3",
    "log_id": "a1b2c3"
  }
}