---
title: "Trigger Check for TCP Monitor"
description: "Triggers an immediate check from one eligible monitoring location."
---

`POST /api/tcp-monitors/:tcpMonitorPublicId/trigger-check`

## Authentication

Requires a valid session and write access.

- Header: `Authorization: Bearer <token>`

## Parameters

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

## Notes

- The location is chosen deterministically from the currently active monitoring locations (filtered by the monitor's or customer's `allowedCheckCountryCodes`, if set).
- Rate-limited per monitor via a short cooldown; retrying too soon returns `429`.

## cURL

```bash
curl -X POST "https://YOUR_DOMAIN/api/tcp-monitors/44444444-4444-4444-8444-444444444444/trigger-check" \
  -H "Authorization: Bearer $TOKEN"
```

## Response

```json
{
  "success": true,
  "message": "Check triggered successfully",
  "tcpMonitorId": 300,
  "locationCode": "de-nbg",
  "queueName": "tcp-monitor-checks-de-nbg"
}
```

## Errors

- `400` No eligible monitoring locations for the selected allowed countries
- `401` Unauthorized
- `403` Forbidden
- `404` Not found
- `429` Check recently triggered: retry after the cooldown (`retryAfterMs` on the error payload)
- `500` / `503` Failed to trigger check (e.g. "No active monitoring locations available")
