# Retailer Index

> Retailer Index is a paid API for AI agents from api.syntalic.com, paid per call via x402, $0.02/call, status unknown (last checked 2026-09-15).

Computes a normalized price index (retailer average / category average) for a specific retailer day-by-day versus its category baseline over a date range.

## Facts

- Endpoint: GET https://api.syntalic.com/v1/analyst/retailer-index
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402, shopping
- Canonical page: https://www.zero.xyz/c/retailer-index-0e16ff00
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_ccKByjVCcaAel4sTjvbZy

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 retailer-index-0e16ff00
```

Example prompt: Can you pull the daily price index for Walmart in the grocery category for the US market over the last 30 days so I can see how their pricing compares to the category average?

## When to prefer this

Use this endpoint when you need to understand a single retailer's relative price positioning versus the category average over time, expressed as a normalized index. Prefer this over Price Positioning (which is brand-focused) or Inflation (which tracks category-level trends regardless of retailer). Ideal for daily monitoring of whether a specific retailer is trending premium or discount relative to peers.

## Known failure modes

- Unknown retailer name returns a 404 or empty result
- Ambiguous category name fails fuzzy resolution and returns an error or null category_id
- Date range with no data returns an empty series
- Invalid country code returns a validation error
- category_id not found returns a lookup error
- Requesting future dates beyond now may return partial or empty data

## How this service works

Compute a normalized price index (retailer avg / category avg) for a specific retailer day-by-day versus its category baseline.

## Output

Returns a day-by-day time series of a normalized price index (retailer avg / category avg) for the specified retailer, showing whether the retailer is priced above (>1) or below (<1) the category baseline on each day, along with resolved category metadata.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "retailer"
 ],
 "properties": {
  "to": {
   "type": "string",
   "format": "date",
   "example": "2026-05-01",
   "description": "End date (ISO 8601, defaults to now)"
  },
  "from": {
   "type": "string",
   "format": "date",
   "example": "2026-04-01",
   "description": "Start date (ISO 8601, defaults to 30 days ago)"
  },
  "country": {
   "enum": [
    "us",
    "ca"
   ],
   "type": "string",
   "default": "us",
   "example": "us",
   "description": "Country (us or ca)"
  },
  "category": {
   "type": "string",
   "example": "electronics",
   "minLength": 1,
   "description": "Product category (e.g., electronics, grocery, beauty). Fuzzy human-readable input — the resolver maps it through tier 1-4 (id → exact name → trigram → embedding kNN) to a canonical category_id. Pair with `category_id` if you have a deterministic id from a prior call."
  },
  "retailer": {
   "type": "string",
   "example": "amazon",
   "description": "Retailer name (e.g., amazon, walmart)"
  },
  "department": {
   "type": "string",
   "example": "Electronics",
   "minLength": 1,
   "description": "Coarse depth-1 BrowseNodes department label (e.g., 'Electronics', 'Grocery', 'Toys & Games'). Exact-match, case-sensitive Title Case. Optional alongside `category`; either parameter alone or both together are accepted. Use this for stable cross-agent queries where the leaf-level category is too noisy."
  },
  "category_id": {
   "type": "integer",
   "example": 1,
   "minimum": 1,
   "description": "Deterministic category id. When set, bypasses the fuzzy resolver cascade and uses tier 1 (id lookup) directly. Agents that learned a canonical id from a prior call's `resolved.category_id` should pin it here for round-trip stability."
  }
 },
 "additionalProperties": false
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object"
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/retailer-index-0e16ff00/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.syntalic.com](https://www.zero.xyz/host/api.syntalic.com/llms.txt)
