# Leave (/api/events/members/leave)



## Event Type [#event-type]

```ts
"member.leave"
```

## Description [#description]

This event is triggered whenever a member leaves your server, whether they left on their own, were kicked, or were banned. Bots are ignored.

## Payload Structure [#payload-structure]

<TypeTable
  type="{
  userId: {
    description: 'Discord user ID of the member who left',
    type: 'string',
  },
  username: {
    description: 'Username of the member who left',
    type: 'string',
  },
  memberCount: {
    description: 'Total member count after the member left',
    type: 'number',
  },
}"
/>

## Example Payload [#example-payload]

```json
{
  "type": "member.leave",
  "payload": {
    "userId": "713115896805064856",
    "username": "johndoe",
    "memberCount": 1249
  }
}
```

## Example Usage [#example-usage]

```ts
app.post('/webhook', (req, res) => {
  const { type, payload } = req.body;

  if (type === 'member.leave') {
    console.log(`Member left: ${payload.username}`);
    console.log(`User ID: ${payload.userId}`);
    console.log(`Member count: ${payload.memberCount}`);

    // Update member records in your database
    await recordMemberLeave({
      userId: payload.userId,
      username: payload.username,
      leftAt: new Date(),
    });

    // Trigger off-boarding or win-back workflows
    await handleMemberLeave(payload.userId);
  }

  res.status(200).send('OK');
});
```

## Use Cases [#use-cases]

* Keep an external CRM or database in sync when members leave
* Track churn and retention over time
* Trigger win-back or follow-up workflows
* Log member departures for analytics and auditing
* Revoke external access tied to server membership
