Price monitoring API for your own tracker or agent.
datawebot returns dated price snapshots: every seller's price for a product, with shipping and a link, read when you ask. You schedule the checks and keep the history. It does not send alerts or store past prices; your script or agent does.
Updated · datawebot team
How it works
Your schedule, datawebot's prices.
- List the products. Search once for each product you watch and keep its product_id, or keep the product page URLs you already have. 5 credits a search.
- Check on a schedule. Read each product with cron, GitHub Actions or your agent, as often as you need. Each read returns every seller's price, total with shipping, stock notes and a direct link, for 1 credit.
- Keep every snapshot. Store each answer with the time it was read. datawebot does not keep history, so your database or spreadsheet is the price record.
- Decide what counts as a change. Compare the new snapshot with the last one and flag the moves you care about: a new lowest seller, a price under your floor, a seller going out of stock.
What it costs
1 credit a check, no subscription.
Checking 100 products once a day for 30 days is 3,000 credits, about $3 at the smallest pack. The first 200 checks are free, and credits don't expire.
Run it
From your agent or a script on a schedule.
In an agent, ask in plain words. In code, run the script below from cron or GitHub Actions; each run adds one dated row per seller.
In your agent
set up https://mcp.datawebot.com/setup.mdUse datawebot to check every US seller's price for the Sony WH-1000XM5 and add today's prices to prices.csv, with the time and the link for each seller.In Python
import csv, os, time
from datetime import datetime, timezone
import requests
API = "https://api.datawebot.com/v1/requests"
HEADERS = {"Authorization": f"Bearer {os.environ['DATAWEBOT_API_KEY']}"}
WATCHLIST = ["Sony WH-1000XM5", "Apple AirPods Pro 2"]
def ask(body):
answer = requests.post(API, json=body, headers=HEADERS, timeout=120).json()
while answer.get("status") == "working": # finish a slow answer
time.sleep(3)
answer = requests.get(f"{API}/{answer['request_id']}", headers=HEADERS, timeout=120).json()
return answer
now = datetime.now(timezone.utc).isoformat(timespec="seconds")
with open("prices.csv", "a", newline="") as f:
out = csv.writer(f)
for name in WATCHLIST:
found = ask({"capability": "search", "query": name, "country": "US", "limit": 1})
product = ask({"capability": "product", "product_id": found["products"][0]["product_id"]})
for offer in product["offers"]:
out.writerow([now, name, offer["shop"], offer["price"]["text"], offer["url"]])FAQ
Questions about datawebot
What is a price monitoring API?
An API that returns product prices as data, so a program can check them on a schedule and notice changes. datawebot returns dated snapshots: every seller's price for a product when you ask. Your script or agent decides when to check, stores the results and raises the alerts.
Does datawebot send price alerts?
No. It returns the prices; your script, spreadsheet or agent compares them and sends the alert. That keeps the rules in your hands, such as which sellers count and how big a change matters.
Does it keep price history?
No. Each read is one snapshot, labelled with when it was read (meta.as_of). Store each snapshot yourself to build the history.
How often can I check a price?
As often as you schedule it. Each read is a separate request at 1 credit, so the schedule sets the cost.
Can I monitor Amazon prices?
Yes. Search with site set to an Amazon domain, then read each product. Amazon works in 20 countries.
What does monitoring cost?
1 credit per product per check, with every seller's price. Checking 100 products once a day for 30 days is 3,000 credits, about $3 at the smallest pack. Every account starts with 200 free credits, and packs start at $10 with no subscription.