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

> Get a paginated list of all groups.

Groups help you organize your monitors into logical collections for easier management and reporting.<br />You can filter monitors by group using the `group` query parameter on the `/monitors` endpoint.<br />A default group is automatically created and cannot be removed, but can be renamed. This is required in order to attach a monitor to a group that will be used to send Webhook notifications.


## OpenAPI

````yaml https://api.dnsradar.dev/openapi.json get /groups
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:
  /groups:
    get:
      tags:
        - Groups
      summary: List groups
      description: Get a paginated list of all groups.
      operationId: listGroups
      parameters:
        - $ref: '#/components/parameters/PaginationAfter'
        - $ref: '#/components/parameters/PaginationBefore'
        - $ref: '#/components/parameters/PaginationLimit'
        - $ref: '#/components/parameters/PaginationOrderBy'
        - $ref: '#/components/parameters/PaginationOrderWay'
      responses:
        '200':
          description: Paginated list of groups
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PaginatedResponse'
                  - type: object
                    properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/Group'
        '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
    Group:
      type: object
      description: Group for organizing monitors
      properties:
        id:
          type: string
          description: Group identifier with 'grp_' prefix
          example: grp_abc123...
        slug:
          type: string
          description: URL-friendly identifier
          example: production-servers
        name:
          type: string
          description: Display name
          example: Production Servers
        is_default:
          type: boolean
          description: Whether this is the default group
        monitors:
          type: integer
          description: Number of monitors in this group
          example: 42
        webhooks:
          type: array
          description: List of webhook UUIDs associated with this group
          items:
            type: string
            description: Webhook UUID with 'whk_' prefix
          example:
            - whk_abc123...
            - whk_def456...
    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.

````