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

# List raw check results

> Returns check results for the given monitor with optional time-range, region, and pass/fail filtering. Uses cursor-based pagination — pass the returned `cursor` value on subsequent requests to retrieve the next page. The cursor encodes the original time bounds, so `from`/`to` are ignored when a cursor is present.



## OpenAPI

````yaml /openapi/monitoring-api.json get /api/v1/monitors/{id}/results
openapi: 3.0.1
info:
  title: DevHelm API
  description: >-
    DevHelm monitoring and incident management API. Create and manage uptime
    monitors, incidents, alert channels, notification policies, and more.
  version: '1.0'
  contact:
    name: DevHelm
    url: https://devhelm.io
    email: support@devhelm.io
servers:
  - url: https://api.devhelm.io
    description: Production
security:
  - BearerAuth: []
tags:
  - name: Alert Channels
    description: Alert channel CRUD and connectivity testing
  - name: Alert Deliveries
    description: 'Delivery audit trail: inspect per-attempt details for alert deliveries'
  - name: API Auth
    description: Identity and quota info for API key authentication
  - name: API Keys
    description: Organization API key management
  - name: Audit Log
    description: Organization audit trail
  - name: Check Results
    description: Query raw check results, uptime statistics, and summary data
  - name: Dashboard
    description: Overview dashboard aggregates
  - name: Deploy Lock
    description: Mutex for CLI deploy operations
  - name: Environments
    description: Variable namespace management for monitors
  - name: Forensics
    description: >-
      Detection engine event-sourced history (policy snapshots, rule
      evaluations, state transitions)
  - name: Heartbeat
    description: Public ping endpoint for heartbeat monitors
  - name: Incident Policies
    description: Manage trigger, confirmation, and recovery rules for monitors
  - name: Incidents
    description: Incident management and lifecycle
  - name: Integrations
    description: Static catalog of supported alert channel integrations
  - name: Invites
    description: Organization invite management
  - name: Maintenance Windows
    description: Schedule alert-suppression windows for monitors
  - name: Members
    description: Organization member management
  - name: Monitor Alert Channels
    description: Manage alert channel mappings for a monitor
  - name: Monitor Assertions
    description: Manage assertions for a monitor
  - name: Monitor Auth
    description: Manage authentication configuration for a monitor
  - name: Monitors
    description: Monitor CRUD and lifecycle management
  - name: Notification Dispatches
    description: >-
      Dispatch debugging API: inspect which policies matched an incident and
      track delivery status
  - name: Notification Policies
    description: Org-level notification routing policies with JSONB match rules
  - name: Notifications
    description: In-app notification center
  - name: Organizations
    description: Organization management
  - name: Resource Groups
    description: Resource group CRUD and member management
  - name: Secrets
    description: Organization environment secret management
  - name: Service Subscriptions
    description: Manage which services an organization tracks
  - name: Status Data
    description: Public service status catalog, components, uptime, and incident history
  - name: Status Pages
    description: Status page management
  - name: Tags
    description: Org-scoped tag management for monitors
  - name: Vault
    description: Organization vault management (admin-only)
  - name: Webhooks
    description: Webhook endpoint management, event catalog, and delivery history
  - name: Workspaces
    description: Workspace management within an organization
paths:
  /api/v1/monitors/{id}/results:
    get:
      tags:
        - Check Results
      summary: List raw check results
      description: >-
        Returns check results for the given monitor with optional time-range,
        region, and pass/fail filtering. Uses cursor-based pagination — pass the
        returned `cursor` value on subsequent requests to retrieve the next
        page. The cursor encodes the original time bounds, so `from`/`to` are
        ignored when a cursor is present.
      operationId: getResults
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
        - name: from
          in: query
          description: Start of time range (ISO 8601, inclusive); defaults to 24 hours ago
          required: false
          schema:
            type: string
            format: date-time
        - name: to
          in: query
          description: End of time range (ISO 8601, inclusive); defaults to now
          required: false
          schema:
            type: string
            format: date-time
        - name: cursor
          in: query
          description: Opaque cursor from a previous response for pagination
          required: false
          schema:
            type: string
        - name: limit
          in: query
          description: Maximum results per page (1–200)
          required: false
          schema:
            type: integer
            format: int32
            default: 50
          example: 50
        - name: region
          in: query
          description: Filter by region (e.g. us-east)
          required: false
          schema:
            type: string
        - name: passed
          in: query
          description: Filter by pass/fail status
          required: false
          schema:
            type: boolean
      responses:
        '200':
          description: Paginated check results
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/CursorPageCheckResultDto'
        '400':
          description: Invalid query parameters
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/CursorPageCheckResultDto'
        '401':
          description: Unauthorized — missing or invalid credentials
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Monitor does not belong to the caller's org
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/CursorPageCheckResultDto'
        '404':
          description: Monitor not found
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/CursorPageCheckResultDto'
        '409':
          description: Conflict — the request collides with current resource state
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error — see the message field for details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '502':
          description: Bad gateway — an upstream provider returned an error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: Service unavailable — try again shortly
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    CursorPageCheckResultDto:
      required:
        - data
        - hasMore
      type: object
      properties:
        data:
          type: array
          description: Items on this page
          items:
            $ref: '#/components/schemas/CheckResultDto'
        nextCursor:
          type: string
          description: Opaque cursor for the next page; null when there are no more results
          nullable: true
        hasMore:
          type: boolean
          description: Whether more results exist beyond this page
      description: Cursor-paginated response for time-series and append-only data
    ErrorResponse:
      required:
        - code
        - message
        - status
        - timestamp
      type: object
      properties:
        status:
          type: integer
          description: HTTP status code (mirrors the response status line)
          format: int32
          example: 404
        code:
          type: string
          description: >-
            Coarse machine-readable error category (e.g. NOT_FOUND,
            RATE_LIMITED); stable per status
          example: NOT_FOUND
        message:
          type: string
          description: Human-readable error message; safe to surface to end users
          example: Monitor not found
        timestamp:
          type: integer
          description: Server time when the error was produced (epoch milliseconds)
          format: int64
          example: 1737302400000
        requestId:
          type: string
          description: >-
            Opaque per-request id; same value as the X-Request-Id response
            header. Use in support tickets.
          nullable: true
          example: 5b6f7a8c-1234-4d5e-9f0a-1b2c3d4e5f6a
        errors:
          type: array
          description: >-
            Structured per-field rejections; populated for validation errors,
            null otherwise
          nullable: true
          items:
            nullable: true
            allOf:
              - $ref: '#/components/schemas/ErrorEntry'
      description: Uniform error envelope returned for every non-2xx response
      example:
        status: 404
        code: NOT_FOUND
        message: Monitor not found
        timestamp: 1737302400000
        requestId: 5b6f7a8c-1234-4d5e-9f0a-1b2c3d4e5f6a
    CheckResultDto:
      required:
        - id
        - region
        - timestamp
        - passed
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the check result
          format: uuid
        timestamp:
          type: string
          description: Timestamp when the check was executed (ISO 8601)
          format: date-time
        region:
          type: string
          description: Region where the check was executed
          example: us-east
        responseTimeMs:
          type: integer
          description: Response time in milliseconds
          format: int32
          nullable: true
          example: 123
        passed:
          type: boolean
          description: Whether the check passed
          example: true
        failureReason:
          type: string
          description: Reason for failure when passed=false
          nullable: true
        severityHint:
          type: string
          description: >-
            Severity hint: 'down' for hard failures, 'degraded' for warn-only
            failures, null when passing
          nullable: true
        details:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/CheckResultDetailsDto'
        checkId:
          type: string
          description: Unique execution trace ID for cross-service correlation
          format: uuid
          nullable: true
      description: A single check result from a monitor run
    ErrorEntry:
      required:
        - code
        - message
      type: object
      properties:
        code:
          minLength: 1
          type: string
          description: >-
            Stable machine-readable code; see ValidationErrorCode for the
            registry
          example: MONITOR_HEARTBEAT_GRACE_EXCEEDS_INTERVAL
        field:
          type: string
          description: >-
            JSON-pointer-like path to the offending field, or null for
            request-wide errors
          nullable: true
          example: config.gracePeriod
        message:
          minLength: 1
          type: string
          description: Human-readable message; safe to surface to end users
      description: One structured validation rejection
    CheckResultDetailsDto:
      type: object
      properties:
        statusCode:
          type: integer
          description: HTTP status code of the response
          format: int32
          nullable: true
          example: 200
        responseHeaders:
          type: object
          additionalProperties:
            type: array
            description: HTTP response headers
            nullable: true
            items:
              type: string
              description: HTTP response headers
              nullable: true
          description: HTTP response headers
          nullable: true
        responseBodySnapshot:
          type: string
          description: Raw response body snapshot (may be HTML, XML, JSON, or plain text)
          nullable: true
        assertionResults:
          type: array
          description: Individual assertion evaluation results
          nullable: true
          items:
            $ref: '#/components/schemas/AssertionResultDto'
        tlsInfo:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/TlsInfoDto'
        redirectCount:
          type: integer
          description: Number of HTTP redirects followed
          format: int32
          nullable: true
          example: 2
        redirectTarget:
          type: string
          description: Final URL after redirects
          nullable: true
        responseSizeBytes:
          type: integer
          description: Response body size in bytes
          format: int32
          nullable: true
          example: 4096
        checkDetails:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/CheckTypeDetailsDto'
      description: Type-specific details captured during a check execution
    AssertionResultDto:
      required:
        - severity
        - type
        - passed
      type: object
      properties:
        type:
          type: string
          description: Assertion type
          example: status_code
        passed:
          type: boolean
          description: Whether the assertion passed
        severity:
          type: string
          description: Assertion severity
          enum:
            - fail
            - warn
        message:
          type: string
          description: Human-readable result message
          nullable: true
        expected:
          type: string
          description: Expected value
          nullable: true
          example: '200'
        actual:
          type: string
          description: Actual value observed
          nullable: true
          example: '503'
      description: Result of evaluating a single assertion against a check result
    TlsInfoDto:
      type: object
      properties:
        subjectCn:
          type: string
          description: Certificate subject common name
          nullable: true
          example: '*.example.com'
        subjectSan:
          type: array
          description: Subject Alternative Names
          nullable: true
          items:
            type: string
            description: Subject Alternative Names
        issuerCn:
          type: string
          description: Issuer common name
          nullable: true
          example: R3
        issuerOrg:
          type: string
          description: Issuer organisation
          nullable: true
          example: Let's Encrypt
        notBefore:
          type: string
          description: Certificate validity start (ISO 8601 UTC)
          nullable: true
        notAfter:
          type: string
          description: Certificate validity end (ISO 8601 UTC)
          nullable: true
        serialNumber:
          type: string
          description: Certificate serial number
          nullable: true
        tlsVersion:
          type: string
          description: TLS protocol version
          nullable: true
          example: TLSv1.3
        cipherSuite:
          type: string
          description: Negotiated cipher suite
          nullable: true
        chainValid:
          type: boolean
          description: Whether the chain validated against the OS trust store
          nullable: true
      description: TLS/SSL certificate details for HTTPS targets
    CheckTypeDetailsDto:
      description: Check-type-specific details — polymorphic by check_type discriminator
      discriminator:
        propertyName: check_type
        mapping:
          http:
            $ref: '#/components/schemas/Http'
          tcp:
            $ref: '#/components/schemas/Tcp'
          icmp:
            $ref: '#/components/schemas/Icmp'
          dns:
            $ref: '#/components/schemas/Dns'
          mcp_server:
            $ref: '#/components/schemas/McpServer'
          code:
            $ref: '#/components/schemas/Code'
      oneOf:
        - $ref: '#/components/schemas/Http'
        - $ref: '#/components/schemas/Tcp'
        - $ref: '#/components/schemas/Icmp'
        - $ref: '#/components/schemas/Dns'
        - $ref: '#/components/schemas/McpServer'
        - $ref: '#/components/schemas/Code'
    Http:
      type: object
      description: HTTP check-type-specific details
      properties:
        check_type:
          type: string
          enum:
            - http
        timing:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/TimingPhasesDto'
        bodyTruncated:
          type: boolean
          description: Whether the response body was truncated before storage
          nullable: true
      required:
        - check_type
    Tcp:
      required:
        - check_type
        - host
        - port
        - connected
      type: object
      description: TCP check-type-specific details
      properties:
        check_type:
          type: string
          enum:
            - tcp
        host:
          type: string
          description: Target host
          example: db.example.com
        port:
          type: integer
          description: Target port
          format: int32
          example: 5432
        connected:
          type: boolean
          description: Whether a TCP connection was established
    Icmp:
      required:
        - check_type
        - host
      type: object
      description: ICMP (ping) check-type-specific details
      properties:
        check_type:
          type: string
          enum:
            - icmp
        host:
          type: string
          description: Target host
          example: 1.1.1.1
        packetsSent:
          type: integer
          description: Number of ICMP packets sent
          format: int32
          nullable: true
        packetsReceived:
          type: integer
          description: Number of ICMP packets received
          format: int32
          nullable: true
        packetLoss:
          type: number
          description: Packet loss percentage
          format: double
          nullable: true
          example: 0
        avgRttMs:
          type: number
          description: Average round-trip time in ms
          format: double
          nullable: true
        minRttMs:
          type: number
          description: Minimum round-trip time in ms
          format: double
          nullable: true
        maxRttMs:
          type: number
          description: Maximum round-trip time in ms
          format: double
          nullable: true
        jitterMs:
          type: number
          description: Jitter in ms
          format: double
          nullable: true
    Dns:
      type: object
      description: DNS check-type-specific details
      properties:
        check_type:
          type: string
          enum:
            - dns
        hostname:
          type: string
          description: Target hostname
          nullable: true
        requestedTypes:
          type: array
          description: Requested DNS record types
          nullable: true
          items:
            type: string
            description: Requested DNS record types
            nullable: true
        usedResolver:
          type: string
          description: Resolver used for lookup
          nullable: true
        records:
          type: object
          additionalProperties:
            type: array
            description: Resolved DNS records keyed by record type
            nullable: true
            items:
              type: object
              additionalProperties:
                type: object
                description: Resolved DNS records keyed by record type
                nullable: true
              description: Resolved DNS records keyed by record type
              nullable: true
          description: Resolved DNS records keyed by record type
          nullable: true
        attempts:
          type: array
          description: DNS resolution attempts
          nullable: true
          items:
            type: object
            additionalProperties:
              type: object
              description: DNS resolution attempts
              nullable: true
            description: DNS resolution attempts
            nullable: true
        failureKind:
          type: string
          description: Kind of DNS failure, if any
          nullable: true
      required:
        - check_type
    McpServer:
      type: object
      description: MCP server check-type-specific details
      properties:
        check_type:
          type: string
          enum:
            - mcp_server
        url:
          type: string
          description: MCP server URL
          nullable: true
        protocolVersion:
          type: string
          description: MCP protocol version
          nullable: true
        serverInfo:
          type: object
          additionalProperties:
            type: object
            description: MCP server info (name, version, etc.)
            nullable: true
          description: MCP server info (name, version, etc.)
          nullable: true
        toolCount:
          type: integer
          description: Number of tools exposed
          format: int32
          nullable: true
        resourceCount:
          type: integer
          description: Number of resources exposed
          format: int32
          nullable: true
        promptCount:
          type: integer
          description: Number of prompts exposed
          format: int32
          nullable: true
      required:
        - check_type
    Code:
      type: object
      description: Code check (browser / multi-step API) specific details
      properties:
        check_type:
          type: string
          enum:
            - code
        exitCode:
          type: integer
          description: Container exit code (0 = pass)
          format: int32
        stdoutSnippet:
          type: string
          description: Truncated stdout from the container
          nullable: true
        stderrSnippet:
          type: string
          description: Truncated stderr from the container
          nullable: true
        steps:
          type: array
          description: Named steps extracted from Playwright test output
          nullable: true
          items:
            nullable: true
            allOf:
              - $ref: '#/components/schemas/CodeCheckStep'
      required:
        - check_type
        - exitCode
    TimingPhasesDto:
      type: object
      properties:
        dns_ms:
          type: integer
          description: DNS resolution time in milliseconds
          format: int32
          nullable: true
          example: 12
        tcp_ms:
          type: integer
          description: TCP connect time in milliseconds
          format: int32
          nullable: true
          example: 18
        tls_ms:
          type: integer
          description: TLS handshake time in milliseconds (null for plain HTTP)
          format: int32
          nullable: true
          example: 34
        ttfb_ms:
          type: integer
          description: Time to first response byte in milliseconds
          format: int32
          nullable: true
          example: 42
        download_ms:
          type: integer
          description: Response body download time in milliseconds
          format: int32
          nullable: true
          example: 8
        total_ms:
          type: integer
          description: Total wall-clock request time in milliseconds
          format: int32
          nullable: true
          example: 114
      description: Per-phase HTTP request timing breakdown (milliseconds)
    CodeCheckStep:
      required:
        - name
        - status
      type: object
      properties:
        name:
          type: string
          description: Step name from test.step() or test() call
        status:
          type: string
          description: 'Step outcome: passed, failed, skipped, or timedOut'
        durationMs:
          type: integer
          description: Step duration in milliseconds
          format: int32
          nullable: true
        error:
          type: string
          description: Error message if the step failed
          nullable: true
      description: A single named step within a code check execution
  securitySchemes:
    BearerAuth:
      type: http
      description: API key (dh_live_...) or Auth0 JWT token
      scheme: bearer
      bearerFormat: JWT

````