Appearance
Delete a contact
Remove a contact from your audience.
http
DELETE /v1/contacts/{id}Requires a Full access API key.
Path parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The contact id, or the contact's email address. |
Example
bash
curl -X DELETE "https://api.sendgrail.com/v1/contacts/$CONTACT_ID" \
-H "Authorization: Bearer $SENDGRAIL_API_KEY"js
await fetch(`https://api.sendgrail.com/v1/contacts/${id}`, {
method: 'DELETE',
headers: { Authorization: `Bearer ${process.env.SENDGRAIL_API_KEY}` },
});Response
json
{
"object": "contact",
"id": "3f1c9a0e-6c5e-4a2b-9f2d-2b1a7c8e4d31",
"deleted": true
}The response always carries the contact's id, even if you addressed it by email — so a caller that only knew the address comes away knowing the id it just removed.
A contact.deleted webhook event fires on success.
Deleting is not unsubscribing
Deleting a contact removes the person and their property values, and takes them out of every segment and topic. It does not record that they opted out — so if the same address is imported again tomorrow, or signs up again, nothing stops them receiving mail.
If the intent is "stop mailing this person", set unsubscribed: true instead, or add them to your suppression list. Keep deletion for erasure requests and for records that shouldn't have existed.
A contact belonging to another team answers 404, not 403. See Errors.