Free peptide price API.
Pepticker publishes its full pricing dataset as a free, unauthenticated JSON feed at /api/prices. The feed covers approximately 231 research peptides across 50+ tracked vendors, is updated daily, and is CORS-open so you can query it directly from a browser. Data is licensed CC BY 4.0 — use it freely in research tools, downstream aggregators, browser extensions, or any other application with attribution.
Two lines to get started
No authentication, no SDK. A plain HTTP GET is all you need.
Request
curl https://pepticker.com/api/prices
Response (truncated)
{
"apiVersion": "1",
"source": "live",
"generatedAt": "2025-12-15T14:32:00.000Z",
"count": 231,
"filters": {
"peptide": null,
"vendor": null,
"sizeMg": null
},
"prices": [
{
"peptideSlug": "bpc-157",
"vendorSlug": "pure-rawz",
"sizeMg": 5,
"priceCents": 3499,
"currency": "USD",
"pricePerMgCents": 699.8,
"inStock": true,
"vendorProductUrl": "https://purerawz.co/products/bpc-157",
"capturedAt": "2025-12-15T12:00:00.000Z"
},
{
"peptideSlug": "bpc-157",
"vendorSlug": "limitless-life",
"sizeMg": 5,
"priceCents": 3999,
"currency": "USD",
"pricePerMgCents": 799.8,
"inStock": true,
"vendorProductUrl": "https://limitlesslifenootropics.com/bpc-157",
"capturedAt": "2025-12-15T13:15:00.000Z"
},
{
"peptideSlug": "tirzepatide",
"vendorSlug": "amino-asylum",
"sizeMg": 10,
"priceCents": 8900,
"currency": "USD",
"pricePerMgCents": 890.0,
"inStock": null,
"vendorProductUrl": null,
"capturedAt": "2025-12-15T11:45:00.000Z"
}
]
}One endpoint, four query params
| Method & path | Auth | Caching | CORS |
|---|---|---|---|
| GET /api/prices | None | s-maxage=300, stale-while-revalidate=600 | Access-Control-Allow-Origin: * |
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| peptide | string (slug) | No | Restrict results to a single peptide slug, e.g. bpc-157. |
| vendor | string (slug) | No | Restrict results to a single vendor slug, e.g. pure-rawz. |
| size | number (mg) | No | Restrict results to a specific vial size in milligrams. |
| limit | integer | No | Maximum rows to return. Default 1000, max 5000. |
Example URLs
/api/prices?peptide=bpc-157/api/prices?vendor=pure-rawz/api/prices?peptide=tirzepatide&size=10/api/prices?limit=50
Field reference
Top-level fields appear on every response regardless of filters.
Top-level fields
| Field | Type | Description |
|---|---|---|
| apiVersion | string | Schema version. Currently "1". Bumped on breaking changes only. |
| source | "live" | "seed" | "live" when served from the database; "seed" during pre-provision fallback. |
| generatedAt | string (ISO 8601) | UTC timestamp of when this response was generated. |
| count | integer | Number of price rows returned in this response. |
| filters | object | Echo of the applied query parameters: peptide, vendor, sizeMg. Each is the applied value or null if not filtered. |
| prices | array | Array of price row objects, sorted peptide ascending then pricePerMgCents ascending. |
Fields in each prices[] row
| Field | Type | Description |
|---|---|---|
| peptideSlug | string | URL-safe peptide identifier, e.g. "bpc-157". |
| vendorSlug | string | URL-safe vendor identifier, e.g. "pure-rawz". |
| sizeMg | number | Vial size in milligrams. |
| priceCents | integer | Listed price in the smallest currency unit (e.g. US cents for USD). Divide by 100 for dollars. |
| currency | string | ISO 4217 currency code. Currently always "USD". |
| pricePerMgCents | number | Cost in cents per milligram (priceCents / sizeMg). This is the canonical comparison metric — default sort is pricePerMgCents ascending. |
| inStock | boolean | null | true = in stock, false = out of stock, null = unknown. |
| vendorProductUrl | string | null | Direct URL to the product listing on the vendor's storefront. null if unavailable. |
| capturedAt | string (ISO 8601) | UTC timestamp of when this specific price was scraped from the vendor storefront. |
Who uses the peptide data feed
The Pepticker prices feed is designed to be a reliable upstream source for anyone who needs structured, current research peptide pricing data — without scraping individual vendor sites.
- 01Academic research & citationResearchers studying peptide market dynamics, pricing trends, or vendor competition can cite Pepticker as a primary data source. The CC BY 4.0 license satisfies most institutional open-data requirements.
- 02Downstream aggregators & comparison appsDevelopers building their own peptide price comparison sites or research-tool aggregators can pull the feed instead of maintaining their own crawlers. The stable versioned schema means your integration won't break from upstream changes.
- 03Journalism & editorial fact-checkingJournalists covering peptide markets, supplement industry pricing, or specific vendor behavior can use the API to verify current prices for a named peptide or vendor in seconds, without manual storefront visits.
- 04Browser extensions & Telegram botsBrowser extensions that surface live pricing alongside search results, or Telegram/Discord bots that deliver on-demand peptide price lookups, can use the CORS-open endpoint directly from the client without a proxy layer.
Additive-only changes
The response schema follows an additive-only policy: new fields may be added at any time, but existing fields will not be removed or renamed without a version bump. The current version is v1, stable since 2025-12. If a breaking change is ever necessary, the apiVersion field in the response will reflect the new version number so consuming applications can branch on it.
The API returns JSON only. The Content-Type header is always application/json. No XML or CSV variants are available.
Creative Commons BY 4.0
All data served by this API is published under Creative Commons Attribution 4.0 International. You are free to copy, redistribute, remix, and build upon the data for any purpose, including commercial use, as long as you provide appropriate credit.
Preferred attribution
Data via <a href="https://pepticker.com">Pepticker</a>
Inline hyperlink attribution is preferred. A footer credit or "powered by" note is also acceptable. You do not need to request permission before republishing or integrating the data.
No hard limit — but read this
There is no hard rate limit enforced at the API level. However, the endpoint is edge-cached for 5 minutes (s-maxage=300, stale-while-revalidate=600), which means requests arriving within a 5-minute window will receive the same cached payload. Polling more frequently than once per 5 minutes produces no fresher data and wastes bandwidth on both sides.
For applications displaying live prices, a 15–60 minute polling cadence is sufficient and respectful. If your use case requires a higher-frequency push — for instance, a live dashboard or alerting system — email hello@pepticker.com to discuss webhook options.
Release history
- v1 · 2025-12-15Public launch. Endpoint shape stabilized. All fields documented above present from day one.
Common questions
- Is the Pepticker peptide pricing API free?
- Yes, completely free. There is no paid tier, no usage limits, and no sign-up required. The API is funded by affiliate commissions on outbound vendor links, so the data feed will always remain free.
- Do I need an API key to use the Pepticker prices feed?
- No API key is required. Send a plain GET request to https://pepticker.com/api/prices and you will receive a JSON response. There is no authentication of any kind.
- How often is peptide pricing data updated?
- Vendor storefronts are crawled every 4–6 hours. The API response carries a generatedAt timestamp so you can verify freshness. Each price row also includes a capturedAt field recording exactly when that specific price was ingested.
- Can I use Pepticker data in a commercial product?
- Yes. The data is published under Creative Commons Attribution 4.0 (CC BY 4.0). You may republish, remix, or build commercial products on top of it, provided you credit Pepticker with a link to pepticker.com.
- What peptides and vendors does the API cover?
- As of 2025-12, the feed tracks approximately 231 peptide SKUs across 50+ vendors. Coverage grows as new vendors are onboarded. See /vendors for the current vendor roster.
- How is the price-per-milligram calculated?
- pricePerMgCents is computed as priceCents divided by sizeMg, giving you the cost in cents per milligram. This is the canonical comparison metric Pepticker uses for default sorting — lowest pricePerMgCents first.
- What format does the API return?
- The API returns JSON only. The Content-Type header is application/json. There is no XML, CSV, or other format option. The response shape is versioned — the current version is v1.
- Can I poll the API continuously for real-time prices?
- The endpoint is edge-cached for 5 minutes (s-maxage=300), so polling more frequently than once every 5 minutes will return identical cached responses. For live displays we suggest a 15–60 minute polling interval. Contact hello@pepticker.com if you need a webhook or higher-frequency push.
Building something with this data? We'd love to know — email hello@pepticker.com. We're happy to link back to integrations that use Pepticker data responsibly.
See /methodology for a detailed explanation of how prices are collected and validated, and /vendors for the current roster of tracked vendors and their testing grades.