Case study series #1: Using the Semantics3 API as a barcode lookup database

Semantics3
The Ecommerce Intelligencer
3 min readNov 13, 2014

--

One of the incidental side effects of operating one of the largest product databases around is our growing UPC database. As we talked about in an earlier post, there doesn’t really exist a centralized UPC database that accurately records product data and linked UPCs (or barcodes).

There are numerous reasons for this as detailed here

Semantics3 uses a product-centric approach to extracting product information from retailers. Product data from several retailers are extracted, disambiguated, and merged to matched products.

For example, if you have Product A on Site 1 and the same product on Site 2, our software generates a confidence interval matching of 99% before confirming that both products are a match.

Once this happens, product data from both sites are extracted, disambiguated and merged into a unified product metadata for that particular item. In this case, if one site has a UPC or barcode linked to the product, this is subsequently included into the database.

This is particularly useful as an all-in-one barcode lookup database.

Using our API, you can query a UPC (or barcode) and get full product metadata, along with latest prices and offers.

Here’s an example:

Query:

https://api.semantics3.com/v1/products?q={"upc":46928038398}

Response:

{
“total_results_count”: 1,
“code”: “OK”,
“offset”: 0,
“results_count”: 1,
“results”: [
{
“cat_id”: “25459",
“department”: “womens”,
“category”: “Uncategorized”,
“name”: “Victorinox Women’s 249061 Alliance Analog Display Swiss Quartz Silver Watch”,
“description”: “The Original Swiss Army Knife was created by Victo… (visit site URLs for full description)”,
“updated_at”: 1415373279,
“created_at”: 1415373279,
“sem3_id”: “5o9TJ3amg46ucis4GsuEka”,
“sitedetails”: [
{
“offers_count”: 6,
“sku”: “B00H99XBN8",
“latestoffers”: [
{
“seller”: “PPB”,
“lastrecorded_at”: 1415373200,
“currency”: “USD”,
“firstrecorded_at”: 1415373200,
“id”: “59nB8rXAdsq6wCmEgMcCgA”,
“price”: “370.45",
“condition”: “New”
},
{
“seller”: “Savvy Watch”,
“lastrecorded_at”: 1415373200,
“currency”: “USD”,
“firstrecorded_at”: 1415373200,
“id”: “6MtsF1Fm08s4MWCWmw6Qkm”,
“price”: “379.88",
“condition”: “New”
},
{
“seller”: “K.G. Company”,
“lastrecorded_at”: 1415373200,
“currency”: “USD”,
“firstrecorded_at”: 1415373200,
“availability”: “Fulfillment by Amazon”,
“id”: “4P5RGr5xv6I4MKYASKYgI6",
“price”: “409.00",
“condition”: “New”
}
],
“name”: “amazon.com”,
“url”: “http://www.amazon.com/dp/B00H99XBN8",
“recentoffers_count”: 6
}
],
“manufacturer”: “Victorinox”,
“ean”: “0046928038398",
“model”: “249061",
“offers_total”: 6,
“publisher”: “Victorinox”,
“studio”: “Victorinox”,
“price”: “370.45",
“label”: “Victorinox”,
“upc”: “046928038398",
“brand”: “Victorinox”,
“features”: {
“blob”: “Swiss Quartz movement; 30mm Stainless Steel case; Swiss-quartz Movement; Case Diameter: 30mm; Water resistant to 330 feet (100 M): suitable for snorkeling, as well as swimming, but not diving”
},
“mpn”: “249061",
“gtins”: [
“00046928038398"
],
“geo”: [
“usa”
],
“price_currency”: “USD”,
“images”: [
http://sem3-idn.s3-website-us-east-1.amazonaws.com/b6a4e7353b109c7b86c1da51d978823e,0.jpg"
],
“images_total”: 1
}
]
}

This output is called JSON, which is pretty much the most malleable data-object.

Once you set up a display to read out this data, it would look like the following:

Name: Victorinox Women’s 249061 Alliance Analog Display Swiss Quartz Silver Watch

Brand:Victorinox

Price: $370.45

UPC: 46928038398

Latest Offer: Amazon.com

Offer Price: $370.48

This makes the API particularly useful as a product inventory enrichment tool. If all you have is a bunch of UPCs and nothing much else besides, you can use our database to get full, rich product data.

--

--