> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mailbreeze.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Delete Contact

> Delete a contact from a list

Permanently delete a contact from a list.

<Warning>
  This action is irreversible. Consider suppressing the contact instead if you want to preserve their history.
</Warning>

## Path Parameters

<ParamField path="listId" type="string" required>
  The unique list ID (e.g., `lst_abc123`).
</ParamField>

<ParamField path="id" type="string" required>
  The unique contact ID (e.g., `cnt_abc123`).
</ParamField>

## Examples

<CodeGroup>
  ```typescript JavaScript theme={null}
  import { MailBreeze } from "mailbreeze";

  const mailbreeze = new MailBreeze({ apiKey: "sk_live_xxx" });
  const contacts = mailbreeze.contacts("lst_abc123");

  await contacts.delete("cnt_abc123");

  console.log("Contact deleted");
  ```

  ```python Python theme={null}
  from mailbreeze import MailBreeze

  client = MailBreeze(api_key="sk_live_xxx")
  contacts = client.contacts("lst_abc123")

  await contacts.delete("cnt_abc123")

  print("Contact deleted")
  ```

  ```go Go theme={null}
  client := mailbreeze.NewClient("sk_live_xxx")
  contacts := client.Contacts("lst_abc123")

  err := contacts.Delete(ctx, "cnt_abc123")
  if err != nil {
      log.Fatal(err)
  }

  fmt.Println("Contact deleted")
  ```

  ```php PHP theme={null}
  $mailbreeze = new MailBreeze('sk_live_xxx');

  $mailbreeze->contacts->delete('lst_abc123', 'cnt_abc123');

  echo "Contact deleted";
  ```

  ```rust Rust theme={null}
  let client = Client::new("sk_live_xxx");
  let contacts = client.contacts("lst_abc123");

  contacts.delete("cnt_abc123").await?;

  println!("Contact deleted");
  ```

  ```bash cURL theme={null}
  curl -X DELETE "https://api.mailbreeze.com/api/v1/contact-lists/lst_abc123/contacts/cnt_abc123" \
    -H "Authorization: Bearer sk_live_xxx"
  ```
</CodeGroup>

## Response

Returns `204 No Content` on success with no response body.

## Errors

| Code                | HTTP Status | Description                        |
| ------------------- | ----------- | ---------------------------------- |
| `CONTACT_NOT_FOUND` | 404         | Contact with this ID doesn't exist |
| `LIST_NOT_FOUND`    | 404         | List with this ID doesn't exist    |

## When to Delete vs Suppress

| Action       | Use Case                         | Email History | Can Re-subscribe         |
| ------------ | -------------------------------- | ------------- | ------------------------ |
| **Delete**   | Remove completely, GDPR requests | Lost          | Yes (as new contact)     |
| **Suppress** | Stop emails but keep history     | Preserved     | Yes (with status change) |

<Note>
  For GDPR deletion requests, use delete. For unsubscribes or bounces, use suppress to maintain deliverability history.
</Note>
