---
title: "Create or find a check"
method: POST
path: "/api/v3/checks/"
tags: ["Management API v3"]
---

# Create or find a check

`POST /api/v3/checks/`

## Request

- Base URL: `https://watchgoose.com`
- URL: `https://watchgoose.com/api/v3/checks/`
- Auth: API key in header `X-Api-Key`

Authentication: provide a read-write project API key in the preferred X-Api-Key header. Read-only keys are not accepted for this operation. As an alternative on this POST request, api_key may be supplied in the JSON body.

## Request body

- CheckWrite: Writable check fields. Schedule or timeout selects the check type; neither is universally required.
  - `api_key` string: Management POST requests may include the project API key here instead of using the preferred X-Api-Key header.
  - `name` string
  - `slug` string
  - `tags` string
  - `desc` string
  - `timeout` integer
  - `grace` integer
  - `schedule` string
  - `tz` string
  - `channels` string: Comma-separated channel UUIDs or names, * for all, or an empty string for none.
  - `manual_resume` boolean
  - `methods` '' | 'POST'
  - `subject` string
  - `subject_fail` string
  - `start_kw` string
  - `success_kw` string
  - `failure_kw` string
  - `filter_subject` boolean
  - `filter_body` boolean
  - `filter_http_body` boolean
  - `filter_default_fail` boolean
  - `unique` string[]: On create, reuse a check matching all supplied fields in this list.

## Response `200`

Successful response.

- Check
  - `uuid` string, uuid
  - `unique_key` string
  - `name` string, required
  - `slug` string, required
  - `tags` string, required
  - `desc` string, required
  - `grace` integer, required: Grace period in seconds.
  - `n_pings` integer, required
  - `status` 'new' | 'up' | 'grace' | 'down' | 'paused', required
  - `started` boolean, required
  - `last_ping` string, date-time, nullable, required
  - `next_ping` string, date-time, nullable, required
  - `manual_resume` boolean, required
  - `methods` '' | 'POST', required
  - `subject` string, required
  - `subject_fail` string, required
  - `start_kw` string, required
  - `success_kw` string, required
  - `failure_kw` string, required
  - `filter_subject` boolean, required
  - `filter_body` boolean, required
  - `filter_http_body` boolean, required
  - `filter_default_fail` boolean, required
  - `badge_url` string, uri, required
  - `last_duration` integer: Last run duration in seconds.
  - `ping_url` string, uri
  - `update_url` string, uri
  - `pause_url` string, uri
  - `resume_url` string, uri
  - `channels` string: Comma-separated channel UUIDs.
  - `timeout` integer: Period in seconds for simple checks.
  - `schedule` string: Cron or OnCalendar expression.
  - `tz` string: IANA time zone used by the schedule.

## Other responses

- `201`: Check created.
- `400`: Invalid request.
- `401`: Missing or invalid API key.
- `403`: The project has reached its check limit.

---

[API](https://skmtc.dev/watchgoose/apis/watchgoose-apis.md) · [All operations](https://skmtc.dev/watchgoose/apis/watchgoose-apis/llms.txt) · [OpenAPI document](https://skmtc.dev/watchgoose/apis/watchgoose-apis/revisions/58049c9559bb?raw)
