Browse endpoints

Update a monitor

PATCH /api/v1/monitors/{monitor_uuid} operationId: monitor.update

Base: https://portal.watcheye.com.au/api/v1/monitors/{monitor_uuid}

Update an existing monitor using PATCH semantics: only the fields you supply are changed; everything else is left as-is.

Restrictions

  • monitor_check_type cannot be changed - delete the monitor and create a new one if you need a different operation type.
  • The monitor must not be mid-run (process_status of pending / processing / paused). Attempting to update a mid-run monitor returns 409 Conflict.

Partial config updates

The config object is merged key-by-key with the existing configuration: keys you do not supply are preserved. Required-config rules for the underlying operation only fire for keys you actually supply, so you can safely send a single key (e.g. { "config": { "similarity_threshold": 90 } }) without echoing the entire config.

The full list of configuration keys, allowed values and defaults for every operation type is documented in the Monitor Configuration section of the API guide.

Path parameters

FieldDescription
monitor_uuidrequired string (uuid)

The monitor UUID

Request body

Content type application/json. The monitor fields to update. All fields are optional.

FieldDescription
monitor_name string [3..255 characters]
status string

Enum: active, paused

schedule string

Enum: manual, every_day, weekdays, weekends, monday, tuesday, wednesday, thursday, friday, saturday, sunday, monthly_1, monthly_15, monthly_1_15, quarterly

config object (dynamic)

Per-operation configuration; merged with the existing configuration.

Responses

200

Monitor updated

application/json
FieldDescription
data object

A monitor is a scheduled (or manual) screening job that runs a single screening operation (PEP/sanction, ASIC, address verification, etc.) against the entities in its parent program. The operation type is fixed at creation; only configuration, name, status and schedule can be changed after that.

data.uuid string (uuid)

The monitor's UUID

Example: 5d6c8f93-91d4-4d6a-bb5e-2c64e9a3b1f0

data.monitor_number string

A short obfuscated public identifier for the monitor (e.g. "M-12-34-56")

Example: M-12-34-56

data.monitor_name string

The display name of the monitor

Example: Weekly PEP Sweep

data.monitor_check_type string

The screening operation this monitor runs. Cannot be changed after creation - create a new monitor instead. The list of allowed values depends on the products enabled on the calling account.

Example: pep_sanction_check

data.monitor_check_type_name string

Human-readable name for monitor_check_type (e.g. "PEP & Sanction Check")

Example: PEP & Sanction Check

data.status string

Lifecycle status:

  • active - the monitor runs on its schedule and can be triggered manually
  • paused - the monitor does not run on its schedule and cannot be triggered manually

Enum: active, paused

Example: active

data.process_status string or null

In-flight run state, or null when the monitor is idle:

  • pending - queued
  • processing - currently running
  • failed - the most recent run failed (cleared on next successful run)
  • paused - the run was paused mid-flight (e.g. due to insufficient credit)

Callers polling after POST /monitors/{uuid}/run should wait for this field to transition out of pending/processing before reading results.

Enum: pending, processing, failed, paused

data.process_status_comment string or null

Optional human-readable detail accompanying process_status (e.g. failure message)

data.schedule string

How often the monitor runs unattended. manual means it never runs on its own and must be triggered via the run endpoint.

Enum: manual, every_day, weekdays, weekends, monday, tuesday, wednesday, thursday, friday, saturday, sunday, monthly_1, monthly_15, monthly_1_15, quarterly

Example: weekdays

data.schedule_name string or null

Human-readable description of the schedule (e.g. "Every Day (Mon-Sun)")

Example: Weekdays (Mon-Fri)

data.config object (dynamic)

Per-operation configuration. The shape depends on monitor_check_type; see the Monitor Configuration section of the API guide for the schema of each operation. The portal's monitor create/edit screens render the same fields you'd send here.

data.last_run_at string (date-time) or null

ISO 8601 timestamp of the most recent run, or null if the monitor has never run

Example: 2025-01-15T03:00:00Z

data.has_run_before boolean

true if the monitor has processed at least one entity. Used by the "new" run mode to know whether there is a cursor to resume from.

Example: true

data.program_uuid string (uuid)

UUID of the program this monitor belongs to

Example: 9c3e0a8e-2b9f-4f0e-8d1a-1e2b3c4d5e6f

data.created_at string (date-time)

ISO 8601 timestamp at which the monitor was created

Example: 2025-01-01T00:00:00Z

data.updated_at string (date-time)

ISO 8601 timestamp at which the monitor was last updated

Example: 2025-01-01T00:00:00Z

api_reference string (uuid)
409

Conflict - the monitor cannot be edited in its current state (mid-run)

application/json
FieldDescription
message string

Example: Monitor cannot be edited in its current state

Standard error responses: 400 401 402 403 404 429 5XX See common error responses