---
title: "Create a monitor"
method: POST
path: "/v1/monitor"
tags: ["monitor"]
---

# Create a monitor

`POST /v1/monitor`

## Request

- Base URL: `http://localhost:3030`
- URL: `http://localhost:3030/v1/monitor`
- Auth: HTTP bearer

Creates a monitor that watches a list.

Permits and cases filed on the list's places become `permit.created` and `case.created` events
within a day of being published. Each is listed by `GET /v1/event` and sent to every webhook
subscribed to its type. A place added to the list
later is watched from when it is added. An item's `filter` applies to the parcels each permit or
case is about. A list that already has a monitor returns it with `200`.

## Request body

- MonitorBody
  - `list` string, required: The id of the list to watch.
  - `active` boolean: Whether the monitor produces events. Defaults to `true`.
  - `event_type` string[]: The event types to report. Defaults to all of them.
  - `email_recipient` string[], nullable: Email addresses of members to send a daily summary to. Defaults to the caller's own address when a person creates the monitor, and to none for an API key.

## Response `200`

The list's existing monitor, unchanged.

## Other responses

- `201`: The monitor.
- `401`: `credential_missing`, `credential_invalid` or `credential_expired`. The request has no valid credential.
- `403`: `scope_missing`, `person_required`, `api_key_not_accepted` or `entitlement_missing`. The credential or plan does not allow this request. `detail` names the reason.
- `422`: `parameter_invalid`, `id_malformed` or a cursor code. A parameter is missing or invalid. `errors` lists each one.
- `429`: `rate_limited`. Too many requests. Retry after the `Retry-After` interval. Nothing is charged.

---

[API](https://skmtc.dev/placestack/apis/placestack-api.md) · [All operations](https://skmtc.dev/placestack/apis/placestack-api/llms.txt) · [OpenAPI document](https://skmtc.dev/placestack/apis/placestack-api/revisions/0ccdf0882668?raw)
