API
Everything on this site comes from a public, read-only JSON API. CORS is open, no key is needed, and the limit is 600 requests a minute per IP. The website uses the same queries, so anything you can see here, you can build on.
Need more? Free API keys raise the limit to 6000 a minute: ask this instance's operator. Send the key as x-api-key.
Prices are integers in minor units (pence, cents) with an ISO 4217 currency code. Every item has a source naming the lexicon and the at:// record it came from, so you can check it against the shop's own repo. Lists page with an opaque cursor.
| Endpoint | Returns |
|---|---|
GET /v1/search | Listings. Parameters: q, kind, category, currency, min, max, ships_to, tier, verified=1, sort (relevance, newest, price_asc, price_desc), include_enquire, cursor, limit (max 50) |
GET /v1/listings/:uri | One listing with its offers. uri is the URL-encoded at:// URI |
GET /v1/merchants/:did | A seller's profile and verification state. A DID or handle |
GET /v1/merchants/:did/listings | That seller's listings |
GET /v1/feeds/new | Newest listings, also as RSS |
GET /v1/feeds/merchant/:did | One seller's newest listings; add .rss for RSS |
GET /v1/categories | Category counts |
GET /v1/claims/:uri | Verified purchase claims for a listing |
GET /v1/stats | Index counts |
GET /v1/health | Firehose cursor age and database size; 503 when ingest has stalled |
GET /img/:did/:cid?w= | A resized image from the shop's own server |