Barcode Lookup API for Sneakers and Streetwear
Send the UPC or EAN from a shoe box and get back the product it identifies, the size that barcode belongs to and a product image, as JSON. The catalogue holds 3.09 million barcodes across 1.57 million products.
Last checked:
What the API returns
A barcode lookup returns two objects. product describes the model and colourway: name, brand, category, description, style code, colourway, release date, retail price, an image URL and the size range. barcode describes the code you sent: its type (GTIN12 for a UPC-A, GTIN13 for an EAN-13), the stored value, the date it was added and the size it belongs to in US, UK and EU sizing.
The size is what sets a footwear catalogue apart from a general product database. Every size of a colourway has its own barcode, so one style code sits behind many GTINs, and the API answers at the level of the single pair.
The retail price is the price at release. The API does not return resale prices from marketplaces such as StockX or GOAT. If that is what you need, see the sneaker barcode API comparison.
Example request and response
One GET request with a Bearer token. fields=* asks for every field:
curl "https://barcodes.gg/api/v2/barcode/lookup/198963114985?fields=*" -H "Authorization: Bearer YOUR_API_TOKEN"The response for that barcode has this shape. Values the free public lookup page does not show are replaced with ... here:
{
"error": false,
"product": {
"product_name": "Jordan 1 Retro Low OG SP Travis Scott Sail Tropical Pink",
"product_brand": "Air Jordan",
"product_category": "Shoes",
"product_description": "...",
"product_unique_id": "...",
"product_style_code": "...",
"product_colorway": "...",
"product_release_date": "...",
"product_retail_price": "...",
"product_image": "https://barcodes.gg/api/image/uid/...",
"product_sizes": ["..."],
"product_added": "...",
"product_updated": "..."
},
"barcode": {
"barcode_type": "GTIN12",
"barcode_value": "198963114985",
"barcode_added": "...",
"product_size": { "us": "...", "uk": "...", "eu": "..." }
},
"response_time": "...",
"request_fulfilled": true,
"request_debited": true
}fields is required. Send * for everything, or up to four comma-separated names such as product.product_name,barcode.product_size to get only those keys back at the top level. The barcode must be 8 to 15 digits, and one leading zero is ignored. The field guide explains each field.
Endpoints
All version 2 routes sit under https://barcodes.gg/api/v2 and answer in JSON.
| Method and path | What it does |
|---|---|
GET /barcode/lookup/{barcode} | Barcode to product and size. Parameters: fields (required), show_data. |
GET /barcode/lookup/sku/{style_code} | Style code to the barcodes held for it, each with its size and an isVerified flag. Parameters: sizerun, is_verified, page. Plus plans and Enterprise. |
GET /product/search | Search products by name or style code. Parameters: query (3 characters or more), results (1 to 50, default 20), page. |
POST /product/search/bulk | Several style codes in one call. JSON body: {"styleCodes": ["..."]}. |
GET /product/lookup/sku/{style_code} | Every product variant stored under a style code. |
GET /product/lookup/uid/{product_unique_id} | One exact product by its unique id. |
GET /product/details/{style_code} | One product with its size list in EU, UK and US sizing and the EAN and UPC held for each size. |
GET /product/upcoming, GET /product/latest | Upcoming releases and recently added products, paginated. |
GET /product/alternatives/{style_code} | The StockX and GOAT slug and SKU matched to a style code. |
GET /token/usage | Requests remaining, plan, rate limit and token limit for the calling token. |
Product images are served from https://barcodes.gg/api/image/uid/{product_unique_id}, the URL returned in product_image. Paginated lists return a pagination object alongside the results.
Authentication
Every request carries an API token as a Bearer token in the Authorization header. You create tokens in the dashboard after signing in. Each token has a list of abilities, one per endpoint, such as lookup-barcode or search-product, so a token can be limited to the calls an application needs. lookup-barcode-sku, the reverse lookup from style code, is available on Plus plans and Enterprise.
Plans allow between 3 and 25 tokens. Keep tokens on your server and proxy lookups through your own backend; a token shipped inside a mobile app or a web page can be extracted.
Rate limits, errors and billing
Rate limits are counted per minute and depend on the plan. The limit that applies to your account is returned as rate_limit by GET /token/usage. Past the limit the API answers HTTP 429 with "Rate limit reached, please wait and try again."
- Not found is HTTP 200 with
"error": trueand a message, not a 404. Check theerrorkey, not only the status code. The guide to HTTP 200 with error true covers the handling. - Invalid input is HTTP 400, for example a barcode with letters in it or a missing
fieldsparameter. - No requests left is HTTP 403.
Every version 2 response ends with three keys: response_time, request_fulfilled and request_debited. Only successful lookups use a request from your plan, so a barcode we do not hold comes back with "request_debited": false.
Plans and free trial
Prices are in euros per month:
- Basic, €19: 2,000 requests and up to 3 API tokens.
- Standard, €49: 10,000 requests and up to 5 API tokens.
- Pro, €99: 50,000 requests and up to 10 API tokens.
- Enterprise, €199: 200,000 requests, up to 25 API tokens, reverse lookup by style code included.
Basic Plus (€35), Standard Plus (€79) and Pro Plus (€129) add reverse lookup by style code to the matching plan. The free trial lasts 7 days, includes 100 requests and needs no payment method. Current plans are on the pricing section.
To see a result before signing up, open a public lookup page such as 198963114985. It shows the product name, image, brand and barcode type for free.
Documentation and guides
The API documentation is the reference for every route, with response examples and wrappers for C#, PHP, Python, TypeScript and Node.js. A machine-readable OpenAPI 3.1 specification is available for generating clients. These guides cover the work around the call itself:
- Barcode API guide: validating input, handling misses and caching.
- Barcode lookup API fields explained: what each field means and which ones can be empty.
- How to build a barcode scanner feature: from camera capture to a rendered result.
- Getting started with the Barcodes.GG API: token, first request, first response.
Before sending a barcode, check it with the barcode validation tool or convert it with the GTIN converter. For the lookup without code, use the sneaker barcode lookup or the style code lookup page.
Try it with your own barcodes
7 days, 100 requests, no payment method. Lookups that find nothing are not charged.
Frequently asked questions
Is there a free barcode lookup API for sneakers?
Barcodes.GG has a 7-day free trial with 100 API requests and no payment method. After the trial, plans start at €19 per month for 2,000 requests. The public lookup page for each barcode is free without an account.
What does the Barcodes.GG barcode lookup API return?
A barcode lookup returns a product object with name, brand, category, description, style code, colourway, release date, retail price, image URL and size range, and a barcode object with the barcode type, value and the size that barcode belongs to.
Can the API return every barcode for a style code?
Yes. The reverse lookup endpoint takes a style code and returns the barcodes held for it, each with its size. It is included on the Plus plans and on Enterprise.
Am I charged for a barcode that is not found?
No. Only successful lookups use a request from your plan. A lookup that finds nothing returns request_debited false.
Does the API return StockX or GOAT resale prices?
No. The Barcodes.GG API returns the retail price of a product, not resale market prices or sales history.
Guides
Barcode API Guide: Integrate Product Lookup Into Your App
A developer-focused walkthrough of how a barcode API turns a scanned GTIN into structured product data inside your application.
What Data Does a Barcode Lookup API Return?
A field-by-field explanation of what you get back from a product-data barcode API and how to handle uneven results.
How to Build a Barcode Scanner Product-Lookup Feature
A practical blueprint for wiring a camera scanner to a product-data API so users can scan an item and see what it is.