<!-- https://pricto.dev/docs/api/get-product · versión en inglés: https://pricto.dev/docs/api/get-product.en.md -->

# Obtener un producto

`GET https://pricto.dev/v1/products/{product_id}`

Get a product

| Créditos | MCP |
|---|---|
| 1 | — |

## Parámetros

| Parámetro | En | Tipo | Descripción |
|---|---|---|---|
| `product_id` **requerido** | path | `string` | Canonical product ID (`prd_...`). A GTIN is also accepted here and resolved. |
| `max_credits` | query | `number` | Spend at most this many credits on this call. Results are cut to fit and `meta.usage.truncated` is true. |
| `dry_run` | query | `boolean` | Return the quote in `meta.usage` with `data` set to null, without charging. Default: `false`. |
| `lang` | query | `string` | Response language as a BCP 47 tag (`es`, `es-CL`, `en`, `en-US`...). Supported today: es, en. An unsupported language falls back to English with a warning, never an error. Falls back to `Accept-Language`, then to the account default. The resolved value is in `meta.lang`. |
| `currency` | query | `string` | Add converted amounts in this ISO 4217 currency. `local` (default) returns source currency only. Default: `local`. |

## Respuesta

`200` The canonical product with identifiers, attributes and price summary.

| Campo | Tipo | Descripción |
|---|---|---|
| `data` **requerido** | `Product` |  |
| `data.id` **requerido** | `string` |  |
| `data.name` **requerido** | `string` |  |
| `data.brand` **requerido** | `BrandRef` |  |
| `data.brand.id` **requerido** | `string` |  |
| `data.brand.name` **requerido** | `string` |  |
| `data.category` **requerido** | `CategoryRef` |  |
| `data.category.id` **requerido** | `string` |  |
| `data.category.label` **requerido** | `string` |  |
| `data.category.path` | `string[]` |  |
| `data.size` | `object` |  |
| `data.gtin` | `string[]` |  |
| `data.image_url` | `string \| null` |  |
| `data.price_summary` **requerido** | `PriceSummary` |  |
| `data.price_summary.currency` **requerido** | `string` |  |
| `data.price_summary.min` **requerido** | `number \| null` |  |
| `data.price_summary.max` **requerido** | `number \| null` |  |
| `data.price_summary.median` | `number \| null` |  |
| `data.price_summary.offers_count` **requerido** | `integer` |  |
| `data.price_summary.retailers_count` **requerido** | `integer` |  |
| `data.price_summary.best` | `object \| null` |  |
| `data.price_summary.best.retailer` | `RetailerRef` |  |
| `data.price_summary.best.offer_id` | `string` |  |
| `data.price_summary.best.price` | `number` |  |
| `data.price_summary.observed_at` | `string (date-time) \| null` |  |
| `data.price_summary.converted` | `object` |  |
| `data.price_summary.converted.currency` | `string` |  |
| `data.price_summary.converted.min` | `number \| null` |  |
| `data.price_summary.converted.max` | `number \| null` |  |
| `data.price_summary.converted.fx_rate` | `number` |  |
| `data.price_summary.converted.fx_date` | `string (date)` |  |
| `data.price_summary.converted.fx_source` | `string` |  |
| `data.price_summary.converted.fx_method` | `string` | Valores / values: `direct`, `cross`. |
| `data.score` | `number` | Relevance score, search only. |
| `data.names` | `object` | Name in every available language. |
| `data.names_meta` | `object` | Provenance of each name, keyed by language. |
| `data.private_label` | `boolean` | Store brand of one retailer. |
| `data.relations` | `object[]` | Links to other canonical products. |
| `data.relations[].kind` **requerido** | `string` | Valores / values: `pack_of`, `size_of`, `variant_of`, `equivalent`, `replaced_by`. |
| `data.relations[].product_id` **requerido** | `string` |  |
| `data.relations[].quantity_ratio` **requerido** | `number \| null` | For pack_of and size_of, how many units of product_id this product contains. |
| `data.identifiers` | `object` |  |
| `data.identifiers.gtin` | `string[]` |  |
| `data.identifiers.mpn` | `string \| null` |  |
| `data.attributes` | `object` |  |
| `data.countries` | `string[]` |  |
| `data.first_seen` | `string (date-time)` |  |
| `meta` **requerido** | `Meta` |  |

