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

# Delete a Contact with the API

> Delete a contact by UUID so it no longer appears in Simple AI, and let a synced source create it again from the same external ID.

Use the `contact.id` UUID returned by [contact upsert](/api-reference/contacts/upsert-contact). To find a contact using your own system's ID, use [List Contacts](/api-reference/contacts/list-contacts) with `sourceKey` and `externalId`.

Deleting a contact removes it from contact reads and lists for every source that synced it. If a source keeps sending that external ID, its next upsert creates a new contact, so remove the record from your source as well.

After a deletion, your source can send the same external IDs and `eventId` values to the upsert endpoint again, which creates a new contact. Opt-outs recorded for the contact's phone number are kept and still apply to that number.

```bash theme={null}
curl -X DELETE 'https://api.usesimple.ai/api/v1/contacts/7f3e2a10-4c8b-4d1e-9a6f-2b5c8d9e0f12' \
  -H 'Authorization: Bearer YOUR_API_KEY'
```

```json theme={null}
{
  "id": "7f3e2a10-4c8b-4d1e-9a6f-2b5c8d9e0f12",
  "deleted": true
}
```

Missing, already deleted, and other-organization contacts return `404`. The endpoint also returns `401` when authentication fails and `422` when the contact ID is not a valid UUID.


## OpenAPI

````yaml DELETE /contacts/{contactId}
openapi: 3.1.0
info:
  title: Public API v1
  description: >-
    Public API v1 requiring API keys.


    **Timestamps:** All datetime fields in API responses are returned in UTC
    using ISO 8601 format (e.g., `2024-01-15T14:30:00Z`). When filtering by date
    parameters, provide timestamps in ISO 8601 format.
  version: 0.1.0
servers:
  - url: https://api.usesimple.ai/api/v1
    description: Production API Server
security: []
paths:
  /contacts/{contactId}:
    delete:
      tags:
        - Contacts
      summary: Delete Contact
      description: >-
        Delete an active contact by UUID within the authenticated organization.
        The contact no longer appears in reads, and a sync source can send the
        contact's external IDs and event IDs again to create a new contact.
        Opt-outs recorded for its phone number are kept.
      operationId: delete_contact_by_uuid
      parameters:
        - name: contactId
          in: path
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: The contact was deleted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteContactResponse'
        '401':
          description: Authentication failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
        '404':
          description: >-
            Contact missing, already deleted, or outside the authenticated
            organization.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
        '422':
          description: The contact ID is not a valid UUID.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiError'
      security:
        - APIKeyHeader: []
components:
  schemas:
    DeleteContactResponse:
      type: object
      required:
        - id
        - deleted
      properties:
        id:
          type: string
          format: uuid
          description: The UUID of the deleted contact.
        deleted:
          type: boolean
          const: true
      title: Delete Contact Response
    PublicApiError:
      type: object
      required:
        - status
        - success
        - error
        - errors
      properties:
        status:
          type: string
          const: error
        success:
          type: boolean
          const: false
        error:
          type: string
        errors:
          type: array
          items:
            type: string
      title: Public API Error
  securitySchemes:
    APIKeyHeader:
      type: http
      scheme: bearer
      description: 'Your API key, sent as `Authorization: Bearer YOUR_API_KEY`'

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.