Create monitor
create_monitorWatch a web page and alert the user when it changes: price drops, restocks, new posts or listings, status changes, competitor updates, any 'tell me when this page changes'. Creates a website monitor that keeps watching after this conversation ends: monity.ai checks the page on a schedule in its own cloud browser, keeps a full-page screenshot and a full HTML copy of the page for every check, and alerts only when the change matters (an AI summary says what changed). Subject to the account plan's monitor limit. compareType AUTO (default) covers most pages; VISUAL for pixel comparison, TEXT for keyword monitoring, HTML for markup diffs. To watch one element pass selector (a CSS selector). Express the full intent in one call: use notifyWhen for a natural-language alert condition ('price drops below $500'), or notifyConditions + outputExtractor/jsonPath for deterministic threshold alerts without AI.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"websiteUrl": "<websiteUrl>"
},
"name": "create_monitor"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Monitor name (defaults to the URL host/path) | |
| labels | No | Label names to file the monitor under (up to 10); existing labels with the same name are reused. | |
| actions | No | Ordered list of interactions to perform before each check, e.g. [{"type":"CLICK","selector":"#accept-cookies"},{"type":"WAIT","value":1500},{"type":"CLICK","selector":".load-more"}]. Use this when the content to watch is behind a cookie banner, a tab, a "show more" control, or a dropdown. Max 20 steps. Script and JS/CSS injection steps are dashboard-only and rejected here. | |
| jsonPath | No | For JSON API endpoints: JSONPath to the value to monitor, e.g. $.data.items[0].price. Starts with '$'. | |
| keywords | No | TEXT monitors only: comma-separated keywords to watch for, e.g. "sold out, unavailable" | |
| selector | No | CSS selector of ONE element to watch instead of the whole page (e.g. '.product-price' or '#stock-status'). Makes an element monitor that is found by this selector on every check; leave compareType unset. | |
| frequency | No | Minutes between checks, as a string: '5', '15', '30', '60' (hourly), '180', '360', '720', '1440' (daily), '10080' (weekly), '302400' (monthly). Omit for the plan default. A frequency faster than the plan allows is raised to the plan minimum. | |
| notifyWhen | No | Natural-language alert condition evaluated by AI on every check, e.g. 'notify me when the price drops below $500' or 'alert when the Pro plan changes'. Mutually exclusive with notifyConditions. | |
| websiteUrl | Yes | Absolute http(s) URL of the page to monitor | |
| compareType | No | Comparison mode (default AUTO) | |
| workspaceId | No | Workspace to create the monitor in (from list_workspaces): one of the workspaces this connection may use. Defaults to the person’s personal workspace when they allowed it. | |
| keywordsAction | No | TEXT monitors only: alert when keywords are ADDED to the page (default) or REMOVED from it | |
| outputExtractor | No | How to extract the monitored value from the page text: NUMBER pulls the first number (good for prices), REGEX applies outputExtractorPattern, NONE keeps the full text. | |
| notifyConditions | No | Deterministic alert conditions on the extracted output (no AI credits). All conditions must pass. Requires the output to change. Mutually exclusive with notifyWhen. Not available for HTML monitors. | |
| outputExtractorPattern | No | Regular expression for outputExtractor: REGEX — bare pattern or /pattern/flags; the first capture group (or full match) becomes the monitored output, e.g. 'In stock: (\d+)' |