UPCitemdb
App · E-Commerce · 3 actions
Turn a barcode into a product. UPCitemdb holds records for around 735 million barcodes (what the thing is, who makes it, what it looks like, and what the shops it tracks are charging), so a scan, a supplier's spreadsheet or a stock take can be filled in without anyone typing a product name. Look up one code or a whole column of them, or search by name when you don't have a code at all. Free to use with no account; add an API key when you need a bigger daily allowance.
Actions
| Action | What it does |
|---|---|
| Look up a product | Turn a barcode into a product: its name, brand, model, category, pictures, and what the shops UPCitemdb tracks are charging, cheapest in stock first. |
| Look up several products | Give this a list of barcodes and get one row back for each (in the order they were given, and whether or not UPCitemdb holds a record), so the results can be written straight back beside the column they came from. |
| Search for products | Find products by name when you don't have a barcode, and get their barcodes back. |
Look up a product
Turn a barcode into a product: its name, brand, model, category, pictures, and what the shops UPCitemdb tracks are charging, cheapest in stock first. Takes the number printed under the bars (a UPC, an EAN, a GTIN or a book's ISBN) or an Amazon ASIN, and works out which it is. The short barcode on a small package is expanded and an old 10-digit ISBN is converted, so the code you actually have is the code that works. A barcode nobody has comes back as not found rather than as an error, so a workflow can branch on it.
Inputs
- Barcode
codetextRequired - The number printed under the bars on the product: a UPC, an EAN, a GTIN, or a book's ISBN. Spaces and hyphens don't matter. An Amazon ASIN works here too.
Outputs
allowance_resets_attext- When that allowance comes back, as a date and time (UTC).
asintext- Amazon's own code for the product, when it is known. Empty for most products.
barcodetext- The barcode UPCitemdb files this product under, as 13 digits. This is the one to store and to look it up by again.
best_offerobject- The cheapest listing that is actually in stock -- the one to quote or to watch for a price drop. Empty when nothing is in stock.
brandtext- Who makes it.
categorytext- Where it sits in Google's product categories, as a path: 'Home & Garden > Kitchen & Dining > Kitchen Tools'.
code_giventext- The code this row was asked for, exactly as it was given, so results can be written back beside the list they came from.
colortext- Its colour, as the manufacturer names it.
currencytext- The currency the prices below are in.
descriptiontext- The manufacturer's description, where there is one.
dimensiontext- How big it is, as the manufacturer writes it, e.g. '8 X 1 X 1 inches'.
eantext- The 13-digit EAN.
foundtrue/false- Whether UPCitemdb holds a record for this code. Everything below is empty when it does not.
gtintext- The 14-digit GTIN, when the product has one.
highest_recorded_pricenumber- The highest price it has ever seen, on the same basis.
image_urltext- A picture of the product, ready to put in an email, a page or a record.
imageslist- Every picture UPCitemdb holds, best first.
in_stock_offer_countnumber- How many of them have it in stock.
lowest_recorded_pricenumber- The lowest price UPCitemdb has ever seen for this product, across every shop and the whole time it has been watching. This is a historical low, not today's price -- today's prices are in Offers.
messagetext- Why nothing came back, when nothing did. Empty otherwise.
modeltext- The manufacturer's model number.
offer_countnumber- How many shops are listed.
offerslist- What the shops UPCitemdb tracks are charging, cheapest first, with anything sold out after the rest.
product_urltext- The product's page on upcitemdb.com, for a person who wants to see the record themselves.
read_astext- Empty unless the code had to be converted before it could be looked up -- a short barcode expanded, or an old 10-digit ISBN read as a 13-digit one -- in which case this says what it was read as.
requests_left_todaynumber- How many more requests UPCitemdb will answer today. Without an API key the allowance is 100 a day and is shared with everyone else using UPCitemdb from Lodol without one, so it is worth checking before a step that looks up a long list.
sizetext- Its size, as the manufacturer writes it: a clothing size, a volume, a pack count.
titletext- The product's name.
upctext- The 12-digit UPC-A, when the product has one. This is the same number as the barcode above without its leading zero.
weighttext- How heavy it is, as the manufacturer writes it, e.g. '0.1 Pounds'.
Example output
{
"allowance_resets_at": "2026-09-15T00:00:00+00:00",
"asin": "B0000DJYE3",
"barcode": "4002293401102",
"best_offer": {
"condition": "New",
"currency": "USD",
"domain": "chefscatalog.com",
"in_stock": true,
"link": "https://www.upcitemdb.com/norob/alink/?id=u2o243z2w203b454s2",
"list_price": 26.0,
"merchant": "Chefs Catalog",
"price": 15.95,
"shipping": "Free Shipping",
"shipping_cost": 0.0,
"title": "Wusthof Gourmet 3-in. Serrated Paring Knife",
"updated": "2015-12-01T16:47:55+00:00"
},
"brand": "Wusthof",
"category": "Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils",
"code_given": "4002293401102",
"color": "Multi",
"currency": "USD",
"description": "Wusthof Gourmet 3-in. Serrated Paring Knife",
"dimension": "8 X 1 X 1 inches",
"ean": "4002293401102",
"found": true,
"gtin": "",
"highest_recorded_price": 32.94,
"image_url": "https://www.chefscatalog.com/img/products/500x500/99528_500.jpg",
"images": [
"https://www.chefscatalog.com/img/products/500x500/99528_500.jpg"
],
"in_stock_offer_count": 1,
"lowest_recorded_price": 12.99,
"message": "",
"model": "4011-7",
"offer_count": 1,
"offers": [
{
"condition": "New",
"currency": "USD",
"domain": "chefscatalog.com",
"in_stock": true,
"link": "https://www.upcitemdb.com/norob/alink/?id=u2o243z2w203b454s2",
"list_price": 26.0,
"merchant": "Chefs Catalog",
"price": 15.95,
"shipping": "Free Shipping",
"shipping_cost": 0.0,
"title": "Wusthof Gourmet 3-in. Serrated Paring Knife",
"updated": "2015-12-01T16:47:55+00:00"
}
],
"product_url": "https://www.upcitemdb.com/upc/4002293401102",
"read_as": "",
"requests_left_today": 87,
"size": "",
"title": "Wusthof Gourmet 3-Inch Serrated Paring Knife",
"upc": "",
"weight": "0.1 Pounds"
}Look up several products
Give this a list of barcodes and get one row back for each (in the order they were given, and whether or not UPCitemdb holds a record), so the results can be written straight back beside the column they came from. This is the step behind filling in a supplier's spreadsheet, enriching a stock take, or checking a batch of scans. A barcode the list repeats is looked up, and returned, once.
Inputs
- Barcodes
codeslistRequired - The barcodes to look up, up to 50 at a time. Type them in, or wire in a column from a spreadsheet or an earlier step. A long list takes a moment and uses more of your daily allowance.
Outputs
allowance_resets_attext- When that allowance comes back, as a date and time (UTC).
countnumber- How many barcodes were looked up.
found_countnumber- How many of them UPCitemdb had a record for.
not_foundlist- The barcodes with no record, exactly as they were given.
productslist- One row per distinct barcode asked for, in the order they were given.
requests_left_todaynumber- How many more requests UPCitemdb will answer today. Without an API key the allowance is 100 a day and is shared with everyone else using UPCitemdb from Lodol without one, so it is worth checking before a step that looks up a long list.
Example output
{
"allowance_resets_at": "2026-09-15T00:00:00+00:00",
"count": 2,
"found_count": 1,
"not_found": [
"0000000000000"
],
"products": [
{
"asin": "B0000DJYE3",
"barcode": "4002293401102",
"best_offer": {
"condition": "New",
"currency": "USD",
"domain": "chefscatalog.com",
"in_stock": true,
"link": "https://www.upcitemdb.com/norob/alink/?id=u2o243z2w203b454s2",
"list_price": 26.0,
"merchant": "Chefs Catalog",
"price": 15.95,
"shipping": "Free Shipping",
"shipping_cost": 0.0,
"title": "Wusthof Gourmet 3-in. Serrated Paring Knife",
"updated": "2015-12-01T16:47:55+00:00"
},
"brand": "Wusthof",
"category": "Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils",
"code_given": "4002293401102",
"color": "Multi",
"currency": "USD",
"description": "Wusthof Gourmet 3-in. Serrated Paring Knife",
"dimension": "8 X 1 X 1 inches",
"ean": "4002293401102",
"found": true,
"gtin": "",
"highest_recorded_price": 32.94,
"image_url": "https://www.chefscatalog.com/img/products/500x500/99528_500.jpg",
"images": [
"https://www.chefscatalog.com/img/products/500x500/99528_500.jpg"
],
"in_stock_offer_count": 1,
"lowest_recorded_price": 12.99,
"message": "",
"model": "4011-7",
"offer_count": 1,
"offers": [
{
"condition": "New",
"currency": "USD",
"domain": "chefscatalog.com",
"in_stock": true,
"link": "https://www.upcitemdb.com/norob/alink/?id=u2o243z2w203b454s2",
"list_price": 26.0,
"merchant": "Chefs Catalog",
"price": 15.95,
"shipping": "Free Shipping",
"shipping_cost": 0.0,
"title": "Wusthof Gourmet 3-in. Serrated Paring Knife",
"updated": "2015-12-01T16:47:55+00:00"
}
],
"product_url": "https://www.upcitemdb.com/upc/4002293401102",
"read_as": "",
"size": "",
"title": "Wusthof Gourmet 3-Inch Serrated Paring Knife",
"upc": "",
"weight": "0.1 Pounds"
},
{
"asin": "",
"barcode": "0000000000000",
"code_given": "0000000000000",
"found": false,
"message": "UPCitemdb holds no product for 0000000000000."
}
],
"requests_left_today": 87
}Search for products
Find products by name when you don't have a barcode, and get their barcodes back. Search the whole catalogue or just books, narrow it by brand, category, model number or a word in the title, and choose whether every word has to appear or the closest matches will do. Each result is the same full product record a barcode lookup returns, prices and pictures included. Worth knowing: searching is limited more tightly than looking a barcode up on UPCitemdb's free plan, so a search-heavy workflow is the first reason to add a key.
Inputs
- Search for
keywordstextRequired - What to search for: a product name, a brand, a model number, or any words from the title.
- Look in
item_typetext - Which part of the catalogue to search.One of:
product(Products),book(Books). Default:product. - Matching
matchtext - How closely a product has to match. Requiring every word finds fewer but better matches; the other setting always finds something.One of:
all_words(Every word must appear),best_matches(Closest matches, even if some words are missing). Default:all_words. - Brand
brandtext - Only products from this brand.
- Category
categorytext - Only products in a category matching this word, e.g. 'phones' or 'kitchen'.
- Title contains
title_containstext - Only products whose title contains this, for narrowing a broad search to one variant, e.g. '64gb'.
- Model number
modeltext - Only products with this manufacturer's model number.
- How many products
limitnumber - How many products to bring back, up to 50. Asking for more takes longer and uses more of your daily allowance.From 1 to 50. Default:
10.
Outputs
allowance_resets_attext- When that allowance comes back, as a date and time (UTC).
countnumber- How many products came back.
keywordstext- What was searched for.
more_availabletrue/false- Whether there are more beyond the ones returned. Ask for more with 'How many products'.
productslist- The products found, best match first.
requests_left_todaynumber- How many more requests UPCitemdb will answer today. Without an API key the allowance is 100 a day and is shared with everyone else using UPCitemdb from Lodol without one, so it is worth checking before a step that looks up a long list.
total_matchesnumber- How many products UPCitemdb says match altogether, which is usually far more than were asked for.
Example output
{
"allowance_resets_at": "2026-09-15T00:00:00+00:00",
"count": 1,
"keywords": "wusthof paring knife",
"more_available": true,
"products": [
{
"asin": "B0000DJYE3",
"barcode": "4002293401102",
"best_offer": {
"condition": "New",
"currency": "USD",
"domain": "chefscatalog.com",
"in_stock": true,
"link": "https://www.upcitemdb.com/norob/alink/?id=u2o243z2w203b454s2",
"list_price": 26.0,
"merchant": "Chefs Catalog",
"price": 15.95,
"shipping": "Free Shipping",
"shipping_cost": 0.0,
"title": "Wusthof Gourmet 3-in. Serrated Paring Knife",
"updated": "2015-12-01T16:47:55+00:00"
},
"brand": "Wusthof",
"category": "Home & Garden > Kitchen & Dining > Kitchen Tools & Utensils",
"color": "Multi",
"currency": "USD",
"description": "Wusthof Gourmet 3-in. Serrated Paring Knife",
"dimension": "8 X 1 X 1 inches",
"ean": "4002293401102",
"found": true,
"gtin": "",
"highest_recorded_price": 32.94,
"image_url": "https://www.chefscatalog.com/img/products/500x500/99528_500.jpg",
"images": [
"https://www.chefscatalog.com/img/products/500x500/99528_500.jpg"
],
"in_stock_offer_count": 1,
"lowest_recorded_price": 12.99,
"message": "",
"model": "4011-7",
"offer_count": 1,
"offers": [
{
"condition": "New",
"currency": "USD",
"domain": "chefscatalog.com",
"in_stock": true,
"link": "https://www.upcitemdb.com/norob/alink/?id=u2o243z2w203b454s2",
"list_price": 26.0,
"merchant": "Chefs Catalog",
"price": 15.95,
"shipping": "Free Shipping",
"shipping_cost": 0.0,
"title": "Wusthof Gourmet 3-in. Serrated Paring Knife",
"updated": "2015-12-01T16:47:55+00:00"
}
],
"product_url": "https://www.upcitemdb.com/upc/4002293401102",
"size": "",
"title": "Wusthof Gourmet 3-Inch Serrated Paring Knife",
"upc": "",
"weight": "0.1 Pounds"
}
],
"requests_left_today": 87,
"total_matches": 366
}