Use case
Digital shelf tracking lets you:- Track ranking within categories
- Analyze visibility in search results
- Optimize e-commerce SEO
Implementation
1. Analyze product ranking
Use the/v1/snapshots endpoint to retrieve rank data:
import requests
API_KEY = "rx_YOUR_API_KEY"
EAN = "3401351277399"
response = requests.get(
f"https://api.rxradar.xyz/v1/snapshots?gtin={EAN}",
headers={"Authorization": f"Bearer {API_KEY}"}
)
data = response.json()
# Inspect positions
for s in data["data"]:
if s["rank"]:
print(f"{s['store']}: position {s['rank']['position']} (page {s['rank']['page']})")
2. Visibility report
def visibility_report(gtin):
"""Generate a visibility report for a product"""
response = requests.get(
f"https://api.rxradar.xyz/v1/snapshots?gtin={gtin}",
headers={"Authorization": f"Bearer {API_KEY}"}
)
data = response.json()
report = {
"total_stores": len(data["data"]),
"stores_with_rank": 0,
"first_page": 0,
"top_3": 0,
"avg_position": 0
}
positions = []
for s in data["data"]:
if s["rank"]:
report["stores_with_rank"] += 1
positions.append(s["rank"]["position"])
if s["rank"]["page"] == 1:
report["first_page"] += 1
if s["rank"]["position"] <= 3:
report["top_3"] += 1
if positions:
report["avg_position"] = sum(positions) / len(positions)
return report
# Example
report = visibility_report("3401351277399")
print(f"Stores with rank: {report['stores_with_rank']}/{report['total_stores']}")
print(f"On first page: {report['first_page']}")
print(f"Top 3: {report['top_3']}")
print(f"Average position: {report['avg_position']:.1f}")
3. Compare against competitors
def compare_visibility(ean_list):
"""Compare visibility across multiple products"""
import pandas as pd
results = []
for gtin in ean_list:
response = requests.get(
f"https://api.rxradar.xyz/v1/snapshots?gtin={gtin}",
headers={"Authorization": f"Bearer {API_KEY}"}
)
data = response.json()
positions = [s["rank"]["position"] for s in data["data"] if s["rank"]]
first_page = sum(1 for s in data["data"] if s["rank"] and s["rank"]["page"] == 1)
results.append({
"gtin": gtin,
"avg_position": sum(positions) / len(positions) if positions else None,
"first_page_count": first_page,
"total_ranked": len(positions)
})
return pd.DataFrame(results)
# Compare your products vs competitors
eans = ["3401351277399", "3540550014944"]
comparison = compare_visibility(eans)
print(comparison)
Endpoints used
GET /v1/snapshots
Snapshots with rank data
GET /v1/products/{id}/snapshots
Position history