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

# Delete a CRM Record

> Delete a custom object record in the Zeeg CRM API, permanently removing its attribute values, notes, activity logs, and links from related records

Permanently deletes a CRM record and all data associated with it.

<Warning>
  This action is irreversible. Notes, activity logs, and all attribute data stored on the record are deleted immediately and cannot be recovered.
</Warning>

## Path parameters

| Parameter    | Type          | Description                                              |
| ------------ | ------------- | -------------------------------------------------------- |
| `objectSlug` | string        | The slug of the custom CRM object the record belongs to. |
| `recordId`   | string (UUID) | The UUID of the record to delete.                        |

## What gets deleted

Deleting a record removes:

* The record itself and all its attribute values.
* Any notes attached to the record.
* Activity log entries for the record.
* The record's presence in relation attributes on **other** records (it is removed from any related record's relation list).

## Response

A successful delete returns `200 OK` with a confirmation message:

```json theme={null}
{
  "success": true,
  "status": 200,
  "message": "Record deleted."
}
```

Subsequent `GET` requests for the same `recordId` return `404 Not Found`.

## Idempotency

Delete is **not** idempotent — calling it a second time on an already-deleted record returns `404`, not `200`. If your workflow requires idempotent deletes, catch `404` and treat it as a success.

## When to use this endpoint

* **Hard delete** — a user explicitly removes a record from the CRM.
* **Cleanup** — delete test records, duplicates, or outdated entries.
* **GDPR / data erasure** — permanently erase a contact's record in response to a deletion request.

<Note>
  There is no soft-delete or archive on custom object records. If you need to mark a record as inactive without losing data, add a `status` attribute to the object schema and set it to `archived` or `inactive` via PATCH instead of deleting.
</Note>


## OpenAPI

````yaml DELETE /crm/{objectSlug}/{recordId}
openapi: 3.0.0
info:
  title: Zeeg Public API
  description: >-
    Zeeg public API documentation.


    ## Authentication

    All endpoints require a Bearer token. You can generate an API token from
    [your Zeeg dashboard](https://app.zeeg.me/account/settings/api-access).


    Each token is scoped to specific permissions (e.g. `events:read`,
    `webhooks:write`). Make sure your token has the required scopes for the
    endpoints you want to use.


    ## Recommended Headers

    We recommend including the `Accept: application/json` header in all API
    requests to ensure you receive JSON responses.
  version: 2.0.0
  x-logo:
    url: https://app.zeeg.me/img/logo-dark.2ca83593.svg
    backgroundColor: '#f7f7f9'
    altText: zeeg
  contact:
    name: Zeeg Support
    email: support@zeeg.me
    url: https://zeeg.me/en/contact
  license:
    name: Proprietary
    url: https://zeeg.me/en/legal/terms
  termsOfService: https://zeeg.me/en/legal/terms
servers:
  - url: https://api.zeeg.me/v2
    description: Production
security:
  - bearer: []
tags:
  - name: Scheduled Events
    description: Management of events scheduled via Zeeg
  - name: Scheduling Pages
    description: Scheduling pages information and management
  - name: Availability Schedule
    description: Read and change availability for users
  - name: Webhooks
    description: Webhooks management
  - name: Notes
    description: Notes for scheduled events
  - name: Workspaces & Teams
    description: Workspace users and team member management
  - name: AI Agent
    description: AI Agent integration endpoints
  - name: Payloads
    description: Webhook payload schemas
  - name: CRM - Objects
    description: >-
      Discover the schema of CRM objects (standard and custom) including all
      attribute definitions
  - name: CRM - Companies
    description: Create, read, update, and delete CRM company records
  - name: CRM - People
    description: Create, read, update, and delete CRM person records
paths:
  /crm/{objectSlug}/{recordId}:
    delete:
      tags:
        - CRM - Records
      summary: Delete a CRM record
      description: >-
        Permanently deletes a CRM record and all associated data (notes,
        activity logs).


        **This action is irreversible.**


        **Required scope:** `crm:write`
      operationId: delete-crm-record
      parameters:
        - name: objectSlug
          in: path
          required: true
          schema:
            type: string
          description: Slug of the custom CRM object.
          example: products
        - name: recordId
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: UUID of the record to delete.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  status:
                    type: integer
                    example: 200
                  message:
                    type: string
                    example: Record deleted.
        '401':
          $ref: '#/components/responses/401'
        '403':
          description: Forbidden — missing scope or CRM not enabled
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
                  status:
                    type: integer
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
                  status:
                    type: integer
              examples:
                Not found:
                  value:
                    success: false
                    message: Record not found.
                    status: 404
      security:
        - bearer: []
components:
  responses:
    '401':
      description: Unauthorized
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                example: Unauthenticated.
          examples:
            Unauthenticated:
              value:
                message: Unauthenticated.
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      description: ''

````