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

# Bulk delete accounts, contacts, or opportunities

> Deletes up to 500 existing objects. Accounts can be selected by `company_id` or `domain`; account domains accept plain domains or URLs and are normalized before lookup, for example `https://www.qualcomm.com` becomes `qualcomm.com`. Contacts can be selected by `people_id` or `email`; opportunities by `opportunity_id` or exact `name`. Opportunity name matching is exact after trimming and case folding, and all active opportunities matching a supplied name are deleted.



## OpenAPI

````yaml api-reference/openapi.json delete /v1/{object_type}/bulk
openapi: 3.1.0
info:
  title: Octolane Public API
  version: 1.0.0
  description: >-
    OpenAPI specification for Octolane public APIs. These endpoints let external
    systems read CRM data and create or update accounts, contacts,
    opportunities, notes, and activities through the public API gateway.
  contact:
    name: Octolane
    url: https://octolane.com
servers:
  - url: https://api.octolane.com
    description: Public API gateway
security:
  - ApiKeyAuth: []
tags:
  - name: CRM
    description: >-
      Public endpoints for creating, bulk creating, listing, searching, and
      updating CRM data.
paths:
  /v1/{object_type}/bulk:
    delete:
      tags:
        - CRM
      summary: Bulk delete accounts, contacts, or opportunities
      description: >-
        Deletes up to 500 existing objects. Accounts can be selected by
        `company_id` or `domain`; account domains accept plain domains or URLs
        and are normalized before lookup, for example `https://www.qualcomm.com`
        becomes `qualcomm.com`. Contacts can be selected by `people_id` or
        `email`; opportunities by `opportunity_id` or exact `name`. Opportunity
        name matching is exact after trimming and case folding, and all active
        opportunities matching a supplied name are deleted.
      operationId: bulkDeleteObjectsV1
      parameters:
        - name: object_type
          in: path
          required: true
          description: Object collection to delete.
          schema:
            type: string
            enum:
              - accounts
              - contacts
              - opportunities
      requestBody:
        required: true
        description: Array of delete selectors. Maximum 500 items.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkDeleteInput'
      responses:
        '200':
          description: Objects were deleted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResponse'
        '400':
          description: The request failed validation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: >-
            The API key is missing, invalid, or not allowed to access this
            route.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: The route rate limit was exceeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    BulkDeleteInput:
      type: array
      description: >-
        Bulk delete payload. Each item must include exactly one selector
        supported by the selected object_type.
      minItems: 1
      maxItems: 500
      items:
        type: object
        minProperties: 1
        maxProperties: 1
        properties:
          company_id:
            type: string
            format: uuid
          domain:
            type: string
            description: >-
              Company domain or URL. URLs and leading `www.` are normalized
              before lookup.
            example: https://www.acme.com
          people_id:
            type: string
            format: uuid
          email:
            type: string
            format: email
            example: buyer@acme.com
          opportunity_id:
            type: string
            format: uuid
          name:
            type: string
            example: Acme renewal
        additionalProperties: false
      examples:
        - - domain: https://www.acme.com
          - company_id: 018f13b3-8239-7ef8-a8f1-93ad10b76110
        - - email: buyer@acme.com
          - people_id: 018f13b3-8239-7ef8-a8f1-93ad10b76111
        - - name: Acme renewal
          - opportunity_id: 018f13b3-8239-7ef8-a8f1-93ad10b76112
    ApiResponse:
      type: object
      properties:
        success:
          type: boolean
          example: true
        message:
          type: string
        data:
          description: Endpoint-specific response payload.
      additionalProperties: true
    ErrorResponse:
      type: object
      properties:
        success:
          type: boolean
          example: false
        message:
          type: string
          example: Validation failed
        statusCode:
          type: integer
          example: 400
      additionalProperties: true
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Personal API key. Requests act as the workspace member who created the
        key, with that member's current access, and stop working when the key is
        disabled or its creator leaves the workspace.

````

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