It removes them from future sends and hides them from the dashboard, but their historical event records (past sends, opens, clicks) are retained for campaign-level reporting accuracy — otherwise a campaign's stats would change retroactively every time someone got deleted. If you need to fully purge a contact's data for compliance reasons (e.g. a GDPR erasure request) rather than just remove them from sending, use the separate /api/v1/contacts/{id}/purge endpoint instead, which does permanently delete all associated records.