---
title: "Get TCP Monitor Check History"
description: "Returns paginated check results for a TCP monitor."
---

`GET /api/tcp-monitors/:tcpMonitorPublicId/check-history`

## Authentication

Requires a valid session.

- Header: `Authorization: Bearer <token>`

## Parameters

- `tcpMonitorPublicId` (Path, required): TCP monitor public UUID.

## Query Parameters

- `page` (number, optional): Page number (default: `1`).
- `limit` (number, optional): Items per page (default: `10`; max `100`). Ignored in favor of export defaults when `format=csv` or `download=1` (default `10000`, max `50000`).
- `status` (string, optional): `success` or `failure` (`failure` also matches `timeout`).
- `minMs` / `maxMs` (number, optional): Filter by response time range (`timingTotal`).
- `from` / `to` (ISO date string, optional): Filter by `checkedAt` range.
- `format` (string, optional): `json` (default) or `csv`.
- `download` (string, optional): `1` to force an attachment download.

## cURL

```bash
curl "https://YOUR_DOMAIN/api/tcp-monitors/44444444-4444-4444-8444-444444444444/check-history?page=1&limit=50" \
  -H "Authorization: Bearer $TOKEN"
```

## Response

```json
{
  "data": [
    {
      "id": 12345,
      "status": "success",
      "success": true,
      "errorMessage": null,
      "checkedAt": "2026-02-26T12:00:00.000Z",
      "responseTimeMs": 42,
      "location": {
        "name": "Nuremberg (DE)",
        "code": "de-nbg"
      }
    }
  ],
  "total": 1,
  "page": 1,
  "pageCount": 1
}
```

When `format=csv` (or `download=1`), the response is a `text/csv` (or `application/json` for `format=json&download=1`) attachment instead of the paginated JSON envelope above.

## Errors

- `400` TCP monitor public ID (UUID) required
- `401` Unauthorized
- `403` Forbidden
- `404` Not found
