Skip to content
Peptilyze
Docs menu

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/shops
Response
{
  "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-shop
Response
{
  "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"
}
FieldTypeDescription
id, name, domainstringStable id (used in URLs), display name and the shop's domain.
urlstringThe shop's page on Peptilyze.
basedInstring or nullCountry (ISO 3166-1 alpha-2) the shop's own pages state it is based in. Null when the shop states none; never inferred.
shipsToobject or nullWhere 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.
shipsstringOnly with ?ship=XX: yes, no or unknown for that country.
pricesIncludeVat, vatRateboolean, numberWhether the shop lists prices with VAT, and the rate added when it does not.
vatConfirmedbooleanFalse when the VAT basis or rate is our assumption. See VAT.
offers, inStock, compoundsintegerMatched offers, offers in stock, distinct compounds.
priceIndexnumber or nullMean of own price divided by lowest price over products compared with other shops. 1.00 means always the cheapest. Null below three compared products.
labCoveragenumber or nullShare (0 to 1) of matched products with a published lab report. Null when the feed has no product text.
labPagestring or nullThe shop's lab-report page.
stale, fetchedAtboolean, stringStale: the last sync failed, so prices are from fetchedAt.
offerListOffer[]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.