Obtener una oferta con su precio actual
GET
https://pricto.dev/v1/offers/{offer_id}Get an offer with its current price
| Créditos | MCP |
|---|---|
| 1 | — |
Parámetros#
| Parámetro | En | Tipo | Descripción |
|---|---|---|---|
offer_id requerido | path | string | |
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 offer.
| Campo | Tipo | Descripción |
|---|---|---|
data requerido | Offer | |
data.id requerido | string | |
data.retailer requerido | RetailerRef | |
data.retailer.id requerido | string | |
data.retailer.name requerido | string | |
data.product_id | string | null | |
data.store_id | string | null | |
data.title_original requerido | string | |
data.title_lang | string | BCP 47 language of title_original. |
data.url requerido | string (uri) | |
data.retailer_sku | string | null | |
data.retailer_product_id | string | null | Parent product in the store (groups variants and sizes). Availability is measured per product: available if any of its SKUs is in stock. |
data.seller | Seller | Who sells the offer. On marketplaces it is a third party; name is null when the seller is a natural person (no personal data). |
data.seller.id requerido | string | |
data.seller.name requerido | string | null | |
data.seller.is_retailer_itself requerido | boolean | |
data.gtin | string | null | |
data.brand | string | null | |
data.category | object | |
data.match | object | |
data.current requerido | PriceQuote | A price as observed. price is the best price any customer pays without conditions (sale price if present, otherwise list price). Conditional prices are separate: card_price requires a payment method and promotions require a quantity or bundle. |
data.current.currency requerido | string | |
data.current.price requerido | number | |
data.current.list_price requerido | number | |
data.current.sale_price | number | null | |
data.current.card_price | number | null | Convenience: the lowest price in conditional_prices that requires a payment method or membership. |
data.current.card_label | string | null | |
data.current.conditional_prices | ConditionalPrice[] | Every price that requires a condition other than quantity (payment method, loyalty tier, app, coupon), as published. |
data.current.conditional_prices[].kind requerido | string | Valores / values: payment_method, membership, app_only, coupon, other. |
data.current.conditional_prices[].label requerido | string | As shown by the retailer. |
data.current.conditional_prices[].price requerido | number | |
data.current.conditional_prices[].payment_method | string | null | |
data.current.conditional_prices[].membership_tier | string | null | |
data.current.conditional_prices[].installments_count | integer | null | |
data.current.conditional_prices[].interest_free | boolean | null | |
data.current.unit_price | object | null | |
data.current.unit_price.amount requerido | number | |
data.current.unit_price.per requerido | string | Valores / values: kg, l, unit, m, m2. |
data.current.promotions | Promotion[] | |
data.current.promotions[].type requerido | string | Valores / values: multi_buy, nth_unit, percent_off, amount_off, bundle, gift, other. |
data.current.promotions[].label requerido | string | As shown by the retailer, e.g. "2 x $2.990". |
data.current.promotions[].min_quantity | integer | null | |
data.current.promotions[].effective_unit_price | number | null | Price per item when the promotion applies. |
data.current.promotions[].requires_card | string | null | Payment method required, if any. |
data.current.promotions[].valid_until | string (date) | null | |
data.current.availability requerido | string | Valores / values: in_stock, out_of_stock, limited, unknown. |
data.current.tax_included | boolean | As shown by the retailer (observed). |
data.current.tax_rate | number | null | Derived. Main VAT rate for this country and category, null when not known. |
data.current.price_ex_tax | number | null | Derived from price and tax_rate. Null when tax_rate is null. |
data.current.tax_rule_id | string | null | Versioned rule used to derive tax_rate. |
data.current.other_taxes_included | boolean | null | True when other taxes remain in price_ex_tax (e.g. Chile IABA on sweetened drinks). |
data.current.installments | object | |
data.current.observed_at requerido | string (date-time) | |
data.current.observed_local_date | string (date) | Capture date in the retailer time zone. Daily series use this date. |
data.current.capture_method requerido | string | How the price was obtained, part of the provenance with url and observed_at. public_page: read from the retailer's public web page (HTML, JSON-LD or the page payload). public_api: an open, unauthenticated JSON endpoint of the retailer's own site. retailer_feed: delivered by the retailer under an agreement. open_data: a public dataset published by a government or third party. Valores / values: public_page, public_api, retailer_feed, open_data. |
data.current.quality_status | string | warning when a validation flagged the observation (price jump, zero, unusual unit). Quarantined observations are never served. Valores / values: ok, warning. |
data.current.quality_flags | string[] | Why the price was flagged. The price is delivered as published, never corrected. discount_over_85: more than 85% off the list price. round_price_low: a round price of CLP 1,000 or less. Both often mean a placeholder price or a store error. |
data.current.corrected | boolean | True when the observation was amended after capture (the original is kept). |
data.current.converted | Converted | |
data.current.converted.currency requerido | string | |
data.current.converted.price requerido | number | |
data.current.converted.list_price | number | null | |
data.current.converted.card_price | number | null | |
data.current.converted.unit_price | number | null | |
data.current.converted.fx_rate requerido | number | Units of target currency per unit of source currency. |
data.current.converted.fx_date requerido | string (date) | Publication date of the rate used (last published on or before the observation date). |
data.current.converted.fx_source | string | |
data.current.converted.fx_method | string | Valores / values: direct, cross. |
data.first_seen | string (date-time) | |
data.last_changed | string (date-time) | null | |
meta requerido | Meta |
meta trae el costo, la fuente para citar, el idioma, la moneda y los avisos (ver Convenciones).
Errores#
Get an offer with its current price
GET
https://pricto.dev/v1/offers/{offer_id}Get an offer with its current price
| Credits | MCP |
|---|---|
| 1 | — |
Parameters#
| Parameter | In | Type | Description |
|---|---|---|---|
offer_id required | path | string | |
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. |
Response#
200 The offer.
| Field | Type | Description |
|---|---|---|
data required | Offer | |
data.id required | string | |
data.retailer required | RetailerRef | |
data.retailer.id required | string | |
data.retailer.name required | string | |
data.product_id | string | null | |
data.store_id | string | null | |
data.title_original required | string | |
data.title_lang | string | BCP 47 language of title_original. |
data.url required | string (uri) | |
data.retailer_sku | string | null | |
data.retailer_product_id | string | null | Parent product in the store (groups variants and sizes). Availability is measured per product: available if any of its SKUs is in stock. |
data.seller | Seller | Who sells the offer. On marketplaces it is a third party; name is null when the seller is a natural person (no personal data). |
data.seller.id required | string | |
data.seller.name required | string | null | |
data.seller.is_retailer_itself required | boolean | |
data.gtin | string | null | |
data.brand | string | null | |
data.category | object | |
data.match | object | |
data.current required | PriceQuote | A price as observed. price is the best price any customer pays without conditions (sale price if present, otherwise list price). Conditional prices are separate: card_price requires a payment method and promotions require a quantity or bundle. |
data.current.currency required | string | |
data.current.price required | number | |
data.current.list_price required | number | |
data.current.sale_price | number | null | |
data.current.card_price | number | null | Convenience: the lowest price in conditional_prices that requires a payment method or membership. |
data.current.card_label | string | null | |
data.current.conditional_prices | ConditionalPrice[] | Every price that requires a condition other than quantity (payment method, loyalty tier, app, coupon), as published. |
data.current.conditional_prices[].kind required | string | Valores / values: payment_method, membership, app_only, coupon, other. |
data.current.conditional_prices[].label required | string | As shown by the retailer. |
data.current.conditional_prices[].price required | number | |
data.current.conditional_prices[].payment_method | string | null | |
data.current.conditional_prices[].membership_tier | string | null | |
data.current.conditional_prices[].installments_count | integer | null | |
data.current.conditional_prices[].interest_free | boolean | null | |
data.current.unit_price | object | null | |
data.current.unit_price.amount required | number | |
data.current.unit_price.per required | string | Valores / values: kg, l, unit, m, m2. |
data.current.promotions | Promotion[] | |
data.current.promotions[].type required | string | Valores / values: multi_buy, nth_unit, percent_off, amount_off, bundle, gift, other. |
data.current.promotions[].label required | string | As shown by the retailer, e.g. "2 x $2.990". |
data.current.promotions[].min_quantity | integer | null | |
data.current.promotions[].effective_unit_price | number | null | Price per item when the promotion applies. |
data.current.promotions[].requires_card | string | null | Payment method required, if any. |
data.current.promotions[].valid_until | string (date) | null | |
data.current.availability required | string | Valores / values: in_stock, out_of_stock, limited, unknown. |
data.current.tax_included | boolean | As shown by the retailer (observed). |
data.current.tax_rate | number | null | Derived. Main VAT rate for this country and category, null when not known. |
data.current.price_ex_tax | number | null | Derived from price and tax_rate. Null when tax_rate is null. |
data.current.tax_rule_id | string | null | Versioned rule used to derive tax_rate. |
data.current.other_taxes_included | boolean | null | True when other taxes remain in price_ex_tax (e.g. Chile IABA on sweetened drinks). |
data.current.installments | object | |
data.current.observed_at required | string (date-time) | |
data.current.observed_local_date | string (date) | Capture date in the retailer time zone. Daily series use this date. |
data.current.capture_method required | string | How the price was obtained, part of the provenance with url and observed_at. public_page: read from the retailer's public web page (HTML, JSON-LD or the page payload). public_api: an open, unauthenticated JSON endpoint of the retailer's own site. retailer_feed: delivered by the retailer under an agreement. open_data: a public dataset published by a government or third party. Valores / values: public_page, public_api, retailer_feed, open_data. |
data.current.quality_status | string | warning when a validation flagged the observation (price jump, zero, unusual unit). Quarantined observations are never served. Valores / values: ok, warning. |
data.current.quality_flags | string[] | Why the price was flagged. The price is delivered as published, never corrected. discount_over_85: more than 85% off the list price. round_price_low: a round price of CLP 1,000 or less. Both often mean a placeholder price or a store error. |
data.current.corrected | boolean | True when the observation was amended after capture (the original is kept). |
data.current.converted | Converted | |
data.current.converted.currency required | string | |
data.current.converted.price required | number | |
data.current.converted.list_price | number | null | |
data.current.converted.card_price | number | null | |
data.current.converted.unit_price | number | null | |
data.current.converted.fx_rate required | number | Units of target currency per unit of source currency. |
data.current.converted.fx_date required | string (date) | Publication date of the rate used (last published on or before the observation date). |
data.current.converted.fx_source | string | |
data.current.converted.fx_method | string | Valores / values: direct, cross. |
data.first_seen | string (date-time) | |
data.last_changed | string (date-time) | null | |
meta required | Meta |
meta carries the cost, the source line to quote, the language, the currency and notices (see Conventions).