Use casePrice monitoring

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

Your schedule, datawebot's prices.

  1. 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.
  2. 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.
  3. 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.
  4. 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.

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.

See pricing

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.

API

In Python

track_prices.py
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"]])
Full price tracker tutorial

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.