Skip to main content

Use case

Reputation monitoring lets you:
  • Track customer ratings and reviews
  • Analyze sentiment per store
  • Detect quality issues early

Implementation

1. Fetch product reviews

Use the /v1/products/{id}/reviews endpoint:
import requests

API_KEY = "rx_YOUR_API_KEY"
PRODUCT_ID = 29

response = requests.get(
    f"https://api.rxradar.xyz/v1/products/{PRODUCT_ID}/reviews",
    headers={"Authorization": f"Bearer {API_KEY}"}
)

data = response.json()

print(f"Average rating: {data.get('rating', 'N/A')}")
print(f"Total reviews: {data['total']}")

for review in data["data"][:5]:
    print(f"⭐ {review['rating']}/5 - {review['title']}")
    print(f"   {review['content'][:100]}...")

2. Sentiment analysis

def analyze_reviews(product_id):
    """Analyze reviews for a product"""
    response = requests.get(
        f"https://api.rxradar.xyz/v1/products/{product_id}/reviews",
        headers={"Authorization": f"Bearer {API_KEY}"}
    )
    data = response.json()

    analysis = {
        "total": data["total"],
        "avg_rating": data.get("rating"),
        "distribution": {1: 0, 2: 0, 3: 0, 4: 0, 5: 0},
        "positive": 0,  # 4-5 stars
        "neutral": 0,   # 3 stars
        "negative": 0   # 1-2 stars
    }

    for review in data["data"]:
        rating = review["rating"]
        analysis["distribution"][rating] = analysis["distribution"].get(rating, 0) + 1

        if rating >= 4:
            analysis["positive"] += 1
        elif rating == 3:
            analysis["neutral"] += 1
        else:
            analysis["negative"] += 1

    return analysis

# Example
analysis = analyze_reviews(29)
print(f"Positive: {analysis['positive']}")
print(f"Neutral: {analysis['neutral']}")
print(f"Negative: {analysis['negative']}")

3. Negative review alerts

def negative_review_alerts(product_ids, min_rating=2):
    """Alert on recent negative reviews"""
    from datetime import datetime, timedelta

    alerts = []
    week_ago = (datetime.now() - timedelta(days=7)).isoformat()

    for product_id in product_ids:
        response = requests.get(
            f"https://api.rxradar.xyz/v1/products/{product_id}/reviews",
            headers={"Authorization": f"Bearer {API_KEY}"}
        )
        data = response.json()

        for review in data["data"]:
            if review["rating"] <= min_rating:
                if review["published_at"] >= week_ago:
                    alerts.append({
                        "product_id": product_id,
                        "rating": review["rating"],
                        "title": review["title"],
                        "content": review["content"][:200],
                        "date": review["published_at"]
                    })

    return alerts

# Check alerts
alerts = negative_review_alerts([29, 60])
for a in alerts:
    print(f"⚠️ {a['rating']}/5 - {a['title']}")

4. Reputation comparison

def compare_reputation(product_ids):
    """Compare reputation across multiple products"""
    import pandas as pd

    results = []
    for product_id in product_ids:
        response = requests.get(
            f"https://api.rxradar.xyz/v1/products/{product_id}/reviews",
            headers={"Authorization": f"Bearer {API_KEY}"}
        )
        data = response.json()

        positive = sum(1 for r in data["data"] if r["rating"] >= 4)

        results.append({
            "product_id": product_id,
            "avg_rating": data.get("rating"),
            "total_reviews": data["total"],
            "positive_rate": f"{(positive / data['total'] * 100):.0f}%" if data["total"] > 0 else "N/A"
        })

    return pd.DataFrame(results)

# Compare your products
comparison = compare_reputation([29, 60])
print(comparison)

Endpoints used

GET /v1/products/{id}/reviews

Reviews for a product

GET /v1/products/{id}

Product details with rating