Skip to content

retailerapi/identifier

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

@retailerapi/identifier

Zero-dependency detector for product identifiers. Recognizes UPC-12, EAN-13, ISBN-10, ISBN-13, GTIN-14, Amazon ASIN, and Walmart item_id from a raw string. Returns the type plus a normalized form, so your code can dispatch to the right lookup API.

npm i @retailerapi/identifier
import { detectIdentifier } from '@retailerapi/identifier';

detectIdentifier('194629116676');
// { type: 'upc', normalized: '194629116676' }

detectIdentifier('978-0-553-21311-9');
// { type: 'isbn', normalized: '9780553213119' }

detectIdentifier('B07ABCDEFG');
// { type: 'asin', normalized: 'B07ABCDEFG' }

detectIdentifier('19667262713');
// { type: 'item_id', normalized: '19667262713' }

API

type IdentifierType = 'upc' | 'ean' | 'isbn' | 'gtin' | 'item_id' | 'asin';

interface DetectedIdentifier {
  type: IdentifierType;
  normalized: string;
}

detectIdentifier(raw: string): DetectedIdentifier | null;
identifierType(raw: string): IdentifierType | null;   // shortcut
isIdentifier(raw: string): boolean;                   // shortcut

Detection rules

Length Prefix Detected as
10 chars, last is digit or X isbn (ISBN-10)
13 digits 978 or 979 isbn (ISBN-13)
13 digits anything else ean
14 digits starts with 0 strips the zero, detects again
14 digits non-zero gtin
12 digits upc
B0 + 8 alphanumeric asin
6-11 or 12+ digits item_id (opaque retailer SKU)

Inputs are stripped of whitespace, hyphens, and underscores before matching.

What it does NOT do

  • Verify check digits. Real-world catalogs routinely surface off-by-one rows; an over-strict validator filters real data. If you need check-digit math, use a dedicated library.
  • Normalize across forms (e.g. UPC-12 → EAN-13 by prefixing 0). That's a downstream concern.

Related

  • @retailerapi/mcp — MCP server giving Claude/Cursor product-data tools backed by retailerapi.
  • retailerapi.com — Unified product API: Walmart, Amazon, eBay, Lowe's, Target, Best Buy, Home Depot. Free tier 1,000 lookups/mo.

License

MIT

About

Zero-dep detector for product identifiers — UPC-12, EAN-13, ISBN-10/13, GTIN-14, Amazon ASIN, retailer item_id. ~50 LoC, no runtime deps. Used by retailerapi.com.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors