GOAT doesn't offer a public API for market data. Packet does. You can search the catalog, read the lowest ask for every size and condition, and page through the recent sales of any product, all over plain REST.
There are two ways to call GOAT:
- Live endpoints (
/v1/goat/*) fetch from GOAT when you make the request. - Cached catalog (
/v1/catalog/goat/*) serves data we've already collected. It costs 0.3 to 0.4 credits instead of 1, and can be up to a day old.
curl "https://api.pckt.sh/v1/goat/search?query=air%20jordan" \
-H "Authorization: Bearer YOUR_API_KEY"Endpoints and pricing
Each request costs a fixed number of credits, whatever the size of the response. Every account gets free credits each month.
Live GOAT endpoints
| Endpoint | What it returns | Credits |
|---|---|---|
GET /v1/goat/search |
Products matching a name, brand or SKU | 1 |
GET /v1/goat/product |
The full product, by ID or slug | 1 |
GET /v1/goat/price |
The lowest ask for each size and condition | 1 |
GET /v1/goat/history |
The latest sales, paginated | 1 |
Cached GOAT catalog
Data is collected ahead of time and can be up to a day old.
| Endpoint | What it returns | Credits |
|---|---|---|
GET /v1/catalog/goat/search |
Products matching a name, brand or SKU (up to 10 pages) | 0.3 |
GET /v1/catalog/goat/product |
A product by ID or slug, with the lowest ask for every size | 0.4 |
GET /v1/catalog/goat/prices |
Prices for up to 20 products in one call | 0.4 |
GET /v1/catalog/goat/products |
The whole catalog, with cursor pagination | 0.4 |
Credits in the tables are per request. The full parameter reference is in the API docs.
GOAT sales history API
GET /v1/goat/history returns the latest sales of a GOAT product. Each response includes a paginationToken, which you pass back to get older sales. Use countryCode and currencyCode to see sales in another region (they default to US and USD).
curl "https://api.pckt.sh/v1/goat/history?id=1731794¤cyCode=EUR&countryCode=FR" \
-H "Authorization: Bearer YOUR_API_KEY"Asks by size and condition
GOAT sells new, used and defective-box pairs side by side, and each has its own price. GET /v1/goat/price returns the lowest ask for every size and condition, so you can compare a new pair with a used one without scraping the product page.
If you track many products, GET /v1/catalog/goat/prices takes up to 20 IDs at once for 0.4 credits, which works out to 0.02 credits per product.
What people build with it
- Price comparison between GOAT, StockX and other resale marketplaces
- Used-sneaker valuation based on condition-specific asks and recent sales
- Catalog sync for stores that list the same products, using cursor pagination on
/v1/catalog/goat/products - Release tracking to see how a sneaker's resale price moves after it drops
Getting started
- Create a free account and copy your API key from the dashboard.
- Search with
/v1/goat/searchand keep the productid(for example1731794). - Pass that ID to
/v1/goat/product,/v1/goat/priceor/v1/goat/history.
All requests use the Authorization: Bearer YOUR_API_KEY header. See Authentication.
FAQ
Does GOAT have a public API?
No. GOAT doesn't publish an API for product or market data. Packet gives you that data over a documented REST API.
Can I look up a product by its slug?
Yes. /v1/goat/product and /v1/catalog/goat/product both accept an ID or a slug.
Are prices available outside the US?
Yes. Live endpoints take countryCode and currencyCode. Cached endpoints take market.
How fresh is the cached data?
It can be up to a day old. When you need the current price, use the live endpoints.
Is Packet affiliated with GOAT?
No. Packet is an independent service. GOAT is a trademark of GOAT Group.
Other marketplaces
Packet also covers StockX and Chrono24, as well as Flight Club, Alias, Poizon, KREAM, Novelship, Nike, Shopify stores and more. All of them are listed in the API docs.