`meta` trae el costo, la fuente para citar, el idioma, la moneda y los avisos (ver [Convenciones](/docs/convenciones)).

## Errores

- [`unauthorized`](/docs/errores#unauthorized)
- [`not_found`](/docs/errores#not_found)

## Ejemplo

```bash
curl "https://pricto.dev/v1/products/prd_01colu" \
  -H "Authorization: Bearer sk_test_sandbox"
```
```python
import requests

API_KEY = "sk_test_sandbox"

r = requests.get(
    "https://pricto.dev/v1/products/prd_01colu",
    headers={"Authorization": f"Bearer {API_KEY}"},
)
print(r.status_code, r.json())
```
```js
const API_KEY = "sk_test_sandbox";

const res = await fetch("https://pricto.dev/v1/products/prd_01colu", {
  headers: { Authorization: `Bearer ${API_KEY}` },
});
console.log(res.status, await res.json());
```

```json
{
  "data": {
    "id": "prd_01colu",
    "name": "Leche entera Colun 1 L",
    "brand": {
      "id": "colun",
      "name": "Colun"
    },
    "category": {
      "id": "food.dairy.milk",
      "label": "Leche",
      "path": [
        "Alimentos y bebidas",
        "Lácteos",
        "… 1 más / more"
      ]
    },
    "size": {
      "value": 1,
      "unit": "l",
      "pack_count": 1,
      "text": "1 L"
    },
    "gtin": [
      "2000070000007"
    ],
    "image_url": null,
    "price_summary": {
      "currency": "CLP",
      "min": 1090,
      "max": 1290,
      "median": 1190,
      "offers_count": 3,
      "retailers_count": 3,
      "best": {
        "retailer": {
          "id": "cl-unimarc",
          "name": "Unimarc"
        },
        "offer_id": "ofr_01nuni",
        "price": 1090
      },
      "observed_at": "2026-10-23T11:00:00Z"
    },
    "names": {
      "es": "Leche entera Colun 1 L",
      "en": "Colun whole milk 1 L"
    },
    "names_meta": {
      "es": {
        "source": "canonical",
        "model": null,
        "translated_at": null
      },
      "en": {
        "source": "model",
        "model": "synthetic",
        "translated_at": "2026-06-26T08:00:00Z"
      }
    },
    "private_label": false,
    "relations": [],
    "identifiers": {
      "gtin": [
        "2000070000007"
      ],
      "mpn": null
    },
    "attributes": {},
    "countries": [
      "CL"
    ],
    "first_seen": "2026-06-26T08:00:00Z"
  },
  "meta": {
    "request_id": "req_30f17482c60a43bdbfc0",
    "attribution": {
      "text": "Fuente: Pricto · 23-10-2026 08:00 CLST · prd_01colu",
      "source": "Pricto",
      "as_of": "2026-10-23T11:00:00Z",
      "resource_id": "prd_01colu",
      "url": null,
      "capture_method": null,
      "source_url": null
    },
    "credits_charged": 1,
    "credits_deduplicated": 0,
    "credits_remaining": 14997,
    "period_resets_at": "2026-11-01T00:00:00.000Z",
    "usage": {
      "credits_charged": 1,
      "credits_deduplicated": 0,
      "truncated": false,
      "truncated_reason": null,
      "dry_run": false,
      "units": {
        "items": 1
      }
    },
    "lang": "es",
    "currency": "local",
    "data_as_of": "2026-10-23T11:00:00Z",
    "warnings": [
      "synthetic_data: datos sintéticos de ejemplo / synthetic sample data"
    ]
  }
}
```
