Use case
Distribution monitoring lets you:- Identify where your products are sold
- Detect new listings
- Track network coverage
Implementation
1. Map distribution for a product
Use the/v1/products/gtin/{gtin} endpoint to see every store:
import requests
API_KEY = "rx_YOUR_API_KEY"
EAN = "3401351277399"
response = requests.get(
f"https://api.rxradar.xyz/v1/products/gtin/{EAN}",
headers={"Authorization": f"Bearer {API_KEY}"}
)
data = response.json()
print(f"Product found on {data['total']} stores:")
for product in data["data"]:
print(f" - {product['store']} ({product['network']})")
2. Coverage by network
def coverage_by_network(gtin):
"""Break down coverage by network"""
response = requests.get(
f"https://api.rxradar.xyz/v1/products/gtin/{gtin}",
headers={"Authorization": f"Bearer {API_KEY}"}
)
data = response.json()
networks = {}
for product in data["data"]:
network = product["network"]
if network not in networks:
networks[network] = []
networks[network].append(product["store"])
return networks
# Example
coverage = coverage_by_network("3401351277399")
for network, stores in coverage.items():
print(f"{network}: {len(stores)} store(s)")
for store in stores:
print(f" - {store}")
3. Detect distribution gaps
def find_distribution_gaps(gtin, target_networks):
"""Identify networks where the product is not listed"""
response = requests.get(
f"https://api.rxradar.xyz/v1/products/gtin/{gtin}",
headers={"Authorization": f"Bearer {API_KEY}"}
)
data = response.json()
present_networks = set(p["network"] for p in data["data"])
missing = [n for n in target_networks if n not in present_networks]
return {
"present": list(present_networks),
"missing": missing,
"coverage_rate": len(present_networks) / len(target_networks) * 100
}
# Check coverage
target = ["network-a", "network-b", "network-c", "network-d", "network-e"]
gaps = find_distribution_gaps("3401351277399", target)
print(f"Coverage: {gaps['coverage_rate']:.0f}%")
print(f"Missing networks: {gaps['missing']}")
4. Multi-product distribution report
def distribution_report(ean_list):
"""Generate a distribution report for multiple products"""
import pandas as pd
results = []
for gtin in ean_list:
response = requests.get(
f"https://api.rxradar.xyz/v1/products/gtin/{gtin}",
headers={"Authorization": f"Bearer {API_KEY}"}
)
data = response.json()
if data["data"]:
first = data["data"][0]
results.append({
"gtin": gtin,
"name": first["name"],
"stores_count": data["total"],
"networks": len(set(p["network"] for p in data["data"])),
"last_seen": first["last_collected_at"]
})
return pd.DataFrame(results)
# Example
eans = ["3401351277399", "3540550014944"]
report = distribution_report(eans)
print(report)
Endpoints used
GET /v1/products/gtin/{gtin}
Products by EAN
GET /v1/networks
List of networks