Skip to main content

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