About this tool
Enter an 8-, 12-, 13-, or 14-digit number for barcode lookup. QRBarcode first checks its structure and check digit locally on the server, then requests a best-effort product match from UPCitemdb. Results may be missing or outdated, and a valid number does not prove ownership, registration, or authenticity.
What this lookup checks first
Before contacting a catalog, the barcode lookup validates that the input contains only digits and has a recognized length: eight for EAN-8, twelve for UPC-A, thirteen for EAN-13, or fourteen for GTIN-14. It calculates the modulo-10 check digit from the body and compares it with the final digit. Invalid structure returns immediately without consuming a third-party request.
A valid GTIN check only shows that the number follows the mathematical rule. It does not confirm that GS1 assigned it, that the current user owns it, or that a package is genuine. Counterfeit, obsolete, internal, or mistyped records can still appear structurally valid.
Find product information by barcode
- Scan the symbol or type the human-readable number exactly.
- Remove spaces and punctuation; do not remove meaningful leading zeroes.
- Submit the UPC lookup.
- Review the detected format and check-digit result.
- If a product is found, compare title, brand, category, and image with the physical item.
- Note that UPCitemdb is the displayed source and may be incomplete.
- Confirm consequential decisions with the manufacturer, retailer, or an official GS1 service.
Query parameters do not create separate indexable result pages. The canonical URL remains /barcode-lookup, preventing each number from becoming thin searchable content.
Understanding the five result states
found means UPCitemdb supplied at least one record. not_found means the number passed validation but the provider returned no item. invalid means length, characters, or the GTIN check failed. rate_limited means the free request allowance is temporarily unavailable. unavailable covers a timeout, malformed provider response, or service problem.
All five states preserve the local format analysis when possible. A quota problem should not be presented as an invalid barcode, and a missing catalog row should not be presented as proof that a number is fake.
Source, caching, and request limits
Product data comes from the UPCitemdb free lookup endpoint. QRBarcode labels that source, keeps a short server memory cache, and lets TanStack Query reuse recent client results. It does not build a permanent copy of the provider's catalog. The launch guard respects the free tier's 100 requests per day and six requests per minute; capacity can be upgraded behind the provider interface without changing the page contract.
Images are displayed only when the provider supplies a usable URL. Titles, brands, categories, and pictures can be inaccurate, user-contributed, regional, or stale. Product packaging and authoritative owner records take precedence.
UPC, EAN, and GTIN differences
UPC-A is commonly represented as GTIN-12, EAN-13 as GTIN-13, and some shipping units as GTIN-14. EAN-8 covers compact retail identifiers. Systems sometimes pad shorter values with leading zeroes for storage, so preserve the number exactly and interpret it in context. An EAN lookup and a UPC search may reach related catalog data without making the visual formats interchangeable.
Responsible uses
Barcode search is useful for identifying an unfamiliar pantry item, checking data-entry consistency, enriching a personal list, or diagnosing why a catalog association is missing. It should not be the sole control for medical products, recalls, regulated goods, authenticity, pricing, customs, or safety decisions. Use an official data owner for those tasks.
Frequently asked questions
Why is a valid barcode not found? The provider may lack the product, use a different regional record, be rate limited, or have stale data.
Does the lookup contact GS1? No. The launch provider is UPCitemdb, clearly identified in each result.
Are searches stored forever? No permanent product database is created. Short caches reduce duplicate third-party calls.
Can a found result prove authenticity? No. A copied number can resolve to a real catalog entry; verify the physical product through appropriate channels.
Interpreting a product barcode result
Compare the returned image and description with the package, but expect regional variations, old artwork, multipacks, and incomplete categories. A product barcode may legitimately point to a record whose marketing name differs from the front label. If the brand, quantity, or item type conflicts materially, verify with the manufacturer rather than editing the number to obtain a preferred result.
For an EAN lookup, preserve leading zeroes and the complete 13 digits. For UPC lookup, use the 12-digit human-readable number. Do not repeatedly add or remove padding to probe the catalog; normalization can make unrelated formats appear similar and consumes the shared request allowance.
Safe application integration
Applications consuming the API should branch on all five statuses. Show invalid as a user-correctable format or check-digit problem. Show not_found as missing third-party data, not a fake product. Delay and retry rate_limited, and offer local analysis during unavailable. Only found includes optional product fields, so interfaces must tolerate missing title, image, brand, or category.
The barcode lookup response includes source and retrieval time. Preserve those labels if displaying results elsewhere. Do not merge UPCitemdb data into a permanent authoritative catalog without a separate license and data-governance review.
Monitoring provider health
Track request volume, cache hits, response state, latency, and quota failures without retaining an unnecessary history of searched consumer items. The planned upgrade trigger is 70 calls in a day or more than five percent quota failures over seven days. That signal supports a provider decision; it does not justify hiding the source or claiming better completeness than measured.
This barcode lookup remains useful when the provider is unavailable because GTIN check analysis is local. Keep that distinction visible in monitoring and user messages. A barcode search should fail honestly and recover predictably rather than turning every upstream problem into “not found.”
Run barcode lookup checks against documented test numbers during deployment, but do not automate repeated public catalog calls in health probes. A barcode lookup monitor should validate local analysis continuously and use a cached or infrequent provider check. This preserves quota for real users while still exposing an upstream outage.