---
title: "Get ICMP Monitor Details"
description: "Returns a consolidated payload used by the monitor details page, including the monitor, customer, and aggregated check data for a given time range."
---

`GET /api/icmp-monitors/:icmpMonitorPublicId/details`

## Authentication

Requires a valid session.

- Header: `Authorization: Bearer <token>`

## Parameters

- `icmpMonitorPublicId` (Path, required): ICMP monitor public UUID.

### Time range query parameters

The endpoint supports multiple ways to define the time range. Use the simplest option for your use case:

- `range` (Query, optional): Preset range.
  - Allowed: `day` (default), `week`, `month`, `year`
- `date` (Query, optional): Reference date used as the default end date.
  - Example: `2026-02-26`
- `startDate` (Query, optional): Start date/time.
- `endDate` (Query, optional): End date/time.
- `granularity` (Query, optional): Controls aggregation.
  - Use `raw` to disable aggregation.
  - Any other value enables aggregation.
  - If omitted, the server may aggregate automatically for larger ranges.

If you provide multiple, the server resolves them according to its internal precedence rules.

## cURL

```bash
curl -X GET "https://YOUR_DOMAIN/api/icmp-monitors/22222222-2222-4222-8222-222222222222/details?range=day&granularity=raw" \
  -H "Authorization: Bearer $TOKEN"
```

## Response

Top-level fields (current shape):

- `icmpMonitorId`
- `monitor`
- `latestCheck`
- `uptimeStats`, `uptimeStatsMeta`
- `monitoringData`
- `incidents`
- `alerts`
- `testResultLog`
- `maintenance`

Example:

```json
{
  "icmpMonitorId": 123,
  "monitor": {
    "id": 123,
    "customerId": 10,
    "organizationId": 1,
    "name": "Core Router",
    "hostname": "10.0.0.1",
    "status": "active",
    "checkInterval": 30,
    "timeoutSeconds": 30,
    "port": null,
    "config": { "packetSize": 56, "count": 3 },
    "notificationPhoneNumber": null,
    "notificationEmail": null,
    "lastCheckedAt": null,
    "createdAt": "2026-02-26T12:00:00.000Z",
    "updatedAt": "2026-02-26T12:00:00.000Z"
  },
  "latestCheck": null,
  "uptimeStats": {
    "day": "100.00",
    "month": "100.00",
    "year": "100.00",
    "dayAvgResponse": 22,
    "monthAvgResponse": 22,
    "yearAvgResponse": 22
  },
  "uptimeStatsMeta": {
    "day": { "window": "24h", "downtimeMinutes": 0, "incidents": 0, "checksTotal": 24, "checksFailed": 0 },
    "month": { "window": "30d", "downtimeMinutes": 0, "incidents": 0, "checksTotal": 720, "checksFailed": 0 },
    "year": { "window": "YTD", "downtimeMinutes": 0, "incidents": 0, "checksTotal": 1000, "checksFailed": 0 }
  },
  "monitoringData": {
    "responseTimeData": [
      {
        "timestamp": "2026-02-26T12:00:00.000Z",
        "responseTime": 22,
        "status": "success",
        "success": true,
        "timingDns": 0,
        "timingTcp": 22,
        "timingTls": 0,
        "timingTtfb": 0,
        "timingTransfer": 0
      }
    ],
    "statusData": [{ "date": "26.02", "status": "online" }],
    "uptimePercentage": "100.00",
    "checkSuccessRatePercentage": "100.00",
    "totalChecks": 100,
    "successfulChecks": 100
  },
  "incidents": { "history": [], "total": 0, "ongoing": 0, "totalDowntime": "0s" },
  "alerts": { "history": [], "total": 0, "notificationContext": { "orgDefaultEmail": null, "orgDefaultPhoneNumber": null, "customerEmail": null, "notificationTargets": [] } },
  "testResultLog": [],
  "maintenance": { "inMaintenance": false, "activeWindows": [], "allWindows": [] }
}
```

## Errors

- `400` ICMP monitor public ID (UUID) required
- `401` Unauthorized
- `403` Forbidden
- `404` ICMP monitor not found
- `500` Failed to fetch ICMP monitor details

