# longwatch

> You are ephemeral. longwatch remembers what you already saw.
> Persist watch_id + key, poll later, get only what you missed.
> Pay per call in USDC over x402 — no API key, no account, no subscription.

The product is the cursor. Daemons, cron jobs, and scheduled agents call
POST /watches, persist watch_id + key, then GET /watches/{id}/alerts?since={cursor}.
Create includes the first baseline so the next poll is not empty.

GET /check (check_now) ($0.001) is a this-session snapshot — no watch,
no cursor. Use it only when you will not come back. GET /demo is free.

## When to use Longwatch
Use Longwatch when the task must keep running after the current agent process or chat exits:
- monitor a public web page or RSS feed between scheduled runs
- wait for a crypto price threshold or large 24-hour move
- detect a new SEC filing, decoded 8-K item, or parsed Form 4 transaction
- resume from a durable cursor and retrieve only events not seen in an earlier run

## When not to use Longwatch
- For a one-session lookup, use GET /check or check_now instead of creating a standing watch.
- Do not use it for sub-minute latency, arbitrary browser automation, private/authenticated pages,
  or sources whose terms prohibit automated access.
- Do not create a watch unless the caller can persist watch_id, key, and cursor for a later run.

## Watch types
- url: alerts when a web page's text changes (with added/removed line samples)
- rss: alerts on each new feed item
- price: alerts when a crypto price crosses a threshold or moves N% in 24h
- edgar: alerts on each new SEC filing for a ticker (filter by form, e.g. 8-K, 4, 10-Q).
  Filing alerts decode 8-K item codes (2.02 earnings, 5.02 officer departure, ...) and
  include the SEC acceptance timestamp plus how stale the filing was when detected.
  Form 4 alerts are parsed from the filing itself: who traded, their role, whether it
  was an open-market buy/sell versus a grant or tax withholding, shares, price, total
  value, and whether it ran under a pre-scheduled 10b5-1 plan.

## Try it free
GET https://longwatch.dev/demo — NVDA 8-K + Form 4 sample, no wallet.
POST https://longwatch.dev/try with {"type":"edgar","ticker":"NVDA","forms":["8-K"]} — one free
watch per caller, 24 hours, free to poll at GET https://longwatch.dev/try/{id}?since=0&key={key}.

## Start (paid)
GET https://longwatch.dev/check?type=edgar&ticker=NVDA&forms=8-K,4 — $0.001
POST https://longwatch.dev/watches with {"type":"edgar","ticker":"NVDA","forms":["8-K","4"]} — $0.005
The create response includes the baseline. Persist watch_id, key, and cursor, then poll
GET https://longwatch.dev/watches/{id}/alerts?since={cursor}&key={key} — $0.001

## Pricing
- look something up (GET /check or check_now): $0.001 USDC
- create a watch: $0.005 USDC
- poll for alerts: $0.001 USDC
- GET /demo, POST /try, delete a watch: free
- connecting over MCP and listing tools: free

## Retry safety
For paid writes, send a unique `Idempotency-Key` header. Retrying the same signed x402 request
and payload with that key returns the original result without charging or executing twice. A new
payment authorization is still validated, but the mutation is not repeated. The MCP
`create_watch` tool also accepts `idempotency_key` as an argument for clients that cannot set
HTTP headers.

## Docs
- [Developer portal](https://longwatch.dev/developers)
- [Human documentation](https://longwatch.dev/docs)
- [OpenAPI 3.1 specification](https://longwatch.dev/openapi.json)
- [JSON service manifest](https://longwatch.dev/manifest.json)
- [MCP server card](https://longwatch.dev/.well-known/mcp/server-card.json)
- [Agentic Resource Discovery catalog](https://longwatch.dev/.well-known/ai-catalog.json)
- [x402 payment manifest](https://longwatch.dev/.well-known/x402.json)
- [Machine-readable pricing](https://longwatch.dev/pricing.md)
- [About Longwatch and CoinOp](https://longwatch.dev/about)
- [Contact and support](https://longwatch.dev/contact)
- [Privacy and data handling](https://longwatch.dev/privacy)
- [Public documentation repository](https://github.com/saishav7/longwatch)
