Monitoring tools
Monitors that repeat other tools' calls on a schedule and report what changed: mentions, posts, pages, ads, rankings and AI answers. The tools are free; checks pay for their calls.
Make and read monitors: checks Manifold repeats on a schedule, keeping what each one saw so the next can say what changed. These tools are free. Each check charges for the calls it makes, at their usual prices, and monitoring_create_monitor with preview true returns the monthly estimate before anything is made. For what each kind of monitor is for, see the monitor pages.
| Tool | What it does | Cost |
|---|---|---|
monitoring_create_monitor | Create a monitor | Free |
monitoring_get_monitors | List your monitors | Free |
monitoring_get_changes | Get what monitors found | Free |
monitoring_get_history | Get a monitor's history | Free |
monitoring_update_monitor | Change or pause a monitor | Free |
monitoring_delete_monitor | Delete a monitor | Free |
Create a monitor
monitoring_create_monitorSets up a monitor: a check Manifold repeats on a schedule, keeping each result so it can report what changed. Urgent changes reach the user as an email alert. Show the monthly cost from preview first, then create it once the user agrees. Give it a description saying why the user wants it, so an agent reading its changes later knows what to do with them.
"monitor this every week", "keep an eye on X", "tell me when Y changes", "check Z every hour", or the user ran the same check by hand before and wants it repeated.
- A one-off look, call the tool itself (
reddit_search_posts,seo_get_page,seo_get_position,ads_get_advertiser_ads). - Reading what a monitor found, use
monitoring_get_changes.
One record with monitor (monitor_id, name, description, preset, status, cadence, fields, est_credits_check, est_credits_month, next_check_at), created (false on preview). The first check runs within five minutes and records a starting point; changes are reported from the second check on. Fields by preset: mentions {keywords (up to 10), platforms (reddit, linkedin, instagram, tiktok, youtube; default reddit), communities (Reddit, every new post read in full), pages (1 to 3 per community per check)}, where Instagram searches each keyword as one hashtag ("acme crm" reads #acmecrm), so use a keyword people tag; social_accounts {accounts [{platform (twitter, linkedin, instagram, tiktok, youtube, facebook), account (handle, or URL for facebook and linkedin)}] (1 to 10)}; reviews {items [{source app_store or google_play, app_id} or {source google_maps, place_id or cid} or {source google_shopping, product_id, gid}] (1 to 5), stars, location}; website_changes {pages (1 to 10 URLs), mode (new_items: new links under the page and prices; any_change: new text), words}; ads {brands (1 to 5, a website works best), platforms (facebook, google, linkedin, tiktok)}; google_rankings {site, keywords (1 to 50), location}; ai_visibility {brand, aliases (other names for the brand, up to 5), domain (the brand's site, for citation share), questions (1 to 25; ones that name the brand are counted apart), competitors (up to 9), engines, samples (1 to 3), location, language}. cadence is hourly, daily or weekly; checks repeat from the first one. A bad field is InvalidTarget naming it.
0 credits to create. Each check charges for the calls it makes at their own prices, shown as est_credits_check and est_credits_month. Monitor checks read live data, never the cache.
Parameters
| Parameter | Default and notes |
|---|---|
preset | Required. One of mentions, social_accounts, reviews, website_changes, ads, google_rankings, ai_visibility. What to watch; the description lists each preset's fields. |
fields | Required. The preset's fields, as the description lists them. |
name | Default: made from the fields. |
description | Why the user wants it and what to do with a change, in a sentence or two, so whoever reads its changes later knows. Default: a line made from the fields. |
cadence | Default hourly for mentions and social_accounts, daily for reviews, website_changes and ads, weekly for google_rankings and ai_visibility. |
preview | Default false. Return the monitor and its monthly cost without creating it. |
{
"preset": "mentions",
"fields": {
"keywords": [
"acme crm"
],
"platforms": [
"reddit",
"linkedin"
]
},
"description": "Threads asking for a CRM, to answer while they are fresh.",
"preview": true
}List your monitors
monitoring_get_monitorsThe workspace's monitors, with their schedule, cost and how many changes are new.
"what am I monitoring", "which monitors do we have", before changing or deleting one, or to find a monitor_id.
- The changes themselves, use
monitoring_get_changes. - A monitor's numbers over time, use
monitoring_get_history.
A list. Each row has monitor_id, name, description (what it is for, as its maker wrote it), preset, status (active or paused), paused_reason (user, credits or spend_cap), cadence (hourly, daily or weekly), fields, est_credits_check, est_credits_month, credits_this_month, new_changes (since the workspace last opened it), headline (the last check's main number) and headline_label, warnings (where the last check read less than it should), next_check_at, last_check_at, made_in (the host or app that made it).
0 credits.
{}Get what monitors found
monitoring_get_changesWhat the workspace's monitors found: new mentions and spikes in them, new posts and posts taking off, reviews, new jobs, prices and text on watched pages, ads that start and stop and a brand's first ads, ranking moves, and moves, new citations and new brands in AI answers, oldest first from since.
"what changed this week", "anything new from my monitors", "what did the mentions monitor find", or to follow up on a monitor email.
- A fresh look right now, call the underlying tool.
- The numbers over time, use
monitoring_get_history.
A list, oldest first. Each row has change_id, monitor_id, monitor_name, kind, urgent (sent as an alert), summary, url, quote (the post, review or page text; cleared after 30 days), before, after, details (author, likes, comments, views, platform where known; cleared after 30 days), found_at. next_since is the value to pass as since next time; dedupe on change_id. More rows than limit come back with meta.cursor.
0 credits.
Parameters
| Parameter | Default and notes |
|---|---|
monitor_id | One monitor. Default: every monitor. |
since | ISO 8601. Default seven days ago. Pass next_since from the last call. |
limit | Default 50. At most 200. |
It also takes the common parameters cursor.
{
"since": "2026-10-13T00:00:00Z"
}Get a monitor's history
monitoring_get_historyOne monitor's checks over time: its main number each check, the breakdown and what each check cost.
"is our AI visibility going up", "how many new threads a week", "show the trend", or to explain a change against earlier checks.
- The individual changes, use
monitoring_get_changes. - The list of monitors, use
monitoring_get_monitors.
A list, newest first. Each row has check_id, checked_at, status (done or failed), baseline (the first check, a starting point), headline, series (ai_visibility: the brand's share per engine, all (the mean of the engines), margin (its 95% margin), cited and cited:website_changes: changes per site; google_rankings: ranked, top10 and kw:
0 credits.
Parameters
| Parameter | Default and notes |
|---|---|
monitor_id | Required. From monitoring_get_monitors. |
limit | Default 12. Checks, newest first. At most 100. |
{
"monitor_id": "trk_01J..."
}Change or pause a monitor
monitoring_update_monitorPauses, resumes, renames, describes or reschedules a monitor, changes what it checks, or runs a check now.
"pause the Reddit monitor", "check daily instead", "run it now", "call it Rivals", "add r/startups to it", or a monitor paused for credits after the user added more.
- Changing its preset; create a new monitor.
- Deleting, use
monitoring_delete_monitor.
One record with monitor, as monitoring_get_monitors returns it. New fields replace all the old ones; the next check runs within five minutes as a new starting point and reports no changes.
0 credits. A check run now charges its calls as a scheduled one would.
Parameters
| Parameter | Default and notes |
|---|---|
monitor_id | Required. From monitoring_get_monitors. |
status | Paused stops its checks; active resumes them. |
name | Optional |
description | Replaces the description; empty puts back the line made from the fields. |
cadence | One of hourly, daily, weekly. |
fields | All of the preset's fields, as monitoring_create_monitor takes them. The next check is a new starting point. |
run_now | Default false. Run a check within five minutes. |
{
"monitor_id": "trk_01J...",
"status": "paused"
}Delete a monitor
monitoring_delete_monitorDeletes a monitor with its history and changes. It cannot be undone.
The user asks to stop and remove a monitor, not just pause it.
- Stopping it for a while, use
monitoring_update_monitorwith status paused, which keeps the history.
One record with monitor_id, deleted.
0 credits.
Parameters
| Parameter | Default and notes |
|---|---|
monitor_id | Required. From monitoring_get_monitors. |
{
"monitor_id": "trk_01J..."
}