Developers

The Shoes API

Every model, offer, snapshot and drop is open JSON. The public reads take no key; a write is a signed-in person's own. There are no affiliate links and no Marketplace scraping.

Routes

GET /api/v1/shoes?q&brand&size&condition&store&sort&page
Search the catalogue. `sort`: recent, drop, price, price_desc, popular, name. The answer carries the facets.
GET /api/v1/shoes/:slug
One model: its offers, its daily price history, the size-price curve and the cited facts.
GET /api/v1/shoes/:slug/price?size=&condition=
The lowest all-in price for a model (and size), for a Watch to poll.
GET /api/v1/drops?from&to
The official release dates, soonest first, each with its source page and read time.
GET /api/v1/status
The last read of each source: when, how many rows, whether it answered.
POST /api/v1/me/watches
Session only: { slug, size?, condition?, threshold, currency? } → a price watch in OpenVibe.Watch.
GET /api/v1/me/watches
Session only: the person's watches.
POST /api/v1/me/track
Session only: { url } → a Watch for a pasted listing, through Watch's own fetch rules.
GET /api/openapi.json
This API as an OpenAPI 3.1 document.

OpenAPI 3.1 Try a search

Where the data comes from

  • OpenVibe.Deals is the network's offer aggregator: Shoes reads its public newest-offer pages and keeps the footwear, then reads each product's public record for its brand.
  • eBay is read through the official Browse API, and only when the host sets a developer key pair.
  • Release pages are the brand's or the store's own public release calendar (Nike SNKRS by default), read by a pure parser. A release with no date is not imported.
  • No scraping of Facebook Marketplace; a Marketplace link is tracked by the person pasting it and Watch applying its own rules.

Examples

curl "https://open.shoes/api/v1/shoes?q=air+max&size=10.5&sort=price"
curl "https://open.shoes/api/v1/shoes/nike-air-max-90"
curl "https://open.shoes/api/v1/drops"

Errors are application/problem+json with a code. The public reads are rate-limited per address; a signed-in write also needs this site's origin.