Use case
Stock monitoring lets you:- Detect stock-outs
- Get alerted to distribution problems
- Optimize the supply chain
Implementation
1. Check product availability
import requests
API_KEY = "rx_YOUR_API_KEY"
EAN = "3401351277399"
response = requests.get(
f"https://api.rxradar.xyz/v1/snapshots/compare?gtin={EAN}",
headers={"Authorization": f"Bearer {API_KEY}"}
)
data = response.json()
available = [s for s in data["data"] if s["stock"]["available"]]
unavailable = [s for s in data["data"] if not s["stock"]["available"]]
print(f"Available on {len(available)} stores")
print(f"Unavailable on {len(unavailable)} stores")
2. Stock-out alerts
def check_stock_alerts(ean_list, threshold=0.5):
"""Alert if a product is unavailable on more than X% of stores"""
alerts = []
for gtin in ean_list:
response = requests.get(
f"https://api.rxradar.xyz/v1/snapshots/compare?gtin={gtin}",
headers={"Authorization": f"Bearer {API_KEY}"}
)
data = response.json()
total = len(data["data"])
available = sum(1 for s in data["data"] if s["stock"]["available"])
rate = available / total if total > 0 else 0
if rate < threshold:
alerts.append({
"gtin": gtin,
"product": data["product_name"],
"availability_rate": f"{rate*100:.1f}%",
"available_stores": available,
"total_stores": total
})
return alerts
# Check alerts
alerts = check_stock_alerts(["3401351277399", "3540550014944"])
for alert in alerts:
print(f"⚠️ {alert['product']}: {alert['availability_rate']} available")
3. Availability report by store
def availability_by_store(gtin):
"""Analyze availability by store for a product"""
response = requests.get(
f"https://api.rxradar.xyz/v1/snapshots/compare?gtin={gtin}",
headers={"Authorization": f"Bearer {API_KEY}"}
)
data = response.json()
store_status = {}
for snapshot in data["data"]:
store_status[snapshot["store"]] = {
"available": snapshot["stock"]["available"],
"price": snapshot["price"]["current"],
"collected_at": snapshot["collected_at"]
}
return store_status
# Example
status = availability_by_store("3401351277399")
for store, info in status.items():
emoji = "✅" if info["available"] else "❌"
print(f"{emoji} {store}: ${info['price']}")
Endpoints used
GET /v1/snapshots/compare
Multi-store availability
GET /v1/products/{id}
Product details with availability