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

# Get Organization Monitor Statistics

> Retrieve monitor totals, breakdowns and recent check activity across your project

## Overview

Return a summary of all monitors in your organization's project: how many there are, how they split by type, lifecycle status and configured probe location, and the 10 most recent check results from the last 24 hours. Deleted monitors are not counted.

For availability and response-time figures of a single monitor, use [Get Monitor Statistics](/api-reference/monitors/stats).

```
GET https://api.uptimeio.com/api/monitors/stats
```

## Authentication

| Header | Required | Description |
| - | - | - |
| `X-API-Key` | Yes (or a Bearer token) | Any API key, including read-only keys. See [Authentication](/api-reference/authentication). |
| `X-Project-ID` | No | Project to summarize. Defaults to your organization's default project. |

## Parameters

This endpoint takes no path or query parameters.

## Response

### 200 OK

```json theme={null}
{
  "success": true,
  "data": {
    "total_monitors": 12,
    "by_type": { "HTTP": 8, "ICMP": 2, "HEARTBEAT": 2 },
    "by_status": { "active": 10, "paused": 2 },
    "by_region": { "Amsterdam": 7, "Los Angeles": 5 },
    "recent_activity": [
      {
        "monitor_id": "550e8400-e29b-41d4-a716-446655440000",
        "monitor_name": "Production API",
        "success": true,
        "response_time_ms": 184,
        "status_code": 200,
        "checked_at": "2026-09-30T10:15:02.000Z"
      }
    ]
  }
}
```

| Field | Type | Description |
| - | - | - |
| `total_monitors` | integer | Number of monitors in the project. |
| `by_type` | object | Monitor count per type (`HTTP`, `KEYWORD`, `ICMP`, `TCP`, `DNS`, `HEARTBEAT`). Types with no monitors are omitted. |
| `by_status` | object | Monitor count per **lifecycle** status: `active`, `paused` or `disabled`. This is not the up/down state; use [Get Monitor Statistics](/api-reference/monitors/stats) for `runtime_status`. Statuses with no monitors are omitted. |
| `by_region` | object | Monitor count per probe location, keyed by the city name of the location (for example `Amsterdam`). See [Probe locations](/monitors/probe-locations). Locations that cannot be resolved are grouped under `Unknown`. A monitor configured with several regions is counted in each. Monitors that use automatic region selection have no configured regions and are not counted here. |
| `recent_activity` | array | The latest check results from the last 24 hours across all monitors, newest first, at most 10. |
| `recent_activity[].monitor_id` | UUID | Monitor the result belongs to. |
| `recent_activity[].monitor_name` | string | Monitor name. |
| `recent_activity[].success` | boolean | Whether the check succeeded. |
| `recent_activity[].response_time_ms` | integer \| null | Response time in milliseconds. |
| `recent_activity[].status_code` | integer \| null | HTTP status code, when the check type has one. |
| `recent_activity[].checked_at` | string | ISO 8601 time of the check. |

<Note>
  Heartbeat monitors do not run checks, so they count toward `total_monitors` and `by_type` but never appear in `recent_activity`.
</Note>

## Errors

| Code | Status | Meaning |
| - | - | - |
| `AUTHENTICATION_REQUIRED` / `MISSING_AUTH` / `INVALID_API_KEY` | 401 | Missing or invalid credentials. |
| `INTERNAL_ERROR` | 500 | The statistics could not be computed. |

## Examples

<CodeGroup>
  ```bash cURL theme={null}
  curl "https://api.uptimeio.com/api/monitors/stats" \
    -H "X-API-Key: YOUR_API_KEY"
  ```

  ```javascript JavaScript theme={null}
  const res = await fetch('https://api.uptimeio.com/api/monitors/stats', {
    headers: { 'X-API-Key': process.env.UPTIMEIO_API_KEY },
  });
  const { data } = await res.json();
  console.log(`${data.total_monitors} monitors, ${data.by_status.paused ?? 0} paused`);
  ```

  ```python Python theme={null}
  import os
  import requests

  res = requests.get(
      "https://api.uptimeio.com/api/monitors/stats",
      headers={"X-API-Key": os.environ["UPTIMEIO_API_KEY"]},
  )
  print(res.json()["data"]["total_monitors"])
  ```
</CodeGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.