Online pharmacy digital shelf
Measure your product visibility in categories and search results. Position = conversion.
Who it's for
This API is built for technical teams at pharma brands and dermo-cosmetic manufacturers.
The problem
In e-commerce, listing position drives conversion. A product on page 2 is invisible.
You have no visibility on how your products rank at your distributors.
You can't measure the impact of your trade investments, nor catch a position drop before it hits sales. Your competitors optimize their digital shelf while you're flying blind.
How it works
The positions array gives the product's rank in each category it appears in — one entry per category.
# Analyze per-category positions 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"]: for pos in s["positions"]: print(f"{s['network']} · {pos['category']}: rank {pos['rank']} (page {pos['page']})")
curl -X GET "https://api.rxradar.xyz/v1/snapshots?gtin=0020714002527" \ -H "Authorization: Bearer YOUR_API_KEY"
// Analyze per-category positions const response = await fetch( "https://api.rxradar.xyz/v1/snapshots?gtin=0020714002527", { headers: { "Authorization": "Bearer YOUR_API_KEY" } } ); const { data } = await response.json(); data.forEach(s => s.positions .forEach(pos => console.log(`${s.network} · ${pos.category}: rank ${pos.rank} (page ${pos.page})`)));
{
"gtin": "0020714002527",
"network": null,
"days": 7,
"data": [
{
"id": 98765,
"product_id": 12345,
"gtin": "0020714002527",
"collected_at": "2026-05-18T14:30:00",
"price": {
"current": 34.00,
"original": null,
"range": null,
"has_promo": false,
"currency": "USD"
},
"stock": {
"available": true,
"label": "In stock"
},
"rating": {
"value": 4.5,
"count": 127
},
"positions": [
{ "category": "Face Cleansers", "rank": 3, "page": 1, "page_size": 24 },
{ "category": "Skincare", "rank": 14, "page": 1, "page_size": 24 }
],
"promotions": [],
"badges": [],
"favorites_count": 342,
"network": "cvs",
"store": "cvs.com"
}
// ... more snapshots
],
"total": 28,
"page": 1,
"per_page": 50,
"pages": 1
}
Endpoint: GET /v1/snapshots | Full documentation →
Comparison
| RxRadar | Manual checks | SEO tools | Generic tools | |
|---|---|---|---|---|
| Position tracking | Automated | Tedious | Google only | Variable |
| E-pharma coverage | Multi-network | Limited | Not specialized | Not specialized |
| Position history | Yes | No | Yes | Variable |
| REST API | Yes | No | Yes | Variable |
| Pharma-specific | Yes | Yes | No | No |
| Setup | 1 hour | Ongoing | Variable | Configuration |