Skip to content

Delete a contact

Remove a contact from your audience.

http
DELETE /v1/contacts/{id}

Requires a Full access API key.

Path parameters

ParameterTypeRequiredDescription
idstringYesThe 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.

Transactional email on your own domain.