Docs
Shops
Listed shops with their statistics, and one shop with all its matched offers.
List shops
GET/api/v1/shops
Every listed shop that currently has offers. No parameters.
Request
curl https://peptilyze.com/api/v1/shopsResponse
{
"attribution": { "text": "Data: Peptilyze (peptilyze.com)", "...": "..." },
"generatedAt": "2026-11-09T13:00:54.150Z",
"data": { "count": 34, "shops": [ { "...": "one shop object as below" } ] }
}Get one shop
GET/api/v1/shops/{id}
One shop and all its matched offers. 404 for an unknown, held or closed shop.
Request
curl https://peptilyze.com/api/v1/shops/example-shopResponse
{
"attribution": { "...": "..." },
"generatedAt": "2026-11-09T13:00:54.150Z",
"data": {
"...": "the shop fields above, plus:",
"offerList": [ { "compound": "bpc-157", "shopId": "example-shop", "packPrice": 13.99, "...": "same fields as a compound offer" } ]
}
}Fields
Shop object
{
"id": "example-shop",
"name": "Example Shop",
"domain": "example-shop.test",
"url": "https://peptilyze.com/shops/example-shop/",
"basedIn": "NL",
"shipsTo": { "scope": "only", "countries": ["DE", "AT", "NL"] },
"ships": "yes",
"pricesIncludeVat": true,
"vatRate": 0.21,
"vatConfirmed": true,
"offers": 120,
"inStock": 98,
"compounds": 31,
"priceIndex": 1.08,
"labCoverage": 0.42,
"labPage": "https://example-shop.test/lab-reports",
"stale": false,
"fetchedAt": "2026-11-09T13:00:41.000Z"
}| Field | Type | Description |
|---|---|---|
id, name, domain | string | Stable id (used in URLs), display name and the shop's domain. |
url | string | The shop's page on Peptilyze. |
basedIn | string or null | Country (ISO 3166-1 alpha-2) the shop's own pages state it is based in. Null when the shop states none; never inferred. |
shipsTo | object or null | Where the shop says it ships, from its own pages: { "scope": "worldwide" }, only a list of country codes, or except a list. Null when unknown: most shops do not name countries. |
ships | string | Only with ?ship=XX: yes, no or unknown for that country. |
pricesIncludeVat, vatRate | boolean, number | Whether the shop lists prices with VAT, and the rate added when it does not. |
vatConfirmed | boolean | False when the VAT basis or rate is our assumption. See VAT. |
offers, inStock, compounds | integer | Matched offers, offers in stock, distinct compounds. |
priceIndex | number or null | Mean of own price divided by lowest price over products compared with other shops. 1.00 means always the cheapest. Null below three compared products. |
labCoverage | number or null | Share (0 to 1) of matched products with a published lab report. Null when the feed has no product text. |
labPage | string or null | The shop's lab-report page. |
stale, fetchedAt | boolean, string | Stale: the last sync failed, so prices are from fetchedAt. |
offerList | Offer[] | Detail only. Same offer fields as compound offers, plus compound. |
currency and vat apply to the offer prices (details). priceIndex is a ratio and always uses the site basis, EUR including VAT.
Peptilyze does not publish a verdict about a shop through the API. Trust checks are shown, with their sources, on each shop's page.