Back-in-stock alerts
Point it at a sold-out product page and hear the moment availability changes, read from the in-stock label, the add-to-cart button or the quantity shown. Check every minute during a drop or less often for a backorder. You pay per check, with no subscription.
The gap between 'sold out' and 'available' on a popular product can close and reopen within minutes, and refreshing a page by hand is a losing game.
Restocks are rarely announced
The gap between sold out and available on a popular product can close and reopen within minutes, and refreshing a page by hand is a losing game. Resellers chasing a limited sneaker drop, collectors after a discontinued part, parents hunting a sold-out toy at the holidays and business buyers waiting on a backordered component share the same frustration: the seller rarely announces a restock. It simply appears, briefly, and then vanishes into someone else's cart. Waiting lists and notify-me buttons depend on the seller deciding when and whom to tell, which matters most exactly when demand outstrips supply.
How the stock check works
Each check reads whatever availability signal the product page exposes, such as an in-stock label, a disabled add-to-cart button or a quantity, and compares it with the state recorded on the previous check. You hear only about a genuine change in availability, not every time the page is checked and nothing moved. You set the pace: every minute during a launch window for a high-demand drop, more relaxed for a slow-moving backorder. Procurement teams use it to order a part before the next batch sells out, and resellers use it to time their own listings around a competitor's gaps.
Who actually loses sleep over stock
Resellers chasing a limited sneaker drop, collectors after a discontinued part, parents hunting a sold-out toy at the holidays, and B2B buyers waiting on a backordered component all share one frustration: the seller rarely announces a restock, it just appears, briefly, and then vanishes into someone else's cart. A programmatic check removes the guesswork of refreshing a tab every few minutes.
A problem as old as scarcity itself
Waiting lists and 'notify me' buttons existed long before APIs did, but they depend entirely on the seller choosing to notify you, on their schedule, using their own criteria for who hears first, if at all. Watching the page directly puts the timing back in your hands instead of a retailer's marketing calendar, which matters most exactly when demand outstrips supply, allocations are tiny, and every minute — sometimes every second — genuinely counts.
What you can do with it
Limited product drops
Track a sneaker, console, or collectible listing every minute during a launch window and get notified the second it flips to available.
Backordered components
Watch a supplier's part page for restock so procurement can place an order before the next batch sells out again.
Seasonal gift alerts
Monitor a sold-out toy or gadget through the holiday season instead of manually refreshing a retailer's page.
Reseller inventory intelligence
Keep tabs on a competitor's stock status to time your own listing or pricing around their availability gaps.
FAQ
How fast will I know when an item is back in stock?
As fast as your own check interval allows — since you set the interval, checking every minute or two during a launch window catches a restock within that window.
Is stock monitoring free to try?
There's no free tier — free tiers get abused and slow everyone down. No subscription, no tokens, no invented credits, and a failed task is never charged.
Can I monitor stock for many products at once?
Yes, each product URL is an independent asynchronous task, so bulk monitoring across a full watchlist is simply a matter of triggering monitor-stock for each one from your own scheduler.
What happens if a check fails, for example the page times out?
The task retries automatically up to three times; if it still fails, you receive a clear error rather than a false stock reading, and the failed attempt is not charged.
Why not just use the store's notify-me button?
Waiting lists and notify-me buttons depend on the seller choosing to tell you, on their schedule and with their own rules about who hears first. Watching the page directly puts the timing back in your hands.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
One authenticated POST creates the task; the result comes back by webhook or a signed link. This capability is currently available through the API, not as an interactive Web tool.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/web/monitor-stock \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com"}'const res = await fetch("https://api.kit.forhosting.com/web/monitor-stock", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"url": "https://example.com"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/monitor-stock",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"url": "https://example.com"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/monitor-stock", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"url":"https://example.com"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"url":"https://example.com"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/monitor-stock", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"url": "https://example.com"
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.monitor_stock",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Limits
timeout_sec | 30 |
max_crawl_pages | 25 |
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
422 | task_failed | The task failed after 3 retries. You are never charged for it. |
Technical notes
This stock monitoring API checks a product page at the interval you set and reports the exact moment availability changes, so you act while the window is still open.
What the endpoint actually looks at
Only a genuine change in availability triggers a result, so you are not notified every time the page is simply checked and nothing moved. A call to POST /web/monitor-stock takes the product URL and reads the page's availability signal — an in-stock label, a disabled add-to-cart button, a quantity field, whatever the page exposes — then compares it against the state recorded on the previous check.
Designed to trigger the next step automatically
You decide how often to check: aggressively for a high-demand drop, more relaxed for a slow-moving backorder. Each request returns a task_id immediately, with the real result delivered later via a signed webhook — the practical option if a restock should trigger an automated purchase flow or an instant alert — or a signed link valid for 24 hours for lighter, manual use.
Transparent, usage-based pricing
A failed check retries automatically up to three times and is never billed if it does not ultimately succeed. The cost is $0.040 per request plus $0.001 per check, with no hidden markup and no free tier or trial — access requires prepaid balance, which keeps checks fast and the service free of abuse.
Technical questions
How does the API know a product is in stock?
It reads the availability signal exposed on the page itself, such as an in-stock label, a working add-to-cart button, or a visible quantity, and compares it against the previously recorded state.
Can I get notified instantly instead of polling for the result?
Yes, configure a signed webhook and it fires as soon as a check detects a change in availability; a signed link valid for 24 hours is also available.
Does this work for any online store, or only major retailers?
It works on any publicly reachable product page that exposes an availability signal, not just large retailers, since the check reads the page rather than relying on a specific platform's API.
Is my monitored product data kept afterward?
No, results are deleted after the retention period and are never used for training — they exist only to deliver your stock comparison and webhook.