<!-- https://pricto.dev/docs/api · Spanish version: https://pricto.dev/docs/api.md -->

# API reference

Generated from [OpenAPI 3.1](/openapi.yaml) (also as [JSON](/openapi.json)). Base URL: `https://pricto.dev/v1`. Authentication: `Authorization: Bearer <key>` (see [Authentication](/docs/autenticacion)).

## Products

| | Path | What it does | Credits |
|---|---|---|---|
| `GET` | [`/v1/products/search`](/docs/api/search-products) | Search products by text | 1 per page of up to 20 results; 0 when nothing is found |
| `GET` | [`/v1/products`](/docs/api/list-products) | List products by exact filters | 1 per 20 products returned |
| `GET` | [`/v1/products/{product_id}`](/docs/api/get-product) | Get a product | 1 |

## Prices

| | Path | What it does | Credits |
|---|---|---|---|
| `GET` | [`/v1/products/{product_id}/prices`](/docs/api/get-product-prices) | Current prices of a product at every retailer | 1 per retailer offer returned |
| `GET` | [`/v1/products/{product_id}/history`](/docs/api/get-product-history) | Price history of a product | 1 per 30 points per series (minimum 1 per series) |
| `POST` | [`/v1/prices/compare`](/docs/api/compare-prices) | Compare a basket of products across retailers | 1 per price in the matrix (product × retailer with data) |
| `POST` | [`/v1/prices/batch`](/docs/api/batch-prices) | Current prices for many products or offers in one call | 1 per offer price returned; items not found cost 0 |
| `POST` | [`/v1/live-checks`](/docs/api/create-live-check) | Request a live price check (planned) | 10 per offer refreshed |

## Offers

| | Path | What it does | Credits |
|---|---|---|---|
| `GET` | [`/v1/offers`](/docs/api/list-offers) | List retailer offers | 1 per offer returned |
| `GET` | [`/v1/offers/{offer_id}`](/docs/api/get-offer) | Get an offer with its current price | 1 |
| `GET` | [`/v1/offers/{offer_id}/history`](/docs/api/get-offer-history) | Observations of a single offer | 1 per 30 points (minimum 1) |

## Reference and coverage

| | Path | What it does | Credits |
|---|---|---|---|
| `GET` | [`/v1/retailers`](/docs/api/list-retailers) | List retailers | 0 |
| `GET` | [`/v1/retailers/{retailer_id}`](/docs/api/get-retailer) | Get a retailer | 0 |
| `GET` | [`/v1/stores`](/docs/api/list-stores) | List physical stores and pickup points | 0 |
| `GET` | [`/v1/categories`](/docs/api/list-categories) | Category taxonomy | 0 |
| `GET` | [`/v1/brands`](/docs/api/list-brands) | List brands | 0 |
| `GET` | [`/v1/coverage`](/docs/api/get-coverage) | What data is available | 0 |
| `GET` | [`/v1/countries`](/docs/api/list-countries) | Countries, currencies and languages | 0 |
| `GET` | [`/v1/fx`](/docs/api/get-fx-rate) | Exchange rate used for conversions | 0 |
| `GET` | [`/v1/status`](/docs/api/get-status) | Service status and data freshness | 0 |
| `GET` | [`/v1/public/coverage`](/docs/api/get-public-coverage) | Aggregated coverage without prices (no key) | 0 |

## Account

| | Path | What it does | Credits |
|---|---|---|---|
| `GET` | [`/v1/account`](/docs/api/get-account) | Plan and credit balance of the calling key | 0 |
| `GET` | [`/v1/usage`](/docs/api/get-usage) | Credits consumed, grouped by day, operation, channel or key | 0 |
| `POST` | [`/v1/data-requests`](/docs/api/create-data-request) | Ask for coverage or data that is not available | 0 |

## Exports

| | Path | What it does | Credits |
|---|---|---|---|
| `POST` | [`/v1/exports`](/docs/api/create-export) | Create a bulk export (planned) | 1 per 10 rows |
| `GET` | [`/v1/exports/{export_id}`](/docs/api/get-export) | Get an export job (planned) | 0 |
