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

> Page through the do-not-contact list, newest first, including entries people created by opting out themselves. Filter by identity type to sync into your CRM.

# List blocked addresses



## OpenAPI

````yaml get /outbound/blocklist
openapi: 3.1.0
info:
  title: OpenCX API
  description: >

    OpenCX is an AI-powered, all-in-one platform for customer support and
    outbound communications.


    Use this API to manage your OpenCX organization's AI agents, actions,
    conversations, contacts, and more.


    To get started, generate a new API key from the dashboard.


    ## Authentication

    All API endpoints require authentication using a Bearer token. You can
    generate an API key from your OpenCX dashboard.


    ## Rate Limiting

    API requests are rate limited to ensure fair usage. The current limits are:

    - 100 requests per minute for standard endpoints

    - 1000 requests per minute for streaming endpoints


    ## Error Handling

    The API uses standard HTTP status codes and returns detailed error messages
    in the response body.
  version: 1.0-beta
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
servers:
  - url: http://localhost:8080
    description: Development
  - url: https://api.open.cx
    description: Production
security:
  - bearerAuth: []
paths:
  /outbound/blocklist:
    get:
      summary: List blocked addresses
      description: >-
        Lists the do-not-contact list, newest first. Includes both entries you
        added and entries recorded when people opted out themselves — check
        `source` to tell them apart.
      operationId: listOutboundBlocklist
      parameters:
        - schema:
            type: string
            enum:
              - phone
              - email
              - whatsapp_user_id
          in: query
          name: identity_type
          required: false
          description: >-
            What kind of address this is. "phone" is stored in international
            format, "email" is lowercased, and "whatsapp_user_id" is the
            WhatsApp id of a contact whose phone number is hidden.
        - schema:
            type: string
          in: query
          name: cursor
          required: false
          description: Cursor from a previous response.
        - schema:
            default: 50
            type: integer
            minimum: 1
            maximum: 200
          in: query
          name: limit
          required: false
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/OutboundBlocklistEntryDto'
                  next:
                    anyOf:
                      - type: string
                      - type: 'null'
                required:
                  - items
                  - next
                additionalProperties: false
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
components:
  schemas:
    OutboundBlocklistEntryDto:
      $schema: https://json-schema.org/draft/2020-12/schema
      $id: '#/components/schemas/OutboundBlocklistEntryDto'
      type: object
      properties:
        id:
          type: string
        identity_type:
          type: string
          description: '"phone", "email" or "whatsapp_user_id".'
        identity_value:
          type: string
          description: The address, as we stored it after normalizing.
        channel:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            The channel this entry covers. Null means every channel — that is
            what entries added through this API always are. A specific channel
            appears when someone opted out of that channel alone.
        reason:
          type: string
          description: Why the address was blocked.
        source:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            Where the entry came from. "api" is one you added. Anything else was
            recorded when the person opted out themselves, and is not removable
            by default.
        created_at:
          type: string
          format: date-time
        expires_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          description: When the block lifts automatically. Null means it never does.
      required:
        - id
        - identity_type
        - identity_value
        - channel
        - reason
        - source
        - created_at
        - expires_at
      additionalProperties: false
    ErrorDto:
      type: object
      properties:
        statusCode:
          type: integer
        message:
          type: string
        error:
          type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````