Skip to main content
POST
Create Monitor

Authorizations

X-API-Key
string
header
required

API key for authentication. Get yours from the Promptwatch dashboard under Settings > API Keys.

Body

application/json
name
string
required

Monitor name

Minimum string length: 1
models
string[]
required

List of LLM models to monitor

Minimum array length: 1
description
string | null

Monitor description

languageCode
string
default:en-US

Language code

countryCode
string
default:US

Country code

stateCode
string | null

State code

cityCode
string | null

City code

latitude
number | null

Latitude of the point ChatGPT, Google AI Overviews and Google AI Mode answer from (requires the Local GEO/SEO Targeting feature). Send together with longitude. Other models use the country, state and city.

Required range: -90 <= x <= 90
longitude
number | null

Longitude of the pinned point. Send together with latitude.

Required range: -180 <= x <= 180
locationAccuracy
enum<integer> | null

Accuracy radius of the pinned point in meters. Defaults to 50 when coordinates are sent.

Available options:
20,
50,
100,
500,
1000,
5000,
null
locationName
string | null

Name shown for the pinned point, such as an address. Ignored without coordinates.

Maximum string length: 120
promptFrequency
enum<string> | null

Monitor-level tracking frequency. EVERY_12_HOURS, EVERY_6_HOURS and HOURLY require the Hourly Tracking feature (Business and Agency Scale, or enabled per organization); DAILY requires either Hourly Tracking or Custom Prompt Frequency; EVERY_OTHER_DAY, WEEKLY and MONTHLY require the Custom Prompt Frequency feature. Omit or null to inherit the organization's default frequency.

Available options:
DAILY,
EVERY_OTHER_DAY,
WEEKLY,
MONTHLY,
EVERY_12_HOURS,
EVERY_6_HOURS,
HOURLY,
null
personaId
string<uuid> | null

Persona ID

personaStackingEnabled
boolean

Inject the persona's stackable prompt around each tracked prompt at run time

initialPrompts
object[]

Initial prompts to create with the monitor

generatePrompts
object[]

Optional array of generation batches (max 3, one per prompt type). Each entry triggers one independent call to the prompt generator (batches run in parallel; no prompt text from other batches or from initialPrompts is passed as context). Per-entry amount is 1-50; the sum across all entries must also be <= 50.

Maximum array length: 3

Response

Default Response

id
string<uuid>
required

Monitor unique identifier

name
string
required

Monitor name

active
boolean
required

Whether the monitor is active

models
string[]
required

List of LLM models being monitored

languageCode
string
required

Language code for the monitor

countryCode
string
required

Country code for the monitor

latitude
number | null
required

Latitude of the monitor's pinned point. Null when no point is pinned.

longitude
number | null
required

Longitude of the monitor's pinned point. Null when no point is pinned.

locationAccuracy
integer | null
required

Accuracy radius of the pinned point in meters. Null when no point is pinned.

locationName
string | null
required

Name of the pinned point. Null when none was given.

promptCount
number
required

Number of prompts in this monitor

responseCount
number
required

Total number of responses across all prompts

averageVisibility
number
required

Average visibility score for the monitor within the selected date range

createdAt
string<date-time>
required

Monitor creation timestamp

updatedAt
string<date-time>
required

Monitor last update timestamp

description
string | null

Monitor description

promptFrequency
enum<string> | null

Monitor-level tracking frequency. EVERY_12_HOURS, EVERY_6_HOURS and HOURLY run several times a day on fixed UTC hours. Null inherits the organization's default frequency.

Available options:
DAILY,
EVERY_OTHER_DAY,
WEEKLY,
MONTHLY,
EVERY_12_HOURS,
EVERY_6_HOURS,
HOURLY
responseCountInRange
number

Number of responses created within the selected date range

personaName
string | null

Persona name used for the monitor

personaDescription
string | null

Persona description

personaAgeRange
string | null

Persona age range

personaEducationLevel
string | null

Persona education level