# Web + News Search Monitor

> Web + News Search Monitor is a paid API for AI agents from agent-search.centorprat.workers.dev, paid per call via x402, $0.006/call, status unknown (last checked 2026-10-30).

Polls web or news search results for a query and returns only new (unseen) results since the last call, using a watchId to track state.

## Facts

- Endpoint: POST https://agent-search.centorprat.workers.dev/watch?utm_source=zero.xyz
- Price: $0.006/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-30
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/web-news-search-monitor-9329b97d
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_HEDxsUtwouNe2fi5Tf0Pl

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability web-news-search-monitor-9329b97d -d '<json body>'
```

Example prompt: Keep an eye on news about 'OpenAI GPT-5' and every time I check in, only show me articles I haven't seen before — use watchId 'openai-gpt5-watch', look at results from the past day, and give me up to 10 new results.

## When to prefer this

Choose this endpoint when an agent needs to repeatedly poll a search query over time and must avoid re-processing URLs it has already seen — for example, in monitoring loops, alert pipelines, or any agentic workflow where token efficiency matters. Prefer it over a plain search endpoint whenever the use case involves recurrent polling rather than a one-shot lookup.

## Known failure modes

- watchId not provided on a subsequent call — treated as a new watch, losing dedup state
- watchId shorter than 8 or longer than 64 characters — rejected
- kind value other than 'web' or 'news' — may default or error
- hours parameter used on web (non-news) kind — ignored or error
- query not provided — required field missing error
- time freshness value not matching allowed enum (hour/day/week/month/year) — rejected
- watch state expires after 60 days — all results appear new again

## How this service works

Monitor a topic: call with a query (web or news) and a watchId; each call returns only the results you have not seen before (newResults) plus the full list, so polling agents stop re-reading old links and spending tokens on them. No setup: the first call creates the watch. Hashed URLs only, kept 60 days; the query text is never stored.

## Output

Returns two lists: 'newResults' containing only URLs/results the agent has not seen in previous calls for this watchId, and a full result list. URLs are stored as hashes (not raw text) for 60 days. The first call initializes the watch automatically with no prior setup required.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "kind": {
   "type": "string",
   "description": "web | news (default web)"
  },
  "time": {
   "type": "string",
   "description": "freshness: hour, day, week, month or year (optional)"
  },
  "hours": {
   "type": "integer",
   "description": "news only: window in hours"
  },
  "query": {
   "type": "string",
   "description": "What to search for"
  },
  "country": {
   "type": "string",
   "description": "2-letter country the results are for: us, gb, de, es, fr, in, br, ... (default us)"
  },
  "private": {
   "type": "boolean",
   "description": "true = the query is not logged or cached (default false)"
  },
  "watchId": {
   "type": "string",
   "description": "8-64 chars; leave out on the first call"
  },
  "numResults": {
   "type": "integer",
   "description": "1-20"
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/web-news-search-monitor-9329b97d/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agent-search.centorprat.workers.dev](https://www.zero.xyz/host/agent-search.centorprat.workers.dev/llms.txt)
