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

# Get Device Heartbeat History

> Retrieves the device's heartbeat and connectivity status over the past 24 hours, aggregated hourly. This helps identify periods of downtime or missed check-ins.



## OpenAPI

````yaml /api/en/monitoring-metrics.yaml get /metrics/mikrotik-stats/{siteId}
openapi: 3.0.3
info:
  title: Altostrat Monitoring & Metrics API
  version: 1.0.0
  description: >-
    Retrieve portal-facing metrics through the public `/metrics` gateway path,
    including dashboards, WAN tunnels, interfaces, ARP entries, syslogs, BGP,
    and DNS reports.
servers:
  - url: https://v1.api.altostrat.io
security:
  - bearerAuth: []
tags:
  - name: Dashboard
    description: High-level, aggregated metrics for network performance and data usage.
  - name: WAN Tunnels & Performance
    description: >-
      Endpoints for managing and retrieving performance data from SD-WAN
      tunnels.
  - name: Site Interfaces & Metrics
    description: >-
      Endpoints for listing network interfaces at a site and fetching their
      traffic metrics.
  - name: Device Health & Status
    description: Endpoints for monitoring the health and status of network devices.
  - name: ARP Inventory
    description: >-
      Endpoints for querying and managing the Address Resolution Protocol (ARP)
      table to discover devices on the network.
  - name: Network Logs
    description: Access to system, DNS, and BGP logs for diagnostics and security analysis.
  - name: Grafana Dashboards
    description: List Grafana dashboards, query dashboard panels, and export panel data.
  - name: Prometheus Querying
    description: >-
      Discover available metrics and labels, then execute Prometheus queries
      scoped to your workspace.
paths:
  /metrics/mikrotik-stats/{siteId}:
    get:
      tags:
        - Device Health & Status
      summary: Get Device Heartbeat History
      description: >-
        Retrieves the device's heartbeat and connectivity status over the past
        24 hours, aggregated hourly. This helps identify periods of downtime or
        missed check-ins.
      parameters:
        - $ref: '#/components/parameters/SiteId'
      responses:
        '200':
          description: A list of hourly heartbeat status reports.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DeviceHeartbeat'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '410':
          description: Gone - The specified site ID is incorrect or no longer exists.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  parameters:
    SiteId:
      name: siteId
      in: path
      required: true
      description: The unique identifier for the site.
      schema:
        type: string
        format: uuid
        example: d8f8f8f8-f8f8-f8f8-f8f8-f8f8f8f8f8f8
  schemas:
    DeviceHeartbeat:
      type: object
      properties:
        time_formatted:
          type: string
          description: The hour of the heartbeat check.
          example: '12:00'
        date_formatted:
          type: string
          description: The date of the heartbeat check.
          example: 29 Oct
        missed_heartbeats_percentage:
          type: number
          format: float
          description: >-
            The percentage of the hour that the device was considered down due
            to missed heartbeats.
          example: 0
        total_minutes_down:
          type: number
          format: float
          description: >-
            The total number of minutes the device was considered down during
            this hour.
          example: 0
    ErrorResponse:
      type: object
      properties:
        type:
          type: string
          description: A broad category for the error (e.g., 'invalid_request_error').
          example: invalid_request_error
        code:
          type: string
          description: A short, unique string identifying the specific error.
          example: parameter_invalid
        message:
          type: string
          description: A human-readable description of what went wrong.
          example: The provided 'siteId' is not a valid UUID.
        doc_url:
          type: string
          description: >-
            A direct link to the documentation page for this specific error
            code.
          example: https://docs.altostrat.io/errors/parameter_invalid
  responses:
    Unauthorized:
      description: Unauthorized - The request lacks valid authentication credentials.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````