Open Data & Free API

Every number on PepsTracker — live prices across 27 vendors, daily history since June, and vendor track records — published machine-readable, free, no API key. If you build with it, a link back is all we ask.

Endpoints

GET/api/v1/summary.json

Totals and freshness: vendor count, compound count, listing count, history depth, last generated time. Start here.

Open →
GET/api/v1/prices.json

The full current book: every listing for every compound with price, vial size, pack size, computed $/mg and stock status, sorted cheapest-first.

Open →
GET/api/v1/vendors.json

The 27 tracked vendors with domains and current working discount codes.

Open →
GET/api/v1/price-history.json

Daily best $/mg per compound since June 1 — the series behind every chart on this site.

Open →
GET/api/v1/price-history.csv

Same history as CSV — drops straight into Excel, Google Sheets (IMPORTDATA) or pandas.

Open →
GET/api/v1/scoreboard.json

Per-vendor track record: coverage, stock rate, and how often each vendor holds the market's best price. See the Vendor Scoreboard.

Open →

Quick start

// Cheapest current listing for any compound
const r = await fetch('https://pepstracker.com/api/v1/prices.json');
const data = await r.json();
console.log(data.prices['Semaglutide'][0]);
// -> { vendor, listing, price_usd, usd_per_mg, in_stock, url, ... }
# Full price history into a spreadsheet cell (Google Sheets)
=IMPORTDATA("https://pepstracker.com/api/v1/price-history.csv")

Terms

Free. No key, no signup, no rate card. CORS is open, so you can call it from a browser. Attribution appreciated: if you publish something built on this data, link to pepstracker.com. Updated daily after the morning price scan; the generated field on every endpoint tells you exactly when. As-is: data is informational only, provided without warranty, and is not an endorsement of any vendor or product. All products referenced are for research use only. See the full disclaimer.