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

# List monitors

> Get a paginated list of all DNS monitors for the organization.

You can filter monitors by group, state, domain, subdomain, full\_domain, record\_type and is\_active.<br />For example: ?group=production\&state=invalid\&is\_active=true<br />Note: If full\_domain is provided, it will be split into domain and subdomain, overriding any values set in the domain and subdomain parameters.


## OpenAPI

````yaml https://api.dnsradar.dev/openapi.json get /monitors
openapi: 3.0.3
info:
  title: DNSRadar API
  description: DNSRadar API - Monitor your DNS records and get notified when they change.
  version: 1.0.0
  contact:
    name: DNSRadar Support
    email: support@dnsradar.dev
    url: https://dnsradar.dev
servers:
  - url: https://api.dnsradar.dev
    description: Production server
security:
  - ApiKeyAuth: []
tags:
  - name: Agents
    description: Team member management and invitations
  - name: Organization
    description: Organization settings, billing, and subscription management
  - name: Monitors
    description: DNS monitoring configuration and management
  - name: Events
    description: DNS change events and history
  - name: Groups
    description: Monitor grouping and organization
  - name: Webhooks
    description: Webhook configuration for event notifications
paths:
  /monitors:
    get:
      tags:
        - Monitors
      summary: List monitors
      description: Get a paginated list of all DNS monitors for the organization.
      operationId: listMonitors
      parameters:
        - $ref: '#/components/parameters/PaginationAfter'
        - $ref: '#/components/parameters/PaginationBefore'
        - $ref: '#/components/parameters/PaginationLimit'
        - $ref: '#/components/parameters/PaginationOrderBy'
        - $ref: '#/components/parameters/PaginationOrderWay'
        - name: group
          in: query
          description: Filter by group slug
          schema:
            type: string
        - name: state
          in: query
          description: Filter by monitor state
          schema:
            type: string
            enum:
              - UNSET
              - VALID
              - INVALID
              - TIMEOUT
              - MISMATCH
              - NOT_FOUND
              - NO_DATA
              - BAD_SETUP
        - name: domain
          in: query
          description: Filter by domain name (ignored if full_domain is provided)
          schema:
            type: string
        - name: subdomain
          in: query
          description: Filter by subdomain (ignored if full_domain is provided)
          schema:
            type: string
        - name: full_domain
          in: query
          description: >-
            Filter by full domain (e.g., subdomain.example.com). Will be split
            into domain and subdomain, overriding the domain and subdomain
            parameters if they are set.
          schema:
            type: string
        - name: record_type
          in: query
          description: Filter by DNS record type
          schema:
            type: string
            enum:
              - A
              - AAAA
              - CNAME
              - MX
              - TXT
              - NS
              - PTR
              - SPF
              - CAA
        - name: is_active
          in: query
          description: Filter by active status
          schema:
            type: boolean
      responses:
        '200':
          description: Paginated list of monitors
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PaginatedResponse'
                  - type: object
                    properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/Monitor'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
      security:
        - ApiKeyAuth: []
components:
  parameters:
    PaginationAfter:
      name: after
      in: query
      description: >-
        Cursor for fetching the next page of results. Use the value from the
        previous response's 'after' field.
      schema:
        type: string
    PaginationBefore:
      name: before
      in: query
      description: >-
        Cursor for fetching the previous page of results. Use the value from the
        previous response's 'before' field.
      schema:
        type: string
    PaginationLimit:
      name: limit
      in: query
      description: 'Number of items per page (1-100, default: 20)'
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 20
    PaginationOrderBy:
      name: order_by
      in: query
      description: Field to order results by
      schema:
        type: string
    PaginationOrderWay:
      name: order_way
      in: query
      description: Sort direction
      schema:
        type: string
        enum:
          - asc
          - desc
        default: asc
  schemas:
    PaginatedResponse:
      type: object
      description: >-
        Paginated response wrapper for list endpoints. Uses cursor-based
        pagination with after/before parameters.
      properties:
        limit:
          type: integer
          description: Number of items per page (max 100)
          example: 20
        after:
          type: string
          nullable: true
          description: Cursor to fetch the next page of results
        before:
          type: string
          nullable: true
          description: Cursor to fetch the previous page of results
        has_more:
          type: boolean
          description: Indicates if there are more items to fetch
        data:
          type: array
          description: Array of items for the current page
          items:
            type: object
    Monitor:
      type: object
      description: DNS monitoring configuration
      properties:
        id:
          type: string
          description: Monitor identifier with 'mon_' prefix
          example: mon_abc123...
        created:
          type: string
          format: date-time
          description: Monitor creation datetime in ISO 8601 format
        domain:
          type: string
          description: Domain name to monitor
          example: example.com
        subdomain:
          type: string
          description: Subdomain to monitor (empty string for apex)
          example: www
        record_type:
          type: string
          enum:
            - A
            - AAAA
            - CNAME
            - MX
            - TXT
            - NS
            - PTR
            - SPF
            - CAA
          description: DNS record type to monitor
        expected_value:
          type: array
          items:
            type: string
          description: Expected DNS record values (up to 10)
          example:
            - 192.168.1.1
        current_value:
          type: array
          items:
            type: string
          nullable: true
          description: Current DNS record values
          example:
            - 192.168.1.1
        is_exact_match:
          type: boolean
          description: >-
            If set to false, special rules applies depending on the record_type.
            See documentation for details.
        state:
          type: string
          nullable: true
          enum:
            - UNSET
            - VALID
            - INVALID
            - TIMEOUT
            - MISMATCH
            - NOT_FOUND
            - NO_DATA
            - BAD_SETUP
          description: Current monitoring state
        incidence_count:
          type: integer
          description: Number of incidents/changes detected
        last_checked:
          type: string
          format: date-time
          nullable: true
          description: Datetime of the last check in ISO 8601 format
        is_active:
          type: boolean
          description: Whether monitoring is active
        notify:
          type: string
          enum:
            - immediately
            - on_success
            - after_success
          description: >-
            Notification timing: 'immediately' notifies as soon as the value
            changes, 'on_success' notifies only when the value becomes valid,
            'after_success' notifies only when the value goes from valid to
            invalid
    Error:
      type: object
      description: Error response
      properties:
        code:
          type: integer
          description: HTTP status code
        error:
          oneOf:
            - type: string
              description: Error message
            - type: object
              description: Validation errors by field
              additionalProperties:
                type: string
        errors:
          type: object
          description: Field-specific validation errors
          additionalProperties:
            type: string
  responses:
    UnauthorizedError:
      description: Authentication is missing or invalid
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            code: 401
            error: Unauthorized
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-Api-Key
      description: >-
        API key used to authenticate yourself on DNSRadar. Obtain your API key
        from your DNSRadar dashboard.

````