PersistIQ Do Not Contact Domains API

Suppressed domains

OpenAPI Specification

persistiq-do-not-contact-domains-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: PersistIQ Campaigns Do Not Contact Domains API
  version: v1
  description: The PersistIQ API is a REST API for the PersistIQ sales engagement platform. It exposes users, leads (prospects), lead statuses and fields, campaigns (including adding and removing leads), activity events, and Do Not Contact (DNC) domains. Authentication is a company-wide API key sent in the `x-api-key` request header. Responses are JSON with a `status`/`errors` envelope, cursor pagination via `has_more` + `next_page`, and a per-key rate limit of 100 requests per minute surfaced through `X-RateLimit-*` headers. This specification was derived faithfully from PersistIQ's published API reference (apidocs.persistiq.com) and captures the documented request and response surface; it is not an official PersistIQ-published OpenAPI file.
  contact:
    name: PersistIQ
    url: https://persistiq.com
  x-apisjson-generated: '2026-07-20'
  x-apisjson-method: derived
  x-apisjson-source: https://apidocs.persistiq.com/
servers:
- url: https://api.persistiq.com
  description: Production
security:
- ApiKeyAuth: []
tags:
- name: Do Not Contact Domains
  description: Suppressed domains
paths:
  /v1/dnc_domains:
    get:
      operationId: listDncDomains
      summary: List all Do Not Contact domains
      description: Do Not Contact domains prevent email being sent to email addresses at their domain. Each response contains a maximum of 100 domains.
      tags:
      - Do Not Contact Domains
      responses:
        '200':
          description: A page of DNC domains
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                  errors:
                    type: array
                    items: {}
                  has_more:
                    type: boolean
                  next_page:
                    type:
                    - string
                    - 'null'
                  dnc_domains:
                    type: array
                    items:
                      $ref: '#/components/schemas/DncDomain'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/ServerError'
    post:
      operationId: createDncDomain
      summary: Create a Do Not Contact domain
      description: Creates a Do Not Contact domain, preventing emails from being sent (without manual approval) to email addresses at this domain.
      tags:
      - Do Not Contact Domains
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - name
              properties:
                name:
                  type: string
                  description: Do Not Contact domain name.
      responses:
        '200':
          description: The created DNC domain
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                  errors:
                    type:
                    - array
                    - 'null'
                    items: {}
                  dnc_domain:
                    $ref: '#/components/schemas/DncDomain'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/ServerError'
components:
  responses:
    TooManyRequests:
      description: Too Many Requests - more than 100 requests were sent in one minute.
      headers:
        X-RateLimit-Limit:
          description: Maximum allowed requests per minute.
          schema:
            type: integer
        X-RateLimit-Remaining:
          description: Requests left for the current window.
          schema:
            type: integer
        X-RateLimit-Reset:
          description: UTC epoch seconds when the window resets.
          schema:
            type: integer
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Unauthorized - your API key is wrong
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    ServerError:
      description: Internal Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: Bad Request - missing a required parameter
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    DncDomain:
      type: object
      properties:
        id:
          type: string
          example: dom_3eWoGj
        name:
          type: string
          example: example.com
    Error:
      type: object
      properties:
        status:
          type: string
          example: error
        error:
          type: object
          properties:
            reason:
              type: string
              description: Error type. Values include invalid_request_error, api_error, bad_params, invalid_request, too_many_requests.
            message:
              type: string
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: Company-wide API key. Grants access to read and write all users' data within the company. Include it in the header of every request.