> ## 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.

> Tell whether an address is currently on the do-not-contact list and on which channels, ignoring expired entries. Use before pushing a lead into a sequence.

# Check whether an address is blocked



## OpenAPI

````yaml get /outbound/blocklist/check
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/check:
    get:
      summary: Check whether an address is blocked
      description: >-
        Tells you whether an address is currently on the do-not-contact list.
        Expired entries do not count as blocked.


        `blocked` means the address is suppressed on at least one channel —
        check the `channel` on each returned entry to see which. Note this
        answers for the address you ask about: someone reachable on WhatsApp
        without a known phone number is a separate identity, so block the
        WhatsApp user id too if you have it.
      operationId: checkOutboundBlocklist
      parameters:
        - schema:
            type: string
            enum:
              - phone
              - email
              - whatsapp_user_id
          in: query
          name: identity_type
          required: true
          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
            minLength: 1
            maxLength: 320
          in: query
          name: identity_value
          required: true
          description: The address itself — e.g. "+962790007001" or "lead@example.com".
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CheckOutboundBlocklistOutputDto'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
components:
  schemas:
    CheckOutboundBlocklistOutputDto:
      $schema: https://json-schema.org/draft/2020-12/schema
      $id: '#/components/schemas/CheckOutboundBlocklistOutputDto'
      type: object
      properties:
        blocked:
          type: boolean
        entries:
          type: array
          items:
            $ref: '#/components/schemas/OutboundBlocklistEntryDto'
      required:
        - blocked
        - entries
      additionalProperties: false
    ErrorDto:
      type: object
      properties:
        statusCode:
          type: integer
        message:
          type: string
        error:
          type: string
    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
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````