# DecaData Odyssey Lite API

> US retail point-of-sale sales and units for about 380 consumer companies (weekly for all, daily for the largest), by ISIN or ticker, from 2018-01-01. Company totals from eight US retailers, mapped to the company that owned each brand at the time (history is never restated). Pay per request in USDC over HTTP 402 (x402): no account, no API key.

Data is available 7 days after the transaction date (T+7); currently through 2026-10-08. All responses are JSON.

## Free endpoints

- [Coverage](https://api.decadata.io/v1/coverage): every company on sale, with isin, ticker, name, tier, first_date, last_date
- [Company](https://api.decadata.io/v1/companies/ticker:PEP): look up one company by ISIN (`/v1/companies/US7134481081`), `isin:...` or `ticker:...`
- [Sample](https://api.decadata.io/v1/companies/ticker:PEP/sample): Q1 2019 rows for a company, free, to judge the data
- [Quote](https://api.decadata.io/v1/quote?company=ticker:PEP&from=2025-01-01&to=2025-12-31&freq=daily): the exact price of a request before buying

## Paid endpoint

`GET https://api.decadata.io/v1/companies/{id}/sales?from=YYYY-MM-DD&to=YYYY-MM-DD&freq=daily|weekly`

Without `to`, the window ends at the latest day on sale; without `from`, it's just that day (weekly: that whole week).

Rows: `date` (or `week_start`, a Monday), `units`, `sales` (USD), `panel_stores` (stores in the panel that traded that day; divide sales by it to compare periods), `unique_stores` and `unique_customers` (may be null).

How to pay (x402 version 2, https://x402.org):
1. Request without payment: the response is `402 Payment Required`, with the `PaymentRequired` object in the `PAYMENT-REQUIRED` header (base64) and as the body: `accepts` gives the price (`amount`, USDC with 6 decimals), `payTo`, `asset` and `network` (`eip155:8453`, Base), and `resource` the exact window being bought.
2. Sign the payment with your wallet and repeat the request with the `PAYMENT-SIGNATURE` header. x402 client libraries for JavaScript and Python do this for you.
3. The payment is verified, the data read, and only then the payment settled. The response carries the rows, a receipt and the licence; the `PAYMENT-RESPONSE` header has the settlement.

One payment buys one response. A request for days not yet on sale is cut back to the latest day on sale, and only those days are charged. Defaults: `to` = latest day on sale, `from` = 90 days before, `freq` = daily (weekly for tier 3).

## Prices (USD)

The latest 90 days on sale are "live"; older days are "history". Each company's tier is in /v1/coverage.

| Tier | Live, per company-day | History, per company-month | Frequency |
|---|---|---|---|
| 1 | $5.00 | $15.00 | daily or weekly |
| 2 | $1.50 | $4.00 | daily or weekly |
| 3 | $10.00 per company-month | $1.00 | weekly only |

History is charged by the day at the monthly rate / 30. Minimum $1.00 per request; at most 1098 days per request. Weekly windows are whole Monday-to-Sunday weeks. One payer can buy up to 50 different companies in 30 days.

## Licence

Licensed to the purchaser for its own research. No redistribution or resale. https://decadata.io/terms

Every response carries a mark that identifies the purchase it was sold in.

## More

- [Odyssey Lite subscription](https://decadata.io/#contact): every company and brand, from T+3, with full history in bulk; API spend counts towards it
- [DecaData](https://decadata.io)
