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

# Create a monitor

`POST /api/v1/monitors`

## Request

- Base URL: `https://pineprompt.com`
- URL: `https://pineprompt.com/api/v1/monitors`
- Auth: HTTP bearer

Creates a new monitor in the active project. Every monitor binds a set of prompts to one or more AI platforms, in a chosen country and language.

## Headers

- `Pineprompt-Project-Id` integer, required

## Request body

- StoreMonitor
  - `name` string, required: A human-readable name for the monitor. May be up to <strong>120</strong> characters.
  - `platforms` string[], required: The AI platforms you would like the monitor to run against. Each platform must support the chosen `country`; sending an unsupported pair will return a `422` response.
  - `country` string, required: A two-letter <a href='https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2' class='underline'>ISO 3166-1 alpha-2</a> country code, such as `US`, `NL`, or `GB`. Pineprompt stores the value uppercased, so you may send `us` as well.
  - `language` string, required: A two-letter language code, such as `en` or `nl`. The field allows up to 10 characters so that regional variants may be expressed when needed.
  - `is_active` boolean, required: When set to `true`, the monitor will run on its next daily run. When set to `false`, the monitor is paused and consumes no quota.

## Response `201`

Created

- Monitor: A monitor is a configured daily run: a set of prompts bound to one or more AI platforms in a chosen country and language. While a monitor is active, Pineprompt runs it once per day on your behalf.
  - `id` integer: The unique ID of the monitor.
  - `project_id` integer: The ID of the project this monitor runs under.
  - `name` string: The display name of the monitor.
  - `platforms` string[]: The AI platforms the monitor runs against.
  - `country` string: The ISO 3166-1 alpha-2 country code.
  - `language` string: The language the monitor runs in.
  - `is_active` boolean: Whether the monitor will run on its next daily run.
  - `project` Project: A project represents a single brand or site you monitor. Its `brand_id` names the own brand, the brand every core metric is computed for.
    - `id` integer: The unique ID of the project.
    - `organization_id` integer: The ID of the organization that owns the project.
    - `name` string: The display name of the project.
    - `brand_id` integer, nullable: The ID of the project's own brand, or null while none has been designated.
    - `organization` Organization: An organization is the top-level billing entity and tenant boundary in Pineprompt. Every project, member, and API key belongs to exactly one organization.
      - `id` integer: The unique ID of the organization.
      - `name` string: The display name of the organization.
      - `created_at` string, date-time: When the organization was created.
      - `updated_at` string, date-time: When the organization was last updated.
    - `created_at` string, date-time: When the project was created.
    - `updated_at` string, date-time: When the project was last updated.
  - `created_at` string, date-time: When the monitor was created.
  - `updated_at` string, date-time: When the monitor was last updated.

## Other responses

- `400`: Missing project header
- `401`: Unauthorized
- `403`: Missing ability
- `404`: Project not in this organization
- `422`: Validation failed

---

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