One API, 2 marketplaces

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.

Why not the official API

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. 1
    POST /goat/v1/search

    find the model, take its slug

  2. 2
    POST /goat/v1/prices

    lowest ask for every size — the spread is large

  3. 3
    POST /grailed/v1/sold_listings

    what 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

 goatgrailed
Price shapeper-size lowest askper-listing price, one item at a time
Sold datanot exposedsold_listings
Cataloguemodel-level product recordslisting-level, each item unique
Designersno designer indexdesigners and designer_detail