Documentation Request access

Online pharmacy
data
via API

Prices, stock and competitive intelligence across online pharmacies. Structured JSON, weekly refresh.

GET /v1/products/gtin/0020714002527
{
  "gtin": "0020714002527",
  "name": "Take The Day Off Cleansing Balm 125 ml",
  "brand": "Clinique",
  "line": "Take The Day Off",
  "price": 34.00,
  "per_unit": "27.20 per 100 ml",
  "currency": "USD",
  "rating": 4.7,
  "reviews": 1284,
  "in_stock": true,
  "store": "https://www.cvs.com",
  "collected_at": "2026-06-15"
}

Playground

Test the API live with a product GTIN.

Examples

Simple integration

One request, structured data.

# Look up a product by GTIN
import requests

response = requests.get(
    "https://api.rxradar.xyz/v1/products/gtin/0301871239014",
    headers={"Authorization": "Bearer rx_YOUR_API_KEY"}
)

products = response.json()
// Look up a product by GTIN
const response = await fetch(
    "https://api.rxradar.xyz/v1/products/gtin/0301871239014",
    { headers: { "Authorization": "Bearer rx_YOUR_API_KEY" } }
);

const products = await response.json();
# Look up a product by GTIN
curl 'https://api.rxradar.xyz/v1/products' \
  -H 'Authorization: Bearer rx_YOUR_API_KEY' \
  -G -d 'gtin=0301871239014'
Response 200 OK
{
  "gtin": "00301871239014",
  "total": 1,
  "data": [
    {
      "id": 14823,
      "gtin": "00301871239014",
      "brand": { "name": "CeraVe", "url": "https://www.cvs.com/shop/cerave" },
      "line": null,
      "name": "CeraVe Moisturizing Cream, 19 oz",
      "currency": "USD",
      "images": { "main": "https://www.cvs.com/.../0301871239014.jpg", "gallery": ["..."] },
      "network": "cvs",
      "store": "cvs.com",
      "last_collected_at": "2026-06-25T03:12:00",
      "latest": {
        "price": 18.99,
        "in_stock": true,
        "rating": 4.8
      }
    }
  ]
}
# Price history for a product
import requests

response = requests.get(
    "https://api.rxradar.xyz/v1/products/14823/snapshots",
    headers={"Authorization": "Bearer rx_YOUR_API_KEY"},
    params={"days": 28}
)

snapshots = response.json()
// Price history for a product
const response = await fetch(
    "https://api.rxradar.xyz/v1/products/14823/snapshots?days=28",
    { headers: { "Authorization": "Bearer rx_YOUR_API_KEY" } }
);

const snapshots = await response.json();
# Price history for a product
curl 'https://api.rxradar.xyz/v1/snapshots' \
  -H 'Authorization: Bearer rx_YOUR_API_KEY' \
  -G -d 'product_id=14823' \
     -d 'days=28'
Response 200 OK
{
  "product_id": 14823,
  "days": 28,
  "data": [
    {
      "id": 558210,
      "collected_at": "2026-06-25T03:12:00",
      "price": {
        "current": 18.99,
        "original": null,
        "has_promo": false,
        "currency": "USD"
      },
      "per_unit": { "price": 1.00, "unit": "1 oz" },
      "stock": { "available": true, "label": "In stock" },
      "rating": { "value": 4.8, "count": 3284 },
      "positions": [{ "category": "Face Cleansers", "rank": 1, "page": 1, "page_size": 30 }],
      "promotions": [],
      "badges": ["dermatologist recommended"],
      "network": "cvs",
      "store": "cvs.com"
    }
  ]
}
# Customer reviews for a product
import requests

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

reviews = response.json()
// Customer reviews for a product
const response = await fetch(
    "https://api.rxradar.xyz/v1/products/14823/reviews",
    { headers: { "Authorization": "Bearer rx_YOUR_API_KEY" } }
);

const reviews = await response.json();
# Customer reviews for a product
curl 'https://api.rxradar.xyz/v1/products/14823/reviews' \
  -H 'Authorization: Bearer rx_YOUR_API_KEY'
Response 200 OK
{
  "product_id": 14823,
  "rating": 4.8,
  "total": 3284,
  "data": [
    {
      "id": 88231,
      "external_id": "bv-5f0a91",
      "rating": 5,
      "title": "Saved my dry skin",
      "content": "Thick but absorbs well, no greasy feel.",
      "author": "Jenna R.",
      "published_at": "2026-06-12T00:00:00",
      "locale": "en_US",
      "verified": true,
      "recommended": true,
      "helpful_count": 142,
      "media": { "images": [], "videos": [] },
      "response": null,
      "source": null
    },
    // ... more reviews
  ]
}

Ready to get started?

Get online pharmacy data flowing into your stack in minutes.

Request access