# Grundpreis Pack Comparator

> Grundpreis Pack Comparator is a paid API for AI agents from grundpreis.halowerk.com, paid per call via x402, $0.002/call, status unknown (last checked 2026-10-21).

Compares two or more product packs on a normalized price-per-unit basis, flagging incompatible or unknown quantities rather than silently miscomparing them.

## Facts

- Endpoint: POST https://grundpreis.halowerk.com/v1/pack-compare?utm_source=zero.xyz
- Price: $0.002/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-21
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/grundpreis-pack-comparator-c76bf73a
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_tb2a1AOz7ceAJg7iCSylU

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 grundpreis-pack-comparator-c76bf73a -d '<json body>'
```

Example prompt: Compare these two packs for me: a 500g option at EUR 1.49 and a 1kg option at EUR 2.69 — which one is cheaper per kilogram, and flag it if they can't actually be compared on the same basis?

## When to prefer this

Choose this endpoint when you need to compare multiple product packs on a normalized per-unit basis and want incompatible or ambiguous quantities explicitly flagged rather than silently ignored. It is purpose-built for grocery and retail price-per-unit comparison (Grundpreis in German law sense) and handles mixed quantity strings gracefully. Prefer it over generic math when unit parsing and incompatibility detection matter.

## Known failure modes

- Quantity string cannot be parsed — pack is flagged as unknown rather than silently dropped
- Units are incompatible across packs (e.g. grams vs millilitres) — comparison is flagged rather than forced
- Fewer than 2 packs supplied — request rejected per minItems constraint
- Price is zero or negative — rejected by exclusiveMinimum validation
- EAN not found in Open Food Facts — quantity falls back to supplied quantity string or unknown flag

## How this service works

Compare supplied packs within the same mass or volume basis. Example: 500 g at EUR 1.49 versus 1 kg at EUR 2.69. Unknown quantities and incompatible units are marked rather than silently compared.

## Output

Returns a ranked list of the submitted packs with their normalized unit prices (e.g. price per kg or per litre), a best-value indicator, and explicit flags for any packs whose quantity was unrecognizable or whose units are incompatible with the others in the comparison set.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "packs": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "price_eur"
    ],
    "properties": {
     "ean": {
      "type": "string",
      "maxLength": 14,
      "minLength": 8
     },
     "label": {
      "type": "string",
      "maxLength": 80
     },
     "quantity": {
      "type": "string",
      "maxLength": 40
     },
     "price_eur": {
      "type": "number",
      "maximum": 100000,
      "exclusiveMinimum": 0
     }
    },
    "additionalProperties": false
   },
   "maxItems": 20,
   "minItems": 2
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/grundpreis-pack-comparator-c76bf73a/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from grundpreis.halowerk.com](https://www.zero.xyz/host/grundpreis.halowerk.com/llms.txt)
