GOAT and Grailed data from one API
Resale research needs both an order book and a comp set: GOAT prices per size, Grailed carries what actually sold. One key covers both, which is the pair most resale tools have to stitch together themselves.
Neither has a public API. GOAT and Grailed are both app-first marketplaces with no read programme, which is why resale tooling normally maintains its own scrapers for each.
Coverage
What the two engines give you
- GOAT
- search, suggest, product_detail, prices, related
- Grailed
- search, listing_detail, sold_listings, seller_listings, designers, designer_detail
- GOAT prices
- lowest ask per size, with the listing count behind it
- Grailed sold
- sold_listings — the comp set, not just what is on offer
Worked example
Price a pair against what it sold for
Asks on one side, completed sales on the other.
- 1
POST /goat/v1/searchfind the model, take its slug
- 2
POST /goat/v1/priceslowest ask for every size — the spread is large
- 3
POST /grailed/v1/sold_listingswhat the same model actually sold for
A size-level ask curve against real sold prices. Measured on GOAT the dearest size ran 3.4 to 7.6 times the cheapest on the same shoe, so a single price per style hides most of it.
Before you join them
Where the two sources genuinely differ
| goat | grailed | |
|---|---|---|
| Price shape | per-size lowest ask | per-listing price, one item at a time |
| Sold data | not exposed | sold_listings |
| Catalogue | model-level product records | listing-level, each item unique |
| Designers | no designer index | designers and designer_detail |