Snag Watcher API https://watcher-api-staging.manwhas.shop

Guides

Schedules

JSON
"schedule": {
  "every": "1d",
  "start_at": "2026-12-01T09:00",
  "burst": { "near": "release_date", "window": "48h", "every": "1h" },
  "until": "+90d"
}

Durations are a number and m, h or d.

every

How often it runs. Runs get up to 10% jitter, capped at 5 minutes, so watchers made at the same time don't all fetch at once.

start_at

The first run. A time without an offset is read as UTC.

burst

Runs every burst.every inside window, centered on release_date or opens_at. The center comes from target.attributes, or from a page once a run sees the date. A 48h window runs from a day before to a day after.

burst.every must be shorter than every.

until

ValueStops
"2027-01-31"At the end of that day, UTC
"+30d"30 days after start_at, or after now
"after_first_match"After the first match. Status becomes matched
"never"When you delete it

A watcher runs for at most a year.

Minimum intervals

Each site has a fastest interval. If you ask for faster, we use the site's minimum and list it in clamped; the request isn't refused.

Siteeveryburst.every
Any site5m1m
Amazon30m10m
Nike1h5m
Shopify stores, other stores1h15m
schema.org pages1h30m
GitHub releases30m5m
JSON
"clamped": [{ "field": "schedule.every", "asked": "5m", "used": "30m", "site": "amazon.com", "reason": "amazon.com is checked at most every 30m." }]