# GTIN/Barcode Resolver

> GTIN/Barcode Resolver is a paid API for AI agents from handel.halowerk.com, paid per call via x402, $0.005/call, status unknown (last checked 2026-09-14).

Validates a barcode check digit locally and then looks up product details (name, brand, category, packaging, quantity, images) across Open Food Facts and a general product database.

## Facts

- Endpoint: POST https://handel.halowerk.com/v1/gtin-resolve
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/gtin-barcode-resolver-8df148c7
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_8pDrfmL5N3Q3JKrGYQiqi

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability gtin-barcode-resolver-8df148c7 -d '<json body>'
```

Example prompt: Can you look up what product this barcode belongs to: 5901234123457? I need the product name, brand, category, and packaging info.

## When to prefer this

Choose this endpoint when you need to resolve a barcode (GTIN, EAN, UPC) to core product metadata — name, brand, category, packaging, quantity, images — and you want check-digit validation done before any remote lookup so typos are caught immediately. Prefer it over raw Open Food Facts API calls when you want a single unified call across multiple databases with normalization. It complements the sibling endpoints on the same host for deeper data like ingredients, allergens, or nutritional values.

## Known failure modes

- Invalid check digit — barcode is detected as a typo before any remote query is made; returns a validation error rather than 'not found'
- Product not found in either Open Food Facts or the general product database — returns a not-found response
- Malformed or non-numeric barcode input — returns a validation error
- Network or upstream database unavailability — may return a service error
- Incomplete product record — some fields (e.g. images, packaging) may be null if the database entry lacks them

## How this service works

Looks up a barcode number across Open Food Facts and a general product database, returning product name, brand, category, packaging, quantity and images where present. The check digit is computed locally before anything is queried: an invalid number is a typo, and reporting it as not found would send the caller looking in the wrong place.

## Output

Returns a structured object containing the product name, brand, category, packaging type, quantity, and product images (where available), sourced from Open Food Facts and a general product database. Also includes the result of the local check digit validation so callers know immediately if the input barcode is malformed rather than simply not found.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "gtin": {
   "type": "string",
   "maxLength": 14,
   "minLength": 8,
   "description": "EAN-8, EAN-13, UPC-A or GTIN-14."
  },
  "sources": {
   "type": "array",
   "items": {
    "enum": [
     "openfoodfacts",
     "upcitemdb"
    ],
    "type": "string"
   },
   "description": "Which sources to query. Both if omitted."
  },
  "skip_checksum": {
   "type": "boolean",
   "default": false,
   "description": "Query even when the check digit is wrong."
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/gtin-barcode-resolver-8df148c7/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from handel.halowerk.com](https://www.zero.xyz/host/handel.halowerk.com/llms.txt)
