Guides
Recipes
Each body goes to POST /v1/watchers. Add your own notify block; it's left out here.
Size back in stock
One size of a product on a Shopify store.
{
"target": { "query": "https://www.allbirds.com/products/mens-wool-runners", "match": "url", "attributes": { "size": 10 } },
"conditions": { "all": [{ "field": "availability", "op": "=", "value": "back_in_stock" }] },
"where": { "sites": ["allbirds.com"] },
"schedule": { "every": "1h", "until": "+30d" }
}back_in_stock is true only on the run where it comes back. Use in_stock to hear as soon as it's available, even on the first run.
Price drop from today
10% under the price on the first check.
{
"target": { "query": "https://www.sweetwater.com/store/detail/SM58--shure-sm58-cardioid-dynamic-vocal-microphone", "match": "url" },
"conditions": { "all": [{ "field": "price_drop", "op": ">=", "value": "10%", "compare_to": "first_snapshot" }] },
"where": { "sites": ["sweetwater.com"] },
"schedule": { "every": "6h", "until": "+90d" }
}Cheapest of several stores
The lowest price for one size, across stores.
{
"target": { "query": "Brooks Ghost 17", "match": "exact", "attributes": { "size": 10 } },
"conditions": { "all": [{ "field": "availability", "op": "=", "value": "in_stock" }, { "field": "price", "op": "<=", "value": 120 }] },
"where": { "sites": ["brooksrunning.com", "runningwarehouse.com", "zappos.com"], "aggregate": "best" },
"schedule": { "every": "1h", "until": "+30d" }
}New product at a store
Anything new with "Q1" in its name.
{
"target": { "query": "Q1", "match": "line", "exclude": ["Q1 Pro"] },
"conditions": { "all": [{ "field": "availability", "op": "=", "value": "in_stock" }] },
"where": { "sites": ["keychron.com"] },
"schedule": { "every": "1h", "until": "+60d" },
"notify": { "channels": ["webhook"], "repeat": "on_change", "webhook": { "url": "https://you.example/hook", "events": ["matched", "changed"] } }
}changed fires when a new product appears in the results.
Next release of a repo
The first Node.js release at 25 or above.
{
"target": { "query": "node", "match": "line" },
"conditions": { "all": [{ "field": "version", "op": ">=", "value": 25 }, { "field": "release_status", "op": "=", "value": "available" }] },
"where": { "sites": ["github.com/nodejs/node"] },
"schedule": { "every": "1h", "until": "after_first_match" }
}Prereleases come through as announced, so available skips them.
Two sizes at the same store
Size 10 and 10.5, both in stock from one seller.
{
"target": { "query": "Brooks Ghost 17", "match": "exact", "attributes": { "size": [10, 10.5] } },
"conditions": { "all": [{ "field": "availability", "op": "=", "value": "in_stock", "over": { "key": "sizes", "require": "all", "same": "seller" } }] },
"where": { "sites": ["runningwarehouse.com", "zappos.com"] },
"schedule": { "every": "1h", "until": "+14d" }
}New product, then its price
When a store lists a new "Q6 HE", start watching that product for a price under $200. See Follow-up watchers.
{
"target": { "query": "Q6 HE", "match": "line" },
"conditions": { "all": [{ "field": "availability", "op": "=", "value": "in_stock" }] },
"where": { "sites": ["keychron.com"], "aggregate": "first" },
"schedule": { "every": "1h", "until": "+180d" },
"then": {
"conditions": { "all": [{ "field": "price", "op": "<", "value": 200 }] },
"schedule": { "every": "6h", "until": "+90d" }
}
}