Online pharmacy promotion tracking

Detect price drops, discounts and special offers on your products. Online pharmacies, one API.

Who it's for

This API is built for technical teams at pharma brands and dermo-cosmetic manufacturers.

Data Engineers Pricing teams Trade Marketing Business Intelligence

The problem

Your e-commerce distributors run promotions without telling you.

You discover the discounts after your customers do.

Uncoordinated discounts strain your relationships with other channels and erode brand equity. A product slashed -30% on one online pharmacy while it sits at full price elsewhere generates confusion and customer complaints.

Without real-time visibility you can't anticipate the impact on volumes, adjust your own trade operations, or engage with the distributor before the promotion ends.

How it works

The price.original field and the promotions list give you the promotion details in real time.

# Filter products on promo
import requests

response = requests.get(
    "https://api.rxradar.xyz/v1/snapshots",
    params={"gtin": "0020714002527"},
    headers={"Authorization": "Bearer YOUR_API_KEY"}
)

for s in response.json()["data"]:
    if s["price"]["original"]:
        print(f"{s['store']}: ${s['price']['current']} (was ${s['price']['original']})")
curl -X GET "https://api.rxradar.xyz/v1/snapshots?gtin=0020714002527" \
  -H "Authorization: Bearer YOUR_API_KEY"
// Filter products on promo
const response = await fetch(
  "https://api.rxradar.xyz/v1/snapshots?gtin=0020714002527",
  { headers: { "Authorization": "Bearer YOUR_API_KEY" } }
);

const { data } = await response.json();
data.filter(s => s.price.original)
    .forEach(s => console.log(`${s.store}: $${s.price.current} (was $${s.price.original})`));
Response
{
  "gtin": "0020714002527",
  "network": null,
  "days": 7,
  "data": [
    {
      "id": 98765,
      "product_id": 12345,
      "gtin": "0020714002527",
      "collected_at": "2026-05-18T14:30:00",
      "price": {
        "current": 29.40,
        "original": 34.00,
        "range": null,
        "has_promo": true,
        "currency": "USD"
      },
      "stock": {
        "available": true,
        "label": "In stock"
      },
      "rating": {
        "value": 4.2,
        "count": 89
      },
      "rank": {
        "position": 5,
        "page": 1,
        "page_size": 24
      },
      "promotions": [
        {
          "type": "percent_off",
          "text": "14% off",
          "value": 14,
          "value_type": "percent",
          "code": null,
          "external_id": "special-offer",
          "valid_until": "2026-05-31",
          "requires_loyalty": false
        }
      ],
      "badges": ["sale"],
      "favorites_count": 512,
      "network": "cvs",
      "store": "cvs.com"
    }
    // ... more snapshots
  ],
  "total": 42,
  "page": 1,
  "per_page": 50,
  "pages": 1
}

Endpoint: GET /v1/snapshots | Full documentation →

Comparison

RxRadar Manual checks Distributor alerts Generic tools
Promo detection Near-real-time Lagging Variable Partial
Price drops Yes Manual Rarely Variable
Store coverage Multi-network Limited 1 store Variable
REST API Yes No No Variable
Pharma-specific Yes Yes Yes No
Promo history Yes No No Variable

FAQ

What kinds of promotions are detected?
Price drops, percentage discounts, multi-buys, BOGO, coupons and loyalty deals. The price.original field plus the promotions list — with a normalized type, value and validity dates per offer — capture this info.
How fresh is the data?
Data is collected weekly. The collected_at field gives the exact collection timestamp for each store.
Can I get alerts?
The API serves raw data — build your own alerts by diffing consecutive snapshots or filtering on price.original being non-null.

Ready to integrate?

Request API access and test it on your own products.

Request access