[{"u":"/docs","p":"Inicio rápido","t":"Inicio rápido","x":"Pricto entrega el precio, la oferta, el stock y el historial de productos en tiendas de Chile, con el mismo producto identificado entre cadenas y la fuente de cada precio. Se usa por API REST o desde un agente con MCP. Esta guía te lleva a tu primera respuesta en un minuto, sin registrarte: todos los ejemplos ya traen la key pública de la sandbox. Sandbox. sk_test_sandbox es una key pública y gratis. Responde con datos de ejemplo: los nombres de tiendas y marcas son reales, los precios no. La forma de cada respuesta y su costo en créditos son los mismos que en producción, así que cuando tengas","l":"es"},{"u":"/docs#1-busca-un-producto","p":"Inicio rápido","t":"1. Busca un producto","x":"Por nombre, marca o código de barras. Cuesta 1 crédito por página de resultados, y 0 si no encuentra nada. Respuesta (recortada):","l":"es"},{"u":"/docs#2-pide-su-precio-en-cada-tienda","p":"Inicio rápido","t":"2. Pide su precio en cada tienda","x":"Con el id del paso anterior o con el código de barras. Cuesta 1 crédito por tienda. Respuesta (recortada): price es lo que paga cualquiera, sin condiciones; el precio con tarjeta y las promociones vienen aparte. url , observed_at y capture_method dicen de dónde salió cada precio.","l":"es"},{"u":"/docs#3-conecta-tu-agente","p":"Inicio rápido","t":"3. Conecta tu agente","x":"El servidor MCP de la sandbox no pide login. Tu agente ve siete herramientas (buscar, precios, comparar, historial, ofertas, cobertura y pedir datos) y decide cuál usar. Después pregúntale: \"¿dónde está más barato el paracetamol?\". Con tu key de producción, la URL es https://pricto.dev/mcp con el header Authorization: Bearer <key : Claude Code, Cursor, VS Code y los conectores de Claude aceptan headers. ChatGPT solo acepta servidores sin autenticación o con OAuth, así que con key de producción hay que esperar el OAuth (ver Autenticación).","l":"es"},{"u":"/docs#que-sigue","p":"Inicio rápido","t":"Qué sigue","x":"- Probar sin registro: cada endpoint con un formulario que llama a la sandbox. - Autenticación: tipos de key, cabeceras y rotación. - Límites y costos: créditos por operación, límites por plan y qué pasa al agotarse. - Referencia de la API: cada endpoint, parámetro y campo. - MCP y Para agentes: herramientas, prompts, Markdown, OpenAPI y Postman.","l":"es"},{"u":"/docs","p":"Quickstart","t":"Quickstart","x":"Pricto delivers price, sale, stock and history for products at Chilean stores, with the same product identified across chains and the source of every price. Use it over a REST API or from an agent with MCP. This guide gets you to your first response in a minute, without signing up: every example already carries the public sandbox key. Sandbox. sk_test_sandbox is a public, free key. It answers with sample data: store and brand names are real, prices are not. Every response has the same shape and credit cost as production, so when you get your key you only swap the key. Limits: 5 requests per se","l":"en"},{"u":"/docs#1-search-a-product","p":"Quickstart","t":"1. Search a product","x":"By name, brand or barcode. Costs 1 credit per page of results, and 0 if nothing is found. Response (trimmed):","l":"en"},{"u":"/docs#2-get-its-price-at-every-store","p":"Quickstart","t":"2. Get its price at every store","x":"With the id from the previous step or with the barcode. Costs 1 credit per store. Response (trimmed): price is what anyone pays, with no conditions; card prices and promotions come separately. url , observed_at and capture_method say where each price came from.","l":"en"},{"u":"/docs#3-connect-your-agent","p":"Quickstart","t":"3. Connect your agent","x":"The sandbox MCP server needs no login. Your agent sees seven tools (search, prices, compare, history, offers, coverage and data requests) and picks which to use. Then ask it: \"where is paracetamol cheapest?\". With your production key, the URL is https://pricto.dev/mcp with the header Authorization: Bearer <key : Claude Code, Cursor, VS Code and Claude connectors accept headers. ChatGPT only accepts servers with no authentication or with OAuth, so with a production key you need to wait for OAuth (see Authentication).","l":"en"},{"u":"/docs#next","p":"Quickstart","t":"Next","x":"- Try without signing up: every endpoint with a form that calls the sandbox. - Authentication: key types, headers and rotation. - Limits and costs: credits per operation, limits per plan and what happens when you run out. - API reference: every endpoint, parameter and field. - MCP and For agents: tools, prompts, Markdown, OpenAPI and Postman.","l":"en"},{"u":"/docs/probar","p":"Probar sin registro","t":"Probar sin registro","x":"Cada página de la referencia tiene un formulario \"Pruébalo\": cambias los parámetros, lo envías a la sandbox y ves la respuesta real, con su costo en créditos. El botón \"Copiar como\" te da el mismo pedido en curl, Python o JavaScript.","l":"es"},{"u":"/docs/probar#que-es-la-sandbox","p":"Probar sin registro","t":"Qué es la sandbox","x":"--- --- Key sk_test_sandbox (pública) API https://pricto.dev/v1 MCP https://pricto.dev/mcp/sandbox (sin login) o https://pricto.dev/mcp con la key en el header Datos De ejemplo: tiendas y marcas reales, precios, códigos de barras (prefijo 20) y URLs inventados Costo Gratis. Las respuestas informan los créditos que costarían, igual que en producción Límites 5 por segundo, 60 por minuto y 5.000 al día Vence No","l":"es"},{"u":"/docs/probar#todos-los-endpoints","p":"Probar sin registro","t":"Todos los endpoints","x":"Ruta Qué hace --- --- --- GET /v1/products/search Buscar productos por texto GET /v1/products Listar productos con filtros exactos GET /v1/products/{product_id} Obtener un producto GET /v1/products/{product_id}/prices Precios actuales de un producto en cada tienda GET /v1/products/{product_id}/history Historial de precios de un producto POST /v1/prices/compare Comparar una canasta entre tiendas POST /v1/prices/batch Precios de muchos productos u ofertas en una llamada POST /v1/live-checks Pedir una revisión de precio en vivo (planificado) GET /v1/offers Listar ofertas de las tiendas GET /v1/of","l":"es"},{"u":"/docs/probar#otras-formas-de-probar","p":"Probar sin registro","t":"Otras formas de probar","x":"- Colección de Postman, generada del OpenAPI, con la key de la sandbox como variable. - OpenAPI en YAML o en JSON, para generar un cliente o importarlo en tu herramienta. - Desde tu agente, con el servidor MCP.","l":"es"},{"u":"/docs/probar","p":"Try without signing up","t":"Try without signing up","x":"Every page in the reference has a \"Try it\" form: change the parameters, send it to the sandbox and see the real response, with its credit cost. The \"Copy as\" button gives you the same request in curl, Python or JavaScript.","l":"en"},{"u":"/docs/probar#what-the-sandbox-is","p":"Try without signing up","t":"What the sandbox is","x":"--- --- Key sk_test_sandbox (public) API https://pricto.dev/v1 MCP https://pricto.dev/mcp/sandbox (no login) or https://pricto.dev/mcp with the key in the header Data Sample data: real stores and brands, made-up prices, barcodes (prefix 20) and URLs Cost Free. Responses report the credits they would cost, as in production Limits 5 per second, 60 per minute and 5,000 per day Expires No","l":"en"},{"u":"/docs/probar#every-endpoint","p":"Try without signing up","t":"Every endpoint","x":"Path What it does --- --- --- GET /v1/products/search Search products by text GET /v1/products List products by exact filters GET /v1/products/{product_id} Get a product GET /v1/products/{product_id}/prices Current prices of a product at every retailer GET /v1/products/{product_id}/history Price history of a product POST /v1/prices/compare Compare a basket of products across retailers POST /v1/prices/batch Current prices for many products or offers in one call POST /v1/live-checks Request a live price check (planned) GET /v1/offers List retailer offers GET /v1/offers/{offer_id} Get an offer wi","l":"en"},{"u":"/docs/probar#other-ways-to-try-it","p":"Try without signing up","t":"Other ways to try it","x":"- Postman collection, generated from OpenAPI, with the sandbox key as a variable. - OpenAPI as YAML or as JSON, to generate a client or import it into your tool. - From your agent, with the MCP server.","l":"en"},{"u":"/docs/autenticacion","p":"Autenticación","t":"Autenticación","x":"Toda llamada a la API y al MCP se autentica con una API key en la cabecera Authorization . La misma key sirve para REST, MCP y CLI.","l":"es"},{"u":"/docs/autenticacion#tipos-de-key","p":"Autenticación","t":"Tipos de key","x":"Key De quién Datos Cobra Hoy --- --- --- --- --- sk_test_sandbox Pública, compartida De ejemplo No Disponible sk_test_... Tu cuenta De ejemplo, fijos No Con el registro sk_live_... Tu cuenta Reales Sí, en créditos Con el registro El registro todavía no está abierto: hoy solo existe la sandbox. Todo lo que construyas con ella funciona igual con una key de tu cuenta.","l":"es"},{"u":"/docs/autenticacion#cabecera","p":"Autenticación","t":"Cabecera","x":"La key va siempre en la cabecera, nunca en la URL. Sin key, o con una key que no existe, la API responde 401 : Sin key se pueden leer /v1/status , /v1/openapi.yaml , /llms.txt y estas docs.","l":"es"},{"u":"/docs/autenticacion#guardar-y-rotar-keys","p":"Autenticación","t":"Guardar y rotar keys","x":"- Guárdala en una variable de entorno ( PRICTO_API_KEY ) o en el gestor de secretos de tu plataforma. No la pongas en código que corre en el navegador ni en un repositorio. - Usa una key por aplicación o entorno: si una se filtra, revocas solo esa. - Para rotar: crea una key nueva, despliégala, verifica que tu aplicación la usa y revoca la anterior. Crear y revocar keys se hace en la consola, que abre con el registro. - Cada plan incluye un número de keys: 1 en Free, 3 en Builder, 10 en Pro, 25 en Business y 100 en Scale.","l":"es"},{"u":"/docs/autenticacion#oauth","p":"Autenticación","t":"MCP y OAuth","x":"- https://pricto.dev/mcp/sandbox : sin login, con los datos de ejemplo. - https://pricto.dev/mcp : con tu key en Authorization: Bearer , igual que la API. Claude Code, Cursor, VS Code y los conectores personalizados de Claude aceptan esa cabecera. - OAuth: el servidor MCP ya publica su metadata de recurso protegido (RFC 9728) en /.well-known/oauth-protected-resource/mcp , pero el servidor de autorización todavía no está activo. Cuando lo esté, Claude y ChatGPT podrán conectarse con tu cuenta sin copiar una key. No tiene fecha todavía; lo avisamos en las novedades.","l":"es"},{"u":"/docs/autenticacion","p":"Authentication","t":"Authentication","x":"Every API and MCP call is authenticated with an API key in the Authorization header. The same key works for REST, MCP and the CLI.","l":"en"},{"u":"/docs/autenticacion#key-types","p":"Authentication","t":"Key types","x":"Key Whose Data Charges Today --- --- --- --- --- sk_test_sandbox Public, shared Sample No Available sk_test_... Your account Sample, fixed No With sign-up sk_live_... Your account Real Yes, in credits With sign-up Sign-up is not open yet: today only the sandbox exists. Whatever you build with it works the same with a key from your account.","l":"en"},{"u":"/docs/autenticacion#header","p":"Authentication","t":"Header","x":"The key always goes in the header, never in the URL. With no key, or a key that doesn't exist, the API answers 401 : Without a key you can read /v1/status , /v1/openapi.yaml , /llms.txt and these docs.","l":"en"},{"u":"/docs/autenticacion#storing-and-rotating-keys","p":"Authentication","t":"Storing and rotating keys","x":"- Keep it in an environment variable ( PRICTO_API_KEY ) or your platform's secret manager. Don't put it in code that runs in the browser or in a repository. - Use one key per application or environment: if one leaks, you revoke only that one. - To rotate: create a new key, deploy it, check your application uses it and revoke the old one. Creating and revoking keys happens in the console, which opens with sign-up. - Each plan includes a number of keys: 1 on Free, 3 on Builder, 10 on Pro, 25 on Business and 100 on Scale.","l":"en"},{"u":"/docs/autenticacion#oauth","p":"Authentication","t":"MCP and OAuth","x":"- https://pricto.dev/mcp/sandbox : no login, sample data. - https://pricto.dev/mcp : with your key in Authorization: Bearer , like the API. Claude Code, Cursor, VS Code and Claude custom connectors accept that header. - OAuth: the MCP server already publishes its protected resource metadata (RFC 9728) at /.well-known/oauth-protected-resource/mcp , but the authorization server isn't active yet. When it is, Claude and ChatGPT will connect with your account without copying a key. There's no date yet; we'll announce it in the updates.","l":"en"},{"u":"/docs/limites","p":"Límites y costos","t":"Límites y costos","x":"Pagas por dato entregado, en créditos. Un crédito es el precio de un producto en una tienda. Cada respuesta dice cuánto costó y cuánto te queda.","l":"es"},{"u":"/docs/limites#creditos-por-operacion","p":"Límites y costos","t":"Créditos por operación","x":"Operación Herramienta MCP Créditos --- --- --- GET /v1/products/search search_products 1 per page of up to 20 results; 0 when nothing is found GET /v1/products — 1 per 20 products returned GET /v1/products/{product_id} — 1 GET /v1/products/{product_id}/prices get_prices 1 per retailer offer returned GET /v1/products/{product_id}/history get_price_history 1 per 30 points per series (minimum 1 per series) POST /v1/prices/compare compare_prices 1 per price in the matrix (product × retailer with data) POST /v1/prices/batch — 1 per offer price returned; items not found cost 0 GET /v1/offers list_of","l":"es"},{"u":"/docs/limites#planes-y-limites","p":"Límites y costos","t":"Planes y límites","x":"Plan Precio al mes Créditos al mes Consultas por segundo Consultas al día Historial --- --- --- --- --- --- Free USD 0 100 1 300 30 días Builder USD 29 15.000 5 sin límite diario 365 días Pro USD 99 75.000 15 sin límite diario completo Business USD 299 300.000 40 sin límite diario completo Scale USD 999 1.500.000 100 sin límite diario completo Sandbox Gratis Sin cobro 5 5.000 (y 60 por minuto) Datos de ejemplo Pago por uso: USD 3 por 1.000 créditos, desde USD 10; duran 12 meses desde tu última compra. Precios completos en /precios y, para máquinas, en /pricing.json. Cada respuesta trae las cab","l":"es"},{"u":"/docs/limites#controla-el-gasto","p":"Límites y costos","t":"Controla el gasto","x":"- max_credits : tope por llamada. La respuesta se recorta para caber (lo más barato o lo más relevante primero) y meta.usage.truncated vale true . - dry_run=true : cotiza sin cobrar. Devuelve data: null y el costo en meta.usage . - Relectura gratis: la misma observación, serie o búsqueda pedida otra vez dentro de 24 horas cuesta 0 y se informa en credits_deduplicated . - Tope de gasto mensual: por defecto, 2 veces el valor de tu plan. Al llegar, 402 spend_cap_reached . - ¿Quieres seguir un precio en el tiempo? Pide el historial una vez a la semana o al mes: guardamos cada día por ti. Una vez a","l":"es"},{"u":"/docs/limites#saldo-en-cada-respuesta","p":"Límites y costos","t":"Saldo en cada respuesta","x":"Por API, en meta.credits_charged , meta.credits_remaining y meta.period_resets_at , y en las cabeceras X-Credits-Charged , X-Credits-Deduplicated , X-Credits-Remaining y X-Credits-Period-Reset . Por MCP, al final de cada respuesta:","l":"es"},{"u":"/docs/limites#cuando-se-acaba-el-saldo","p":"Límites y costos","t":"Cuando se acaba el saldo","x":"Si el saldo no alcanza para todo, la API entrega lo que cabe y lo marca como recortado. Si no alcanza ni para un ítem, responde 402 y no cobra. En el plan Free el mensaje está escrito para que el agente se lo repita a la persona tal cual:","l":"es"},{"u":"/docs/limites#historial-segun-el-plan","p":"Límites y costos","t":"Historial según el plan","x":"Si pides más historial del que incluye tu plan, la API entrega la parte que cabe y lo dice en meta.usage.truncated_reason: \"plan_history_window\" y en meta.warnings . Solo responde 403 plan_required si todo el rango queda fuera.","l":"es"},{"u":"/docs/limites","p":"Limits and costs","t":"Limits and costs","x":"You pay per data point delivered, in credits. One credit is one product's price at one store. Every response says what it cost and what you have left.","l":"en"},{"u":"/docs/limites#credits-per-operation","p":"Limits and costs","t":"Credits per operation","x":"Operation MCP tool Credits --- --- --- GET /v1/products/search search_products 1 per page of up to 20 results; 0 when nothing is found GET /v1/products — 1 per 20 products returned GET /v1/products/{product_id} — 1 GET /v1/products/{product_id}/prices get_prices 1 per retailer offer returned GET /v1/products/{product_id}/history get_price_history 1 per 30 points per series (minimum 1 per series) POST /v1/prices/compare compare_prices 1 per price in the matrix (product × retailer with data) POST /v1/prices/batch — 1 per offer price returned; items not found cost 0 GET /v1/offers list_offers 1 p","l":"en"},{"u":"/docs/limites#plans-and-limits","p":"Limits and costs","t":"Plans and limits","x":"Plan Price per month Credits per month Requests per second Requests per day History --- --- --- --- --- --- Free USD 0 100 1 300 30 days Builder USD 29 15,000 5 no daily limit 365 days Pro USD 99 75,000 15 no daily limit full Business USD 299 300,000 40 no daily limit full Scale USD 999 1,500,000 100 no daily limit full Sandbox Free Not charged 5 5,000 (and 60 per minute) Sample data Pay as you go: USD 3 per 1,000 credits, from USD 10; they last 12 months from your last purchase. Full pricing at /precios and, for machines, at /pricing.json. Every response carries the RateLimit-Limit , RateLimi","l":"en"},{"u":"/docs/limites#control-spending","p":"Limits and costs","t":"Control spending","x":"- max_credits : a cap per call. The response is cut to fit (cheapest or most relevant first) and meta.usage.truncated is true . - dry_run=true : quote without charging. Returns data: null and the cost in meta.usage . - Free re-reads: the same observation, series or search requested again within 24 hours costs 0 and is reported in credits_deduplicated . - Monthly spend cap: by default, twice your plan's price. When reached, 402 spend_cap_reached . - Want to follow a price over time? Ask for the history once a week or once a month: we keep every day for you. Once a month, the daily history of on","l":"en"},{"u":"/docs/limites#balance-in-every-response","p":"Limits and costs","t":"Balance in every response","x":"Over the API, in meta.credits_charged , meta.credits_remaining and meta.period_resets_at , and in the X-Credits-Charged , X-Credits-Deduplicated , X-Credits-Remaining and X-Credits-Period-Reset headers. Over MCP, at the end of every response:","l":"en"},{"u":"/docs/limites#when-credits-run-out","p":"Limits and costs","t":"When credits run out","x":"If the balance doesn't cover everything, the API delivers what fits and marks it as truncated. If it doesn't cover even one item, it answers 402 and charges nothing. On the Free plan the message is written so the agent can repeat it to the person as is:","l":"en"},{"u":"/docs/limites#history-by-plan","p":"Limits and costs","t":"History by plan","x":"If you ask for more history than your plan includes, the API delivers the part that fits and says so in meta.usage.truncated_reason: \"plan_history_window\" and in meta.warnings . It only answers 403 plan_required if the whole range falls outside.","l":"en"},{"u":"/docs/errores","p":"Errores","t":"Errores","x":"Los errores siguen RFC 9457 ( application/problem+json ). El campo code es estable: programa contra él, no contra title ni detail . hint dice qué hacer después y está escrito para que un agente pueda actuar solo. Un error nunca cobra. Campo Qué es --- --- code Código estable, en la tabla de abajo status Código HTTP title Título en el idioma pedido detail Qué pasó, en el idioma pedido hint Qué hacer param El parámetro con problemas, si aplica request_id Para pedir ayuda; también en la cabecera X-Request-Id docs_url Enlace a esta página","l":"es"},{"u":"/docs/errores#catalogo","p":"Errores","t":"Catálogo","x":"Código HTTP Cuándo --- --- --- invalid_parameter 400 Un parámetro falta, está mal formado o no existe unauthorized 401 No mandaste key, o la key no existe o fue revocada insufficient_credits 402 El saldo no alcanza ni para un ítem spend_cap_reached 402 Llegaste al tope de gasto mensual de tu cuenta plan_required 403 Tu plan no incluye lo que pediste, por ejemplo un rango de historial completo fuera de su ventana not_found 404 El producto, la oferta, la tienda o el recurso no existe rate_limited 429 Pasaste el límite de consultas por segundo, minuto o día de tu key not_implemented 501 El endpoi","l":"es"},{"u":"/docs/errores#invalid_parameter","p":"Errores","t":"invalid_parameter","x":"HTTP Reintentar --- --- 400 No Causa: Un parámetro falta, está mal formado o no existe. Qué hacer: Corrige el parámetro que indica param ; hint trae los valores válidos.","l":"es"},{"u":"/docs/errores#unauthorized","p":"Errores","t":"unauthorized","x":"HTTP Reintentar --- --- 401 No Causa: No mandaste key, o la key no existe o fue revocada. Qué hacer: Manda Authorization: Bearer <key . Para probar, usa sk_test_sandbox .","l":"es"},{"u":"/docs/errores#insufficient_credits","p":"Errores","t":"insufficient_credits","x":"HTTP Reintentar --- --- 402 No Causa: El saldo no alcanza ni para un ítem. No se cobró. Qué hacer: Compra créditos o sube de plan; el cuerpo trae balance , usd_needed y el bloque pricing .","l":"es"},{"u":"/docs/errores#spend_cap_reached","p":"Errores","t":"spend_cap_reached","x":"HTTP Reintentar --- --- 402 No Causa: Llegaste al tope de gasto mensual de tu cuenta. Qué hacer: Sube el tope en la consola o espera al próximo ciclo ( period_resets_at ).","l":"es"},{"u":"/docs/errores#plan_required","p":"Errores","t":"plan_required","x":"HTTP Reintentar --- --- 403 No Causa: Tu plan no incluye lo que pediste, por ejemplo un rango de historial completo fuera de su ventana. Qué hacer: Pide un rango dentro de la ventana de tu plan o sube de plan.","l":"es"},{"u":"/docs/errores#not_found","p":"Errores","t":"not_found","x":"HTTP Reintentar --- --- 404 No Causa: El producto, la oferta, la tienda o el recurso no existe. Qué hacer: Revisa el id; busca con /v1/products/search para obtener uno válido.","l":"es"},{"u":"/docs/errores#rate_limited","p":"Errores","t":"rate_limited","x":"HTTP Reintentar --- --- 429 Sí, con espera Causa: Pasaste el límite de consultas por segundo, minuto o día de tu key. Qué hacer: Espera los segundos de Retry-After y reintenta con espera creciente.","l":"es"},{"u":"/docs/errores#not_implemented","p":"Errores","t":"not_implemented","x":"HTTP Reintentar --- --- 501 No Causa: El endpoint está planificado y todavía no existe. Qué hacer: Usa la alternativa que indica hint .","l":"es"},{"u":"/docs/errores#coverage_unavailable","p":"Errores","t":"coverage_unavailable","x":"HTTP Reintentar --- --- 404 No Causa: Reservado para un país, tienda o categoría que no cubrimos. La API todavía no lo emite: hoy responde 200 con una lista vacía y un aviso en meta.warnings . Qué hacer: Revisa /v1/coverage para ver qué existe, o pide la cobertura con POST /v1/data-requests .","l":"es"},{"u":"/docs/errores#internal_error","p":"Errores","t":"internal_error","x":"HTTP Reintentar --- --- 500 Sí, con espera Causa: Un error nuestro. No se cobró. Qué hacer: Reintenta con espera creciente; si sigue, manda el request_id .","l":"es"},{"u":"/docs/errores#service_unavailable","p":"Errores","t":"service_unavailable","x":"HTTP Reintentar --- --- 503 Sí, con espera Causa: El servicio no está disponible por un momento. Qué hacer: Reintenta después de Retry-After .","l":"es"},{"u":"/docs/errores","p":"Errors","t":"Errors","x":"Errors follow RFC 9457 ( application/problem+json ). The code field is stable: code against it, not against title or detail . hint says what to do next and is written so an agent can act on its own. Errors are never charged. Field What it is --- --- code Stable code, in the table below status HTTP status title Title in the requested language detail What happened, in the requested language hint What to do param The offending parameter, if any request_id To ask for help; also in the X-Request-Id header docs_url Link to this page","l":"en"},{"u":"/docs/errores#catalog","p":"Errors","t":"Catalog","x":"Code HTTP When --- --- --- invalid_parameter 400 A parameter is missing, malformed or unknown unauthorized 401 No key was sent, or the key doesn't exist or was revoked insufficient_credits 402 The balance doesn't cover even one item spend_cap_reached 402 You reached your account's monthly spend cap plan_required 403 Your plan doesn't include what you asked for, for example a history range entirely outside its window not_found 404 The product, offer, store or resource doesn't exist rate_limited 429 You went over your key's per-second, per-minute or per-day limit not_implemented 501 The endpoint","l":"en"},{"u":"/docs/errores#invalid_parameter","p":"Errors","t":"invalid_parameter","x":"HTTP Retry --- --- 400 No Cause: A parameter is missing, malformed or unknown. What to do: Fix the parameter named in param ; hint lists the valid values.","l":"en"},{"u":"/docs/errores#unauthorized","p":"Errors","t":"unauthorized","x":"HTTP Retry --- --- 401 No Cause: No key was sent, or the key doesn't exist or was revoked. What to do: Send Authorization: Bearer <key . To try it, use sk_test_sandbox .","l":"en"},{"u":"/docs/errores#insufficient_credits","p":"Errors","t":"insufficient_credits","x":"HTTP Retry --- --- 402 No Cause: The balance doesn't cover even one item. Nothing was charged. What to do: Buy credits or upgrade; the body carries balance , usd_needed and the pricing block.","l":"en"},{"u":"/docs/errores#spend_cap_reached","p":"Errors","t":"spend_cap_reached","x":"HTTP Retry --- --- 402 No Cause: You reached your account's monthly spend cap. What to do: Raise the cap in the console or wait for the next cycle ( period_resets_at ).","l":"en"},{"u":"/docs/errores#plan_required","p":"Errors","t":"plan_required","x":"HTTP Retry --- --- 403 No Cause: Your plan doesn't include what you asked for, for example a history range entirely outside its window. What to do: Ask for a range within your plan's window or upgrade.","l":"en"},{"u":"/docs/errores#not_found","p":"Errors","t":"not_found","x":"HTTP Retry --- --- 404 No Cause: The product, offer, store or resource doesn't exist. What to do: Check the id; search with /v1/products/search to get a valid one.","l":"en"},{"u":"/docs/errores#rate_limited","p":"Errors","t":"rate_limited","x":"HTTP Retry --- --- 429 Yes, with backoff Cause: You went over your key's per-second, per-minute or per-day limit. What to do: Wait the seconds in Retry-After and retry with backoff.","l":"en"},{"u":"/docs/errores#not_implemented","p":"Errors","t":"not_implemented","x":"HTTP Retry --- --- 501 No Cause: The endpoint is planned and doesn't exist yet. What to do: Use the alternative given in hint .","l":"en"},{"u":"/docs/errores#coverage_unavailable","p":"Errors","t":"coverage_unavailable","x":"HTTP Retry --- --- 404 No Cause: Reserved for a country, store or category we don't cover. The API doesn't emit it yet: today it answers 200 with an empty list and a notice in meta.warnings . What to do: Check /v1/coverage to see what exists, or request coverage with POST /v1/data-requests .","l":"en"},{"u":"/docs/errores#internal_error","p":"Errors","t":"internal_error","x":"HTTP Retry --- --- 500 Yes, with backoff Cause: Our error. Nothing was charged. What to do: Retry with backoff; if it persists, send the request_id .","l":"en"},{"u":"/docs/errores#service_unavailable","p":"Errors","t":"service_unavailable","x":"HTTP Retry --- --- 503 Yes, with backoff Cause: The service is briefly unavailable. What to do: Retry after Retry-After .","l":"en"},{"u":"/docs/convenciones","p":"Convenciones","t":"Convenciones","x":"","l":"es"},{"u":"/docs/convenciones#url-base-y-formato","p":"Convenciones","t":"URL base y formato","x":"Todas las rutas cuelgan de https://pricto.dev/v1 . Las respuestas son JSON con data (el resultado), meta (costo, fuente, idioma, moneda, avisos) y, en las listas, pagination . Los campos nuevos se agregan sin aviso: ignora los que no conozcas.","l":"es"},{"u":"/docs/convenciones#paginacion","p":"Convenciones","t":"Paginación","x":"Por cursor. Si pagination.has_more es true , pide la página siguiente con cursor=<pagination.next_cursor y los mismos filtros. limit tiene un máximo por endpoint (20 en búsqueda).","l":"es"},{"u":"/docs/convenciones#filtros-comunes","p":"Convenciones","t":"Filtros comunes","x":"Parámetro Qué filtra Ejemplo --- --- --- country País, ISO 3166-1 CL retailer Una o más tiendas, separadas por coma cl-jumbo,cl-unimarc category Categoría, incluye subcategorías food.dairy brand Marca, por id o nombre colun location Comuna, CL:<código CUT o tienda, en tiendas que cambian precio por ubicación Las Condes as_of Precios vigentes en una fecha pasada 2026-10-01 from , to , interval Rango e intervalo del historial interval=week min_confidence , match_kinds Qué ofertas se agrupan con el producto (ver Modelo de datos) identical,pack","l":"es"},{"u":"/docs/convenciones#idioma","p":"Convenciones","t":"Idioma","x":"lang=es o lang=en (o la cabecera Accept-Language ) cambia el idioma de nombres, categorías, mensajes y errores. Un idioma sin soporte responde en inglés con un aviso, nunca con error. El título original de la tienda siempre viene sin traducir en title_original .","l":"es"},{"u":"/docs/convenciones#moneda","p":"Convenciones","t":"Moneda","x":"Los montos vienen en la moneda de la tienda (CLP, sin decimales). Con currency=USD (o EUR) cada precio trae además un bloque converted con el monto, la tasa, su fecha y su fuente. En el historial, cada punto se convierte con la tasa de su fecha ( fx_policy: point_date ), o con una sola tasa si pasas fx_date .","l":"es"},{"u":"/docs/convenciones#fechas-e-identificadores","p":"Convenciones","t":"Fechas e identificadores","x":"- Fechas y horas en ISO 8601 y UTC ( observed_at ); observed_local_date es la fecha en la zona de la tienda. - Los ids son opacos y llevan prefijo de tipo: prd_ producto, ofr_ oferta, str_ tienda, exp_ exportación. Tiendas y categorías usan nombres legibles: cl-jumbo , food.dairy.milk . - Donde se pide un producto se acepta también su código de barras (GTIN).","l":"es"},{"u":"/docs/convenciones#cabeceras","p":"Convenciones","t":"Cabeceras","x":"Cabecera Qué trae --- --- X-Request-Id Id del pedido, para soporte X-Credits-Charged , X-Credits-Deduplicated , X-Credits-Remaining , X-Credits-Period-Reset Costo y saldo RateLimit-Limit , RateLimit-Remaining , RateLimit-Reset Límite de consultas Retry-After En 429 y 503 : cuántos segundos esperar","l":"es"},{"u":"/docs/convenciones#versionado","p":"Convenciones","t":"Versionado","x":"La versión mayor va en la ruta ( /v1 ). Dentro de ella solo hay cambios que agregan: campos, parámetros u operaciones nuevas. Un cambio incompatible crea /v2 , y /v1 se mantiene al menos 12 meses, avisado con las cabeceras Deprecation y Sunset . En MCP, el nombre de una herramienta es parte del contrato: si cambia de forma incompatible, sale con otro nombre. Los cambios se publican en el changelog.","l":"es"},{"u":"/docs/convenciones#estado","p":"Convenciones","t":"Estado","x":"GET /v1/status (sin key) dice si la API responde y la fecha de los datos. La página de estado muestra lo mismo para personas.","l":"es"},{"u":"/docs/convenciones","p":"Conventions","t":"Conventions","x":"","l":"en"},{"u":"/docs/convenciones#base-url-and-format","p":"Conventions","t":"Base URL and format","x":"Every path hangs from https://pricto.dev/v1 . Responses are JSON with data (the result), meta (cost, source, language, currency, notices) and, for lists, pagination . New fields are added without notice: ignore the ones you don't know.","l":"en"},{"u":"/docs/convenciones#pagination","p":"Conventions","t":"Pagination","x":"By cursor. If pagination.has_more is true , ask for the next page with cursor=<pagination.next_cursor and the same filters. limit has a maximum per endpoint (20 for search).","l":"en"},{"u":"/docs/convenciones#common-filters","p":"Conventions","t":"Common filters","x":"Parameter Filters by Example --- --- --- country Country, ISO 3166-1 CL retailer One or more stores, comma separated cl-jumbo,cl-unimarc category Category, including subcategories food.dairy brand Brand, by id or name colun location Comuna, CL:<CUT code or store, for stores that price by location Las Condes as_of Prices in effect on a past date 2026-10-01 from , to , interval History range and interval interval=week min_confidence , match_kinds Which offers are grouped with the product (see Data model) identical,pack","l":"en"},{"u":"/docs/convenciones#language","p":"Conventions","t":"Language","x":"lang=es or lang=en (or the Accept-Language header) changes the language of names, categories, messages and errors. An unsupported language answers in English with a notice, never with an error. The store's original title always comes untranslated in title_original .","l":"en"},{"u":"/docs/convenciones#currency","p":"Conventions","t":"Currency","x":"Amounts come in the store's currency (CLP, no decimals). With currency=USD (or EUR) every price also carries a converted block with the amount, the rate, its date and its source. In history, each point is converted at its own date's rate ( fx_policy: point_date ), or with a single rate if you pass fx_date .","l":"en"},{"u":"/docs/convenciones#dates-and-identifiers","p":"Conventions","t":"Dates and identifiers","x":"- Dates and times in ISO 8601, UTC ( observed_at ); observed_local_date is the date in the store's time zone. - Ids are opaque and carry a type prefix: prd_ product, ofr_ offer, str_ store, exp_ export. Stores and categories use readable names: cl-jumbo , food.dairy.milk . - Wherever a product is asked for, its barcode (GTIN) is accepted too.","l":"en"},{"u":"/docs/convenciones#headers","p":"Conventions","t":"Headers","x":"Header What it carries --- --- X-Request-Id Request id, for support X-Credits-Charged , X-Credits-Deduplicated , X-Credits-Remaining , X-Credits-Period-Reset Cost and balance RateLimit-Limit , RateLimit-Remaining , RateLimit-Reset Request limit Retry-After On 429 and 503 : how many seconds to wait","l":"en"},{"u":"/docs/convenciones#versionado","p":"Conventions","t":"Versioning","x":"The major version is in the path ( /v1 ). Within it there are only additive changes: new fields, parameters or operations. An incompatible change creates /v2 , and /v1 stays for at least 12 months, announced with the Deprecation and Sunset headers. In MCP, a tool's name is part of the contract: if it changes incompatibly, it ships under another name. Changes are published in the changelog.","l":"en"},{"u":"/docs/convenciones#status","p":"Conventions","t":"Status","x":"GET /v1/status (no key) says whether the API is up and the date of the data. The status page shows the same for people.","l":"en"},{"u":"/docs/modelo-de-datos","p":"Modelo de datos","t":"Modelo de datos","x":"Tres objetos explican casi todo: - Producto : el artículo, igual en todas las tiendas ( prd_ ). Tiene marca, categoría, tamaño y códigos de barras (GTIN). - Oferta : ese producto en una tienda ( ofr_ ), con su URL y su título original. - Observación : lo que vimos en una oferta en un momento: precio, condiciones, stock y de dónde salió. Las observaciones no se modifican; el historial es la serie de observaciones.","l":"es"},{"u":"/docs/modelo-de-datos#precio","p":"Modelo de datos","t":"Precio: qué significa cada campo","x":"price es lo que paga cualquier persona sin condiciones: el precio de oferta si existe, si no el de lista. Lo condicionado va aparte, para que nadie lo presente como \"el precio\". Campo Qué es --- --- list_price Precio normal publicado sale_price Precio rebajado sin condiciones, o null price El menor de los dos: lo que paga cualquiera conditional_prices[] Precios que exigen algo distinto de la cantidad: medio de pago, nivel de club, app o cupón card_price , card_label Atajo: el menor precio con tarjeta o membresía (por ejemplo \"Tarjeta Cencosud\") promotions[] Exigen cantidad o combinación: \"2 x ","l":"es"},{"u":"/docs/modelo-de-datos#procedencia","p":"Modelo de datos","t":"Procedencia","x":"Cada precio dice de dónde salió, para que cualquiera lo pueda comprobar: Campo Qué es --- --- url La ficha del producto en la tienda observed_at Fecha y hora de la captura, en UTC observed_local_date Fecha de la captura en la zona de la tienda capture_method public_page (la página pública), public_api (un endpoint abierto del sitio), retailer_feed (entregado por la tienda) u open_data (un dataset público) meta.attribution.text Una línea lista para citar: marca, tienda, hora e id","l":"es"},{"u":"/docs/modelo-de-datos#match","p":"Modelo de datos","t":"Mismo producto entre tiendas","x":"Cada oferta trae match : cómo se unió al producto y con qué confianza. Campo Qué es --- --- match.method Cómo se unió: por GTIN, por reglas o por un modelo match.confidence Entre 0 y 1 match.kind identical (el mismo artículo), pack (N unidades del producto, ver pack_ratio ) o equivalent (sustituto de otra marca) match.pack_ratio Cuántas unidades trae el pack Por defecto los precios y las comparaciones agrupan solo ofertas identical con confianza de 0,85 o más. min_confidence y match_kinds (por ejemplo identical,pack ) amplían el grupo, y meta.warnings avisa cuando quedaron ofertas fuera. En un","l":"es"},{"u":"/docs/modelo-de-datos#calidad","p":"Modelo de datos","t":"Calidad","x":"Los precios se entregan tal como los publica la tienda, nunca corregidos. Si una validación ve algo raro, el precio llega con quality_status: \"warning\" y la razón en quality_flags[] : discount_over_85 (descuento sobre 85 % del precio normal) o round_price_low (precio redondo de $1.000 o menos). Si una observación se enmendó después de capturada, corrected es true y el original se guarda.","l":"es"},{"u":"/docs/modelo-de-datos#moneda","p":"Modelo de datos","t":"Moneda, impuestos e idioma","x":"- Montos en la moneda de la tienda; CLP no tiene decimales. currency=USD agrega converted con la tasa, su fecha y su fuente. - tax_included dice si el precio publicado incluye impuestos (en Chile, sí). tax_rate y price_ex_tax se derivan de la regla del país ( tax_rule_id ), o vienen en null si no hay regla. - Nombres y categorías en español o inglés según lang ; names trae todos los idiomas y title_original , el título de la tienda sin traducir.","l":"es"},{"u":"/docs/modelo-de-datos#taxonomia","p":"Modelo de datos","t":"Taxonomía","x":"Las categorías son un árbol con ids legibles ( food.dairy.milk ): filtrar por food.dairy incluye sus subcategorías. El árbol completo está en GET /v1/categories .","l":"es"},{"u":"/docs/modelo-de-datos#campos","p":"Modelo de datos","t":"Campos","x":"","l":"es"},{"u":"/docs/modelo-de-datos#precio-en-una-tienda-retailerprice","p":"Modelo de datos","t":"Precio en una tienda (RetailerPrice)","x":"Campo Tipo Descripción --- --- --- currency requerido string price requerido number list_price requerido number sale_price number \\ null card_price number \\ null Convenience: the lowest price in conditional_prices that requires a payment method or membership. card_label string \\ null conditional_prices ConditionalPrice[] Every price that requires a condition other than quantity (payment method, loyalty tier, app, coupon), as published. conditional_prices[].kind requerido string Valores / values: payment_method , membership , app_only , coupon , other . conditional_prices[].label requerido stri","l":"es"},{"u":"/docs/modelo-de-datos#producto-product","p":"Modelo de datos","t":"Producto (Product)","x":"Campo Tipo Descripción --- --- --- id requerido string name requerido string brand requerido BrandRef brand.id requerido string brand.name requerido string category requerido CategoryRef category.id requerido string category.label requerido string category.path string[] size object gtin string[] image_url string \\ null price_summary requerido PriceSummary price_summary.currency requerido string price_summary.min requerido number \\ null price_summary.max requerido number \\ null price_summary.median number \\ null price_summary.offers_count requerido integer price_summary.retailers_count requerid","l":"es"},{"u":"/docs/modelo-de-datos#precio-condicional-conditionalprice","p":"Modelo de datos","t":"Precio condicional (ConditionalPrice)","x":"Campo Tipo Descripción --- --- --- kind requerido string Valores / values: payment_method , membership , app_only , coupon , other . label requerido string As shown by the retailer. price requerido number payment_method string \\ null membership_tier string \\ null installments_count integer \\ null interest_free boolean \\ null","l":"es"},{"u":"/docs/modelo-de-datos#promocion-promotion","p":"Modelo de datos","t":"Promoción (Promotion)","x":"Campo Tipo Descripción --- --- --- type requerido string Valores / values: multi_buy , nth_unit , percent_off , amount_off , bundle , gift , other . label requerido string As shown by the retailer, e.g. \"2 x $2.990\". min_quantity integer \\ null effective_unit_price number \\ null Price per item when the promotion applies. requires_card string \\ null Payment method required, if any. valid_until string (date) \\ null","l":"es"},{"u":"/docs/modelo-de-datos#atribucion-attribution","p":"Modelo de datos","t":"Atribución (Attribution)","x":"Campo Tipo Descripción --- --- --- text requerido string source requerido string Brand name. as_of requerido string (date-time) resource_id requerido string \\ null Product or offer the response is about url requerido string (uri) \\ null Public page for the product capture_method string \\ null Set when the response is about one offer. Valores / values: public_page , public_api , retailer_feed , open_data . source_url string (uri) \\ null Retailer URL of the offer, when the response is about one offer.","l":"es"},{"u":"/docs/modelo-de-datos#conversion-converted","p":"Modelo de datos","t":"Conversión (Converted)","x":"Campo Tipo Descripción --- --- --- currency requerido string price requerido number list_price number \\ null card_price number \\ null unit_price number \\ null fx_rate requerido number Units of target currency per unit of source currency. fx_date requerido string (date) Publication date of the rate used (last published on or before the observation date). fx_source string fx_method string Valores / values: direct , cross .","l":"es"},{"u":"/docs/modelo-de-datos#punto-del-historial-historypoint","p":"Modelo de datos","t":"Punto del historial (HistoryPoint)","x":"Campo Tipo Descripción --- --- --- t requerido string Date ( day , week , month start) or timestamp ( raw ). price requerido number list_price requerido number sale_price number \\ null card_price number \\ null availability requerido string Valores / values: in_stock , out_of_stock , limited , unknown . converted object Present when currency is set. Converted with the rate of the point date (or fx_date). converted.price number converted.list_price number converted.fx_rate number converted.fx_date string (date)","l":"es"},{"u":"/docs/modelo-de-datos","p":"Data model","t":"Data model","x":"Three objects explain almost everything: - Product : the item, the same at every store ( prd_ ). It has a brand, a category, a size and barcodes (GTIN). - Offer : that product at one store ( ofr_ ), with its URL and original title. - Observation : what we saw on an offer at one moment: price, conditions, stock and where it came from. Observations are never modified; history is the series of observations.","l":"en"},{"u":"/docs/modelo-de-datos#precio","p":"Data model","t":"Price: what each field means","x":"price is what anyone pays with no conditions: the sale price if there is one, otherwise the list price. Conditional prices come separately, so nobody presents them as \"the price\". Field What it is --- --- list_price Regular published price sale_price Unconditional sale price, or null price The lower of the two: what anyone pays conditional_prices[] Prices that require something other than quantity: payment method, loyalty tier, app or coupon card_price , card_label Shortcut: the lowest price with a card or membership (for example \"Tarjeta Cencosud\") promotions[] Require a quantity or combinati","l":"en"},{"u":"/docs/modelo-de-datos#procedencia","p":"Data model","t":"Provenance","x":"Every price says where it came from, so anyone can check it: Field What it is --- --- url The product page at the store observed_at Capture date and time, UTC observed_local_date Capture date in the store's time zone capture_method public_page (the public page), public_api (an open endpoint on the site), retailer_feed (provided by the store) or open_data (a public dataset) meta.attribution.text A line ready to quote: brand, store, time and id","l":"en"},{"u":"/docs/modelo-de-datos#match","p":"Data model","t":"Same product across stores","x":"Every offer carries match : how it was joined to the product and with what confidence. Field What it is --- --- match.method How it was joined: by GTIN, by rules or by a model match.confidence Between 0 and 1 match.kind identical (the same item), pack (N units of the product, see pack_ratio ) or equivalent (a substitute from another brand) match.pack_ratio How many units the pack holds By default prices and comparisons group only identical offers with confidence of 0.85 or more. min_confidence and match_kinds (for example identical,pack ) widen the group, and meta.warnings notes when offers we","l":"en"},{"u":"/docs/modelo-de-datos#calidad","p":"Data model","t":"Quality","x":"Prices are delivered as the store publishes them, never corrected. If a validation sees something odd, the price comes with quality_status: \"warning\" and the reason in quality_flags[] : discount_over_85 (a discount above 85% of the regular price) or round_price_low (a round price of CLP 1,000 or less). If an observation was amended after capture, corrected is true and the original is kept.","l":"en"},{"u":"/docs/modelo-de-datos#moneda","p":"Data model","t":"Currency, taxes and language","x":"- Amounts in the store's currency; CLP has no decimals. currency=USD adds converted with the rate, its date and its source. - tax_included says whether the published price includes taxes (in Chile, it does). tax_rate and price_ex_tax are derived from the country rule ( tax_rule_id ), or come as null if there is no rule. - Names and categories in Spanish or English depending on lang ; names carries every language and title_original the store's untranslated title.","l":"en"},{"u":"/docs/modelo-de-datos#taxonomia","p":"Data model","t":"Taxonomy","x":"Categories are a tree with readable ids ( food.dairy.milk ): filtering by food.dairy includes its subcategories. The full tree is at GET /v1/categories .","l":"en"},{"u":"/docs/modelo-de-datos#fields","p":"Data model","t":"Fields","x":"","l":"en"},{"u":"/docs/modelo-de-datos#price-at-a-store-retailerprice","p":"Data model","t":"Price at a store (RetailerPrice)","x":"Field Type Description --- --- --- currency required string price required number list_price required number sale_price number \\ null card_price number \\ null Convenience: the lowest price in conditional_prices that requires a payment method or membership. card_label string \\ null conditional_prices ConditionalPrice[] Every price that requires a condition other than quantity (payment method, loyalty tier, app, coupon), as published. conditional_prices[].kind required string Valores / values: payment_method , membership , app_only , coupon , other . conditional_prices[].label required string As","l":"en"},{"u":"/docs/modelo-de-datos#product-product","p":"Data model","t":"Product (Product)","x":"Field Type Description --- --- --- id required string name required string brand required BrandRef brand.id required string brand.name required string category required CategoryRef category.id required string category.label required string category.path string[] size object gtin string[] image_url string \\ null price_summary required PriceSummary price_summary.currency required string price_summary.min required number \\ null price_summary.max required number \\ null price_summary.median number \\ null price_summary.offers_count required integer price_summary.retailers_count required integer pric","l":"en"},{"u":"/docs/modelo-de-datos#conditional-price-conditionalprice","p":"Data model","t":"Conditional price (ConditionalPrice)","x":"Field Type Description --- --- --- kind required string Valores / values: payment_method , membership , app_only , coupon , other . label required string As shown by the retailer. price required number payment_method string \\ null membership_tier string \\ null installments_count integer \\ null interest_free boolean \\ null","l":"en"},{"u":"/docs/modelo-de-datos#promotion-promotion","p":"Data model","t":"Promotion (Promotion)","x":"Field Type Description --- --- --- type required string Valores / values: multi_buy , nth_unit , percent_off , amount_off , bundle , gift , other . label required string As shown by the retailer, e.g. \"2 x $2.990\". min_quantity integer \\ null effective_unit_price number \\ null Price per item when the promotion applies. requires_card string \\ null Payment method required, if any. valid_until string (date) \\ null","l":"en"},{"u":"/docs/modelo-de-datos#attribution-attribution","p":"Data model","t":"Attribution (Attribution)","x":"Field Type Description --- --- --- text required string source required string Brand name. as_of required string (date-time) resource_id required string \\ null Product or offer the response is about url required string (uri) \\ null Public page for the product capture_method string \\ null Set when the response is about one offer. Valores / values: public_page , public_api , retailer_feed , open_data . source_url string (uri) \\ null Retailer URL of the offer, when the response is about one offer.","l":"en"},{"u":"/docs/modelo-de-datos#conversion-converted","p":"Data model","t":"Conversion (Converted)","x":"Field Type Description --- --- --- currency required string price required number list_price number \\ null card_price number \\ null unit_price number \\ null fx_rate required number Units of target currency per unit of source currency. fx_date required string (date) Publication date of the rate used (last published on or before the observation date). fx_source string fx_method string Valores / values: direct , cross .","l":"en"},{"u":"/docs/modelo-de-datos#history-point-historypoint","p":"Data model","t":"History point (HistoryPoint)","x":"Field Type Description --- --- --- t required string Date ( day , week , month start) or timestamp ( raw ). price required number list_price required number sale_price number \\ null card_price number \\ null availability required string Valores / values: in_stock , out_of_stock , limited , unknown . converted object Present when currency is set. Converted with the rate of the point date (or fx_date). converted.price number converted.list_price number converted.fx_rate number converted.fx_date string (date)","l":"en"},{"u":"/docs/cobertura","p":"Cobertura","t":"Cobertura","x":"Hay dos preguntas distintas: qué responde la API con tu key, y qué tiendas capturamos. Esta página muestra las dos.","l":"es"},{"u":"/docs/cobertura#lo-que-responde-la-api","p":"Cobertura","t":"Lo que responde la API","x":"Se lee de la API al abrir la página, así que se actualiza sola cuando cambian los datos. Desde tu código: GET /v1/coverage (con tu key, gratis) da totales, tiendas, categorías y fechas de lo que tu key puede consultar. Con la sandbox, eso son los datos de ejemplo.","l":"es"},{"u":"/docs/cobertura#lo-que-capturamos","p":"Cobertura","t":"Lo que capturamos","x":"Según el registro de fuentes al 2026-10-24: 125 tiendas de Chile en captura diaria, 7 con captura semanal en prueba (AR, CO, PE), 2 en preparación, 5 pausadas y 19 sin acceso. La lista completa, con el estado y el método de captura de cada tienda, está en la página pública de cobertura.","l":"es"},{"u":"/docs/cobertura#tiendas-que-no-cubrimos","p":"Cobertura","t":"Tiendas que no cubrimos","x":"Central Mayorista, Lider, OK Market, Super Costo, Superbodega aCuenta, Telemercados, Tottus, Preunic, Salcobrand, Microplay, PC Factory, SP Digital, Corona, Falabella, Ripley, Imperial, Knasta (comparador), Mercado Libre, SoloTodo (comparador). Bloquean a los robots que se identifican o sus términos no lo permiten. Si una cadena nos da un feed o un permiso, entra a la cobertura. Si necesitas una, pídela con POST /v1/data-requests o con la herramienta MCP request_data .","l":"es"},{"u":"/docs/cobertura","p":"Coverage","t":"Coverage","x":"There are two different questions: what the API answers with your key, and which stores we capture. This page shows both.","l":"en"},{"u":"/docs/cobertura#what-the-api-answers","p":"Coverage","t":"What the API answers","x":"Read from the API when the page opens, so it updates itself when the data changes. From your code: GET /v1/coverage (with your key, free) gives totals, stores, categories and dates for what your key can query. With the sandbox, that's the sample data.","l":"en"},{"u":"/docs/cobertura#what-we-capture","p":"Coverage","t":"What we capture","x":"From the source registry as of 2026-10-24: 125 Chilean stores captured daily, 7 with a weekly capture in testing (AR, CO, PE), 2 in preparation, 5 paused and 19 without access. The full list, with each store's status and capture method, is on the public coverage page.","l":"en"},{"u":"/docs/cobertura#stores-we-don-t-cover","p":"Coverage","t":"Stores we don't cover","x":"Central Mayorista, Lider, OK Market, Super Costo, Superbodega aCuenta, Telemercados, Tottus, Preunic, Salcobrand, Microplay, PC Factory, SP Digital, Corona, Falabella, Ripley, Imperial, Knasta (comparador), Mercado Libre, SoloTodo (comparador). They block bots that identify themselves or their terms don't allow it. If a chain gives us a feed or permission, it comes into coverage. If you need one, request it with POST /v1/data-requests or the request_data MCP tool.","l":"en"},{"u":"/docs/mcp","p":"Servidor MCP","t":"Servidor MCP","x":"Un servidor MCP remoto (Streamable HTTP, sin estado), compatible con la especificación 2026-07-28 y con clientes de 2025. Las herramientas llaman a la misma API, con el mismo costo. URL Autenticación --- --- --- Sandbox https://pricto.dev/mcp/sandbox Ninguna Producción https://pricto.dev/mcp Authorization: Bearer <key Instrucciones para cada asistente en el inicio rápido y en Conectar. Cada respuesta trae un texto para el modelo (una tabla corta, la línea de fuente y el costo) y structuredContent con los datos completos. Los errores vuelven como resultado con isError y una pista para que el ag","l":"es"},{"u":"/docs/mcp#search_products","p":"Servidor MCP","t":"search_products","x":"Find products by name, brand, size or barcode (GTIN/EAN) and get the price range across retailers. Use the returned product_id with the other tools. Cost: 1 credit per page, 0 if nothing is found. Example queries: \"leche entera 1 litro\", \"paracetamol 500 mg\", \"Coca-Cola sin azúcar 1,5 L\", \"7801234567890\". Costo Solo lectura --- --- 1 credit per page, 0 if nothing is found. Sí Argumento Tipo Descripción --- --- --- query (requerido) string Free text in Spanish or English, or a GTIN. category string Category ID such as food.dairy or health.analgesics (see get_coverage). brand string Brand name o","l":"es"},{"u":"/docs/mcp#get_prices","p":"Servidor MCP","t":"get_prices","x":"Current price of one product at every retailer that sells it, cheapest first: list, sale and card price, multi-buy promotions, unit price, stock and date observed. as_of gives a past date. Cost: 1 credit per retailer price. To follow a price over time, call get_price_history with interval=day once a week or month instead of get_prices every day: 1 credit per 30 days per retailer. Costo Solo lectura --- --- 1 credit per retailer price. Sí Argumento Tipo Descripción --- --- --- product (requerido) string product_id from search_products (prd_...) or a GTIN/EAN barcode. retailers array<string Reta","l":"es"},{"u":"/docs/mcp#compare_prices","p":"Servidor MCP","t":"compare_prices","x":"Price matrix for up to 20 products at each retailer and the basket total per retailer, cheapest complete basket first. Use for \"where is this list cheapest\" or to compare a brand against competitors. Cost: 1 credit per price in the matrix. Costo Solo lectura --- --- 1 credit per price in the matrix. Sí Argumento Tipo Descripción --- --- --- items (requerido) array<object retailers array<string Retailer IDs to include, e.g. [\"cl-jumbo\",\"cl-unimarc\"]. Default: all. price_type string card_price totals with store-card prices where they exist. Valores: price , card_price . match_kinds array<string ","l":"es"},{"u":"/docs/mcp#get_price_history","p":"Servidor MCP","t":"get_price_history","x":"How the price of a product changed over time at each retailer: first, last, min, max, % change, number of changes, days on promotion, plus the series. Default: last 90 days by week. Cost: 1 credit per 30 points per retailer (90 days by week = 1 per retailer). Costo Solo lectura --- --- 1 credit per 30 points per retailer (90 days by week = 1 per retailer). Sí Argumento Tipo Descripción --- --- --- product (requerido) string product_id from search_products (prd_...) or a GTIN/EAN barcode. retailers array<string Retailer IDs to include, e.g. [\"cl-jumbo\",\"cl-unimarc\"]. Default: all. from string S","l":"es"},{"u":"/docs/mcp#list_offers","p":"Servidor MCP","t":"list_offers","x":"Listings as published by retailers, filtered by retailer, category, brand, promotion or recent change. Use to find what is on promotion at a store or what changed since a date. Cost: 1 credit per listing. Costo Solo lectura --- --- 1 credit per listing. Sí Argumento Tipo Descripción --- --- --- retailer string category string brand string on_promotion boolean Only listings with a sale price, card price or multi-buy. changed_since string ISO date or date-time; only listings whose price or stock changed after it. limit integer Default 10. cursor string next_cursor from a previous call. lang stri","l":"es"},{"u":"/docs/mcp#get_coverage","p":"Servidor MCP","t":"get_coverage","x":"Which countries, retailers and categories have data, how fresh it is and since when there is history. Free. Costo Solo lectura --- --- 0 Sí Argumento Tipo Descripción --- --- --- country string retailer string category string lang string BCP 47 language for product names and messages (es, en, en-US...). Default: es. Preguntas que la usan: - \"¿Qué tiendas cubres y desde cuándo?\" - \"¿Tienes datos de Lider?\"","l":"es"},{"u":"/docs/mcp#request_data","p":"Servidor MCP","t":"request_data","x":"Send the provider a request to add a retailer, country, category or delivery format that is not covered. Free; the provider's team replies by email to the account owner. Costo Solo lectura --- --- 0 No Argumento Tipo Descripción --- --- --- kind (requerido) string Valores: retailer , country , category , frequency , delivery , other . description (requerido) string What is needed and why, in the user's words. retailer_url string country string Preguntas que la usan: - \"Pide que agreguen una farmacia que no está.\"","l":"es"},{"u":"/docs/mcp#prompt","p":"Servidor MCP","t":"Prompt para tu agente","x":"Las herramientas ya traen instrucciones para el modelo. Si armas tu propio agente, esto funciona bien como parte del prompt de sistema:","l":"es"},{"u":"/docs/mcp#instrucciones-del-servidor","p":"Servidor MCP","t":"Instrucciones del servidor","x":"Lo que el servidor le dice al modelo al conectarse:","l":"es"},{"u":"/docs/mcp","p":"MCP server","t":"MCP server","x":"A remote MCP server (Streamable HTTP, stateless), compatible with the 2026-07-28 spec and with 2025 clients. The tools call the same API, at the same cost. URL Authentication --- --- --- Sandbox https://pricto.dev/mcp/sandbox None Production https://pricto.dev/mcp Authorization: Bearer <key Instructions for each assistant in the quickstart and on Connect. Every response carries a text for the model (a short table, the source line and the cost) and structuredContent with the full data. Errors come back as a result with isError and a hint so the agent can correct itself.","l":"en"},{"u":"/docs/mcp#search_products","p":"MCP server","t":"search_products","x":"Find products by name, brand, size or barcode (GTIN/EAN) and get the price range across retailers. Use the returned product_id with the other tools. Cost: 1 credit per page, 0 if nothing is found. Example queries: \"leche entera 1 litro\", \"paracetamol 500 mg\", \"Coca-Cola sin azúcar 1,5 L\", \"7801234567890\". Cost Read only --- --- 1 credit per page, 0 if nothing is found. Yes Argument Type Description --- --- --- query (required) string Free text in Spanish or English, or a GTIN. category string Category ID such as food.dairy or health.analgesics (see get_coverage). brand string Brand name or ID.","l":"en"},{"u":"/docs/mcp#get_prices","p":"MCP server","t":"get_prices","x":"Current price of one product at every retailer that sells it, cheapest first: list, sale and card price, multi-buy promotions, unit price, stock and date observed. as_of gives a past date. Cost: 1 credit per retailer price. To follow a price over time, call get_price_history with interval=day once a week or month instead of get_prices every day: 1 credit per 30 days per retailer. Cost Read only --- --- 1 credit per retailer price. Yes Argument Type Description --- --- --- product (required) string product_id from search_products (prd_...) or a GTIN/EAN barcode. retailers array<string Retailer ","l":"en"},{"u":"/docs/mcp#compare_prices","p":"MCP server","t":"compare_prices","x":"Price matrix for up to 20 products at each retailer and the basket total per retailer, cheapest complete basket first. Use for \"where is this list cheapest\" or to compare a brand against competitors. Cost: 1 credit per price in the matrix. Cost Read only --- --- 1 credit per price in the matrix. Yes Argument Type Description --- --- --- items (required) array<object retailers array<string Retailer IDs to include, e.g. [\"cl-jumbo\",\"cl-unimarc\"]. Default: all. price_type string card_price totals with store-card prices where they exist. Values: price , card_price . match_kinds array<string Defaul","l":"en"},{"u":"/docs/mcp#get_price_history","p":"MCP server","t":"get_price_history","x":"How the price of a product changed over time at each retailer: first, last, min, max, % change, number of changes, days on promotion, plus the series. Default: last 90 days by week. Cost: 1 credit per 30 points per retailer (90 days by week = 1 per retailer). Cost Read only --- --- 1 credit per 30 points per retailer (90 days by week = 1 per retailer). Yes Argument Type Description --- --- --- product (required) string product_id from search_products (prd_...) or a GTIN/EAN barcode. retailers array<string Retailer IDs to include, e.g. [\"cl-jumbo\",\"cl-unimarc\"]. Default: all. from string Start ","l":"en"},{"u":"/docs/mcp#list_offers","p":"MCP server","t":"list_offers","x":"Listings as published by retailers, filtered by retailer, category, brand, promotion or recent change. Use to find what is on promotion at a store or what changed since a date. Cost: 1 credit per listing. Cost Read only --- --- 1 credit per listing. Yes Argument Type Description --- --- --- retailer string category string brand string on_promotion boolean Only listings with a sale price, card price or multi-buy. changed_since string ISO date or date-time; only listings whose price or stock changed after it. limit integer Default 10. cursor string next_cursor from a previous call. lang string B","l":"en"},{"u":"/docs/mcp#get_coverage","p":"MCP server","t":"get_coverage","x":"Which countries, retailers and categories have data, how fresh it is and since when there is history. Free. Cost Read only --- --- 0 Yes Argument Type Description --- --- --- country string retailer string category string lang string BCP 47 language for product names and messages (es, en, en-US...). Default: es. Questions that use it: - \"Which stores do you cover and since when?\" - \"Do you have Lider data?\"","l":"en"},{"u":"/docs/mcp#request_data","p":"MCP server","t":"request_data","x":"Send the provider a request to add a retailer, country, category or delivery format that is not covered. Free; the provider's team replies by email to the account owner. Cost Read only --- --- 0 No Argument Type Description --- --- --- kind (required) string Values: retailer , country , category , frequency , delivery , other . description (required) string What is needed and why, in the user's words. retailer_url string country string Questions that use it: - \"Ask them to add a pharmacy that's missing.\"","l":"en"},{"u":"/docs/mcp#prompt","p":"MCP server","t":"Prompt for your agent","x":"The tools already carry instructions for the model. If you build your own agent, this works well as part of the system prompt:","l":"en"},{"u":"/docs/mcp#server-instructions","p":"MCP server","t":"Server instructions","x":"What the server tells the model when it connects:","l":"en"},{"u":"/docs/agentes","p":"Para agentes","t":"Para agentes","x":"Todo lo que un agente necesita para encontrar, entender y usar la API sin ayuda, con la sandbox lista para probar. Recurso URL Para qué --- --- --- llms.txt /llms.txt Índice corto: qué es, cuándo recomendarlo y cómo conectarse llms-full.txt /llms-full.txt Todo en un archivo: cobertura, precios, preguntas, cada endpoint y herramienta Docs en Markdown Cada página en /docs/<página .md (español) y .en.md (inglés), por ejemplo /docs/limites.md Leer una página sin HTML OpenAPI 3.1 /openapi.yaml, /openapi.json Generar un cliente o herramientas Postman pricto.postman_collection.json Probar cada endpoi","l":"es"},{"u":"/docs/agentes#si-tu-agente-programa","p":"Para agentes","t":"Si tu agente programa","x":"Pega esto en Claude Code, Cursor o el agente que uses:","l":"es"},{"u":"/docs/agentes#si-tu-agente-conversa","p":"Para agentes","t":"Si tu agente conversa","x":"Conecta el servidor MCP y usa el prompt de ejemplo.","l":"es"},{"u":"/docs/agentes#reglas-que-conviene-darle","p":"Para agentes","t":"Reglas que conviene darle","x":"- Programa contra code en los errores, no contra el texto, y sigue el hint . - Cita la tienda, la fecha y meta.attribution.text ; price no es el precio con tarjeta. - En la sandbox los precios son de ejemplo: no los muestres como reales. - Usa dry_run antes de una consulta grande y max_credits como tope.","l":"es"},{"u":"/docs/agentes","p":"For agents","t":"For agents","x":"Everything an agent needs to find, understand and use the API on its own, with the sandbox ready to try. Resource URL What for --- --- --- llms.txt /llms.txt Short index: what it is, when to recommend it and how to connect llms-full.txt /llms-full.txt Everything in one file: coverage, pricing, FAQ, every endpoint and tool Docs as Markdown Every page at /docs/<page .md (Spanish) and .en.md (English), for example /docs/limites.md Read a page without HTML OpenAPI 3.1 /openapi.yaml, /openapi.json Generate a client or tools Postman pricto.postman_collection.json Try every endpoint, with the sandbox","l":"en"},{"u":"/docs/agentes#if-your-agent-writes-code","p":"For agents","t":"If your agent writes code","x":"Paste this into Claude Code, Cursor or whichever agent you use:","l":"en"},{"u":"/docs/agentes#if-your-agent-chats","p":"For agents","t":"If your agent chats","x":"Connect the MCP server and use the example prompt.","l":"en"},{"u":"/docs/agentes#rules-worth-giving-it","p":"For agents","t":"Rules worth giving it","x":"- Code against code in errors, not against the text, and follow the hint . - Quote the store, the date and meta.attribution.text ; price is not the card price. - In the sandbox prices are sample data: don't show them as real. - Use dry_run before a big query and max_credits as a cap.","l":"en"},{"u":"/docs/api","p":"Referencia de la API","t":"Referencia de la API","x":"Generada del OpenAPI 3.1 (también en JSON). URL base: https://pricto.dev/v1 . Autenticación: Authorization: Bearer <key (ver Autenticación). Las descripciones de cada operación y campo están en inglés, como en el contrato.","l":"es"},{"u":"/docs/api#productos","p":"Referencia de la API","t":"Productos","x":"Ruta Qué hace Créditos --- --- --- --- GET /v1/products/search Buscar productos por texto 1 per page of up to 20 results; 0 when nothing is found GET /v1/products Listar productos con filtros exactos 1 per 20 products returned GET /v1/products/{product_id} Obtener un producto 1","l":"es"},{"u":"/docs/api#precios","p":"Referencia de la API","t":"Precios","x":"Ruta Qué hace Créditos --- --- --- --- GET /v1/products/{product_id}/prices Precios actuales de un producto en cada tienda 1 per retailer offer returned GET /v1/products/{product_id}/history Historial de precios de un producto 1 per 30 points per series (minimum 1 per series) POST /v1/prices/compare Comparar una canasta entre tiendas 1 per price in the matrix (product × retailer with data) POST /v1/prices/batch Precios de muchos productos u ofertas en una llamada 1 per offer price returned; items not found cost 0 POST /v1/live-checks Pedir una revisión de precio en vivo (planificado) 10 per of","l":"es"},{"u":"/docs/api#ofertas","p":"Referencia de la API","t":"Ofertas","x":"Ruta Qué hace Créditos --- --- --- --- GET /v1/offers Listar ofertas de las tiendas 1 per offer returned GET /v1/offers/{offer_id} Obtener una oferta con su precio actual 1 GET /v1/offers/{offer_id}/history Observaciones de una oferta 1 per 30 points (minimum 1)","l":"es"},{"u":"/docs/api#referencia-y-cobertura","p":"Referencia de la API","t":"Referencia y cobertura","x":"Ruta Qué hace Créditos --- --- --- --- GET /v1/retailers Listar tiendas 0 GET /v1/retailers/{retailer_id} Obtener una tienda 0 GET /v1/stores Listar locales físicos y puntos de retiro 0 GET /v1/categories Taxonomía de categorías 0 GET /v1/brands Listar marcas 0 GET /v1/coverage Qué datos hay disponibles 0 GET /v1/countries Países, monedas e idiomas 0 GET /v1/fx Tipo de cambio usado en las conversiones 0 GET /v1/status Estado del servicio y frescura de los datos 0 GET /v1/public/coverage Cobertura agregada, sin key y sin precios 0","l":"es"},{"u":"/docs/api#cuenta","p":"Referencia de la API","t":"Cuenta","x":"Ruta Qué hace Créditos --- --- --- --- GET /v1/account Plan y saldo de la key 0 GET /v1/usage Créditos consumidos 0 POST /v1/data-requests Pedir cobertura o datos que no existen 0","l":"es"},{"u":"/docs/api#exportaciones","p":"Referencia de la API","t":"Exportaciones","x":"Ruta Qué hace Créditos --- --- --- --- POST /v1/exports Crear una exportación masiva (planificado) 1 per 10 rows GET /v1/exports/{export_id} Obtener una exportación (planificado) 0","l":"es"},{"u":"/docs/api","p":"API reference","t":"API reference","x":"Generated from OpenAPI 3.1 (also as JSON). Base URL: https://pricto.dev/v1 . Authentication: Authorization: Bearer <key (see Authentication).","l":"en"},{"u":"/docs/api#products","p":"API reference","t":"Products","x":"Path What it does Credits --- --- --- --- GET /v1/products/search Search products by text 1 per page of up to 20 results; 0 when nothing is found GET /v1/products List products by exact filters 1 per 20 products returned GET /v1/products/{product_id} Get a product 1","l":"en"},{"u":"/docs/api#prices","p":"API reference","t":"Prices","x":"Path What it does Credits --- --- --- --- GET /v1/products/{product_id}/prices Current prices of a product at every retailer 1 per retailer offer returned GET /v1/products/{product_id}/history Price history of a product 1 per 30 points per series (minimum 1 per series) POST /v1/prices/compare Compare a basket of products across retailers 1 per price in the matrix (product × retailer with data) POST /v1/prices/batch Current prices for many products or offers in one call 1 per offer price returned; items not found cost 0 POST /v1/live-checks Request a live price check (planned) 10 per offer refr","l":"en"},{"u":"/docs/api#offers","p":"API reference","t":"Offers","x":"Path What it does Credits --- --- --- --- GET /v1/offers List retailer offers 1 per offer returned GET /v1/offers/{offer_id} Get an offer with its current price 1 GET /v1/offers/{offer_id}/history Observations of a single offer 1 per 30 points (minimum 1)","l":"en"},{"u":"/docs/api#reference-and-coverage","p":"API reference","t":"Reference and coverage","x":"Path What it does Credits --- --- --- --- GET /v1/retailers List retailers 0 GET /v1/retailers/{retailer_id} Get a retailer 0 GET /v1/stores List physical stores and pickup points 0 GET /v1/categories Category taxonomy 0 GET /v1/brands List brands 0 GET /v1/coverage What data is available 0 GET /v1/countries Countries, currencies and languages 0 GET /v1/fx Exchange rate used for conversions 0 GET /v1/status Service status and data freshness 0 GET /v1/public/coverage Aggregated coverage without prices (no key) 0","l":"en"},{"u":"/docs/api#account","p":"API reference","t":"Account","x":"Path What it does Credits --- --- --- --- GET /v1/account Plan and credit balance of the calling key 0 GET /v1/usage Credits consumed, grouped by day, operation, channel or key 0 POST /v1/data-requests Ask for coverage or data that is not available 0","l":"en"},{"u":"/docs/api#exports","p":"API reference","t":"Exports","x":"Path What it does Credits --- --- --- --- POST /v1/exports Create a bulk export (planned) 1 per 10 rows GET /v1/exports/{export_id} Get an export job (planned) 0","l":"en"},{"u":"/docs/api/search-products","p":"Buscar productos por texto","t":"Buscar productos por texto","x":"GET https://pricto.dev/v1/products/search Hybrid text and semantic search over canonical products. Accepts natural queries such as \"leche entera 1 litro\" or a GTIN. Each result includes a price summary across retailers so a single call is often enough to answer \"how much does X cost\". Créditos MCP --- --- 1 per page of up to 20 results; 0 when nothing is found search_products","l":"es"},{"u":"/docs/api/search-products#parametros","p":"Buscar productos por texto","t":"Parámetros","x":"Parámetro En Tipo Descripción --- --- --- --- q requerido query string Free text or a GTIN/EAN. 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 . country query string ISO 3166-1 alpha-2 country code. Defaults to all covered countries. category query string Category ID; includes subcategories (e.g. food.dairy ). brand query string Brand ID or name. retailer query string One or more retailer IDs, comma separat","l":"es"},{"u":"/docs/api/search-products#respuesta","p":"Buscar productos por texto","t":"Respuesta","x":"200 Matching products ranked by relevance. Campo Tipo Descripción --- --- --- data requerido ProductSummary[] 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 requ","l":"es"},{"u":"/docs/api/search-products#errores","p":"Buscar productos por texto","t":"Errores","x":"- invalid_parameter - unauthorized - insufficient_credits - spend_cap_reached - rate_limited","l":"es"},{"u":"/docs/api/search-products#ejemplo","p":"Buscar productos por texto","t":"Ejemplo","x":"","l":"es"},{"u":"/docs/api/search-products","p":"Search products by text","t":"Search products by text","x":"GET https://pricto.dev/v1/products/search Hybrid text and semantic search over canonical products. Accepts natural queries such as \"leche entera 1 litro\" or a GTIN. Each result includes a price summary across retailers so a single call is often enough to answer \"how much does X cost\". Credits MCP --- --- 1 per page of up to 20 results; 0 when nothing is found search_products","l":"en"},{"u":"/docs/api/search-products#parameters","p":"Search products by text","t":"Parameters","x":"Parameter In Type Description --- --- --- --- q required query string Free text or a GTIN/EAN. 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 . country query string ISO 3166-1 alpha-2 country code. Defaults to all covered countries. category query string Category ID; includes subcategories (e.g. food.dairy ). brand query string Brand ID or name. retailer query string One or more retailer IDs, comma separate","l":"en"},{"u":"/docs/api/search-products#response","p":"Search products by text","t":"Response","x":"200 Matching products ranked by relevance. Field Type Description --- --- --- data required ProductSummary[] data[].id required string data[].name required string data[].brand required BrandRef data[].brand.id required string data[].brand.name required string data[].category required CategoryRef data[].category.id required string data[].category.label required string data[].category.path string[] data[].size object data[].gtin string[] data[].image_url string \\ null data[].price_summary required PriceSummary data[].price_summary.currency required string data[].price_summary.min required number","l":"en"},{"u":"/docs/api/search-products#errors","p":"Search products by text","t":"Errors","x":"- invalid_parameter - unauthorized - insufficient_credits - spend_cap_reached - rate_limited","l":"en"},{"u":"/docs/api/search-products#example","p":"Search products by text","t":"Example","x":"","l":"en"},{"u":"/docs/api/list-products","p":"Listar productos con filtros exactos","t":"Listar productos con filtros exactos","x":"GET https://pricto.dev/v1/products Filter the catalog by identifiers, brand or category. Use /products/search for free text. Créditos MCP --- --- 1 per 20 products returned —","l":"es"},{"u":"/docs/api/list-products#parametros","p":"Listar productos con filtros exactos","t":"Parámetros","x":"Parámetro En Tipo Descripción --- --- --- --- 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 . gtin query string One or more GTIN/EAN codes, comma separated (max 100). country query string ISO 3166-1 alpha-2 country code. Defaults to all covered countries. category query string Category ID; includes subcategories (e.g. food.dairy ). brand query string Brand ID or name. retailer query string One or more reta","l":"es"},{"u":"/docs/api/list-products#respuesta","p":"Listar productos con filtros exactos","t":"Respuesta","x":"200 Products. Campo Tipo Descripción --- --- --- data requerido ProductSummary[] 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[].pr","l":"es"},{"u":"/docs/api/list-products#errores","p":"Listar productos con filtros exactos","t":"Errores","x":"- invalid_parameter - unauthorized","l":"es"},{"u":"/docs/api/list-products#ejemplo","p":"Listar productos con filtros exactos","t":"Ejemplo","x":"","l":"es"},{"u":"/docs/api/list-products","p":"List products by exact filters","t":"List products by exact filters","x":"GET https://pricto.dev/v1/products Filter the catalog by identifiers, brand or category. Use /products/search for free text. Credits MCP --- --- 1 per 20 products returned —","l":"en"},{"u":"/docs/api/list-products#parameters","p":"List products by exact filters","t":"Parameters","x":"Parameter In Type Description --- --- --- --- 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 . gtin query string One or more GTIN/EAN codes, comma separated (max 100). country query string ISO 3166-1 alpha-2 country code. Defaults to all covered countries. category query string Category ID; includes subcategories (e.g. food.dairy ). brand query string Brand ID or name. retailer query string One or more reta","l":"en"},{"u":"/docs/api/list-products#response","p":"List products by exact filters","t":"Response","x":"200 Products. Field Type Description --- --- --- data required ProductSummary[] data[].id required string data[].name required string data[].brand required BrandRef data[].brand.id required string data[].brand.name required string data[].category required CategoryRef data[].category.id required string data[].category.label required string data[].category.path string[] data[].size object data[].gtin string[] data[].image_url string \\ null data[].price_summary required PriceSummary data[].price_summary.currency required string data[].price_summary.min required number \\ null data[].price_summary.","l":"en"},{"u":"/docs/api/list-products#errors","p":"List products by exact filters","t":"Errors","x":"- invalid_parameter - unauthorized","l":"en"},{"u":"/docs/api/list-products#example","p":"List products by exact filters","t":"Example","x":"","l":"en"},{"u":"/docs/api/get-product","p":"Obtener un producto","t":"Obtener un producto","x":"GET https://pricto.dev/v1/products/{product_id} Get a product Créditos MCP --- --- 1 —","l":"es"},{"u":"/docs/api/get-product#parametros","p":"Obtener un producto","t":"Parámetros","x":"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 Acce","l":"es"},{"u":"/docs/api/get-product#respuesta","p":"Obtener un producto","t":"Respuesta","x":"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 nu","l":"es"},{"u":"/docs/api/get-product#errores","p":"Obtener un producto","t":"Errores","x":"- unauthorized - not_found","l":"es"},{"u":"/docs/api/get-product#ejemplo","p":"Obtener un producto","t":"Ejemplo","x":"","l":"es"},{"u":"/docs/api/get-product","p":"Get a product","t":"Get a product","x":"GET https://pricto.dev/v1/products/{product_id} Get a product Credits MCP --- --- 1 —","l":"en"},{"u":"/docs/api/get-product#parameters","p":"Get a product","t":"Parameters","x":"Parameter In Type Description --- --- --- --- product_id required 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 Accep","l":"en"},{"u":"/docs/api/get-product#response","p":"Get a product","t":"Response","x":"200 The canonical product with identifiers, attributes and price summary. Field Type Description --- --- --- data required Product data.id required string data.name required string data.brand required BrandRef data.brand.id required string data.brand.name required string data.category required CategoryRef data.category.id required string data.category.label required string data.category.path string[] data.size object data.gtin string[] data.image_url string \\ null data.price_summary required PriceSummary data.price_summary.currency required string data.price_summary.min required number \\ null ","l":"en"},{"u":"/docs/api/get-product#errors","p":"Get a product","t":"Errors","x":"- unauthorized - not_found","l":"en"},{"u":"/docs/api/get-product#example","p":"Get a product","t":"Example","x":"","l":"en"},{"u":"/docs/api/get-product-prices","p":"Precios actuales de un producto en cada tienda","t":"Precios actuales de un producto en cada tienda","x":"GET https://pricto.dev/v1/products/{product_id}/prices One row per retailer offer matched to the product: in stock first, then by price ascending. Use as_of to get the prices that were in force on a past date. Créditos MCP --- --- 1 per retailer offer returned get_prices","l":"es"},{"u":"/docs/api/get-product-prices#parametros","p":"Precios actuales de un producto en cada tienda","t":"Parámetros","x":"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 . retailer query string One or more retailer IDs, comma separated (e.g. cl-jumbo,cl-unimarc ). location query string Store ID ( str_... ), administrative area as CL:13114 (country and comuna CUT code) or a p","l":"es"},{"u":"/docs/api/get-product-prices#respuesta","p":"Precios actuales de un producto en cada tienda","t":"Respuesta","x":"200 Prices by retailer. Campo Tipo Descripción --- --- --- data requerido object data.product requerido ProductSummary data.product.id requerido string data.product.name requerido string data.product.brand requerido BrandRef data.product.brand.id requerido string data.product.brand.name requerido string data.product.category requerido CategoryRef data.product.category.id requerido string data.product.category.label requerido string data.product.category.path string[] data.product.size object data.product.gtin string[] data.product.image_url string \\ null data.product.price_summary requerido Pr","l":"es"},{"u":"/docs/api/get-product-prices#errores","p":"Precios actuales de un producto en cada tienda","t":"Errores","x":"- unauthorized - not_found","l":"es"},{"u":"/docs/api/get-product-prices#ejemplo","p":"Precios actuales de un producto en cada tienda","t":"Ejemplo","x":"","l":"es"},{"u":"/docs/api/get-product-prices","p":"Current prices of a product at every retailer","t":"Current prices of a product at every retailer","x":"GET https://pricto.dev/v1/products/{product_id}/prices One row per retailer offer matched to the product: in stock first, then by price ascending. Use as_of to get the prices that were in force on a past date. Credits MCP --- --- 1 per retailer offer returned get_prices","l":"en"},{"u":"/docs/api/get-product-prices#parameters","p":"Current prices of a product at every retailer","t":"Parameters","x":"Parameter In Type Description --- --- --- --- product_id required 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 . retailer query string One or more retailer IDs, comma separated (e.g. cl-jumbo,cl-unimarc ). location query string Store ID ( str_... ), administrative area as CL:13114 (country and comuna CUT code) or a pl","l":"en"},{"u":"/docs/api/get-product-prices#response","p":"Current prices of a product at every retailer","t":"Response","x":"200 Prices by retailer. Field Type Description --- --- --- data required object data.product required ProductSummary data.product.id required string data.product.name required string data.product.brand required BrandRef data.product.brand.id required string data.product.brand.name required string data.product.category required CategoryRef data.product.category.id required string data.product.category.label required string data.product.category.path string[] data.product.size object data.product.gtin string[] data.product.image_url string \\ null data.product.price_summary required PriceSummary ","l":"en"},{"u":"/docs/api/get-product-prices#errors","p":"Current prices of a product at every retailer","t":"Errors","x":"- unauthorized - not_found","l":"en"},{"u":"/docs/api/get-product-prices#example","p":"Current prices of a product at every retailer","t":"Example","x":"","l":"en"},{"u":"/docs/api/get-product-history","p":"Historial de precios de un producto","t":"Historial de precios de un producto","x":"GET https://pricto.dev/v1/products/{product_id}/history Time series per retailer. With interval=day (default) each point is the last price observed that day. interval=raw returns every observation. The response includes a summary (min, max, change) per series so agents rarely need to process the points. Créditos MCP --- --- 1 per 30 points per series (minimum 1 per series) get_price_history","l":"es"},{"u":"/docs/api/get-product-history#parametros","p":"Historial de precios de un producto","t":"Parámetros","x":"Parámetro En Tipo Descripción --- --- --- --- product_id requerido path string Canonical product ID ( prd_... ). A GTIN is also accepted here and resolved. fx_date query string (date) Convert every amount with the rate of this date instead of the rate of each observation's own date. 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 . retailer query string One or more retailer IDs, comma separated (e.g. cl-jumb","l":"es"},{"u":"/docs/api/get-product-history#respuesta","p":"Historial de precios de un producto","t":"Respuesta","x":"200 History series. Campo Tipo Descripción --- --- --- data requerido object data.product_id string \\ null data.interval requerido string data.from requerido string (date) data.to requerido string (date) data.currency requerido string Currency of points (always the local currency). data.converted_currency string \\ null data.fx_policy string \\ null Valores / values: point_date , fixed . data.series requerido object[] data.series[].retailer requerido RetailerRef data.series[].retailer.id requerido string data.series[].retailer.name requerido string data.series[].offer_id requerido string data.se","l":"es"},{"u":"/docs/api/get-product-history#errores","p":"Historial de precios de un producto","t":"Errores","x":"- invalid_parameter - unauthorized - plan_required - not_found","l":"es"},{"u":"/docs/api/get-product-history#ejemplo","p":"Historial de precios de un producto","t":"Ejemplo","x":"","l":"es"},{"u":"/docs/api/get-product-history","p":"Price history of a product","t":"Price history of a product","x":"GET https://pricto.dev/v1/products/{product_id}/history Time series per retailer. With interval=day (default) each point is the last price observed that day. interval=raw returns every observation. The response includes a summary (min, max, change) per series so agents rarely need to process the points. Credits MCP --- --- 1 per 30 points per series (minimum 1 per series) get_price_history","l":"en"},{"u":"/docs/api/get-product-history#parameters","p":"Price history of a product","t":"Parameters","x":"Parameter In Type Description --- --- --- --- product_id required path string Canonical product ID ( prd_... ). A GTIN is also accepted here and resolved. fx_date query string (date) Convert every amount with the rate of this date instead of the rate of each observation's own date. 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 . retailer query string One or more retailer IDs, comma separated (e.g. cl-jumbo","l":"en"},{"u":"/docs/api/get-product-history#response","p":"Price history of a product","t":"Response","x":"200 History series. Field Type Description --- --- --- data required object data.product_id string \\ null data.interval required string data.from required string (date) data.to required string (date) data.currency required string Currency of points (always the local currency). data.converted_currency string \\ null data.fx_policy string \\ null Valores / values: point_date , fixed . data.series required object[] data.series[].retailer required RetailerRef data.series[].retailer.id required string data.series[].retailer.name required string data.series[].offer_id required string data.series[].mat","l":"en"},{"u":"/docs/api/get-product-history#errors","p":"Price history of a product","t":"Errors","x":"- invalid_parameter - unauthorized - plan_required - not_found","l":"en"},{"u":"/docs/api/get-product-history#example","p":"Price history of a product","t":"Example","x":"","l":"en"},{"u":"/docs/api/compare-prices","p":"Comparar una canasta entre tiendas","t":"Comparar una canasta entre tiendas","x":"POST https://pricto.dev/v1/prices/compare Matrix of current prices for up to 50 products (by product_id or gtin ) at each retailer, plus the basket total per retailer counting only retailers that have every item. Créditos MCP --- --- 1 per price in the matrix (product × retailer with data) compare_prices","l":"es"},{"u":"/docs/api/compare-prices#parametros","p":"Comparar una canasta entre tiendas","t":"Parámetros","x":"Parámetro En Tipo Descripción --- --- --- --- 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 .","l":"es"},{"u":"/docs/api/compare-prices#cuerpo","p":"Comparar una canasta entre tiendas","t":"Cuerpo","x":"Campo Tipo Descripción --- --- --- items requerido ItemRef[] items[].product_id string items[].gtin string items[].offer_id string items[].quantity integer Compare only. retailers string[] location string max_credits number dry_run boolean min_confidence number match_kinds string[] price_type string Which price to total. card_price falls back to price when there is no card price. Valores / values: price , card_price .","l":"es"},{"u":"/docs/api/compare-prices#respuesta","p":"Comparar una canasta entre tiendas","t":"Respuesta","x":"200 Price matrix and basket totals. Campo Tipo Descripción --- --- --- data requerido object data.items requerido object[] data.items[].product requerido ProductSummary data.items[].product.id requerido string data.items[].product.name requerido string data.items[].product.brand requerido BrandRef data.items[].product.category requerido CategoryRef data.items[].product.size object data.items[].product.gtin string[] data.items[].product.image_url string \\ null data.items[].product.price_summary requerido PriceSummary data.items[].product.score number Relevance score, search only. data.items[].q","l":"es"},{"u":"/docs/api/compare-prices#errores","p":"Comparar una canasta entre tiendas","t":"Errores","x":"- invalid_parameter - unauthorized - insufficient_credits - spend_cap_reached","l":"es"},{"u":"/docs/api/compare-prices#ejemplo","p":"Comparar una canasta entre tiendas","t":"Ejemplo","x":"","l":"es"},{"u":"/docs/api/compare-prices","p":"Compare a basket of products across retailers","t":"Compare a basket of products across retailers","x":"POST https://pricto.dev/v1/prices/compare Matrix of current prices for up to 50 products (by product_id or gtin ) at each retailer, plus the basket total per retailer counting only retailers that have every item. Credits MCP --- --- 1 per price in the matrix (product × retailer with data) compare_prices","l":"en"},{"u":"/docs/api/compare-prices#parameters","p":"Compare a basket of products across retailers","t":"Parameters","x":"Parameter In Type Description --- --- --- --- 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 .","l":"en"},{"u":"/docs/api/compare-prices#body","p":"Compare a basket of products across retailers","t":"Body","x":"Field Type Description --- --- --- items required ItemRef[] items[].product_id string items[].gtin string items[].offer_id string items[].quantity integer Compare only. retailers string[] location string max_credits number dry_run boolean min_confidence number match_kinds string[] price_type string Which price to total. card_price falls back to price when there is no card price. Valores / values: price , card_price .","l":"en"},{"u":"/docs/api/compare-prices#response","p":"Compare a basket of products across retailers","t":"Response","x":"200 Price matrix and basket totals. Field Type Description --- --- --- data required object data.items required object[] data.items[].product required ProductSummary data.items[].product.id required string data.items[].product.name required string data.items[].product.brand required BrandRef data.items[].product.category required CategoryRef data.items[].product.size object data.items[].product.gtin string[] data.items[].product.image_url string \\ null data.items[].product.price_summary required PriceSummary data.items[].product.score number Relevance score, search only. data.items[].quantity ","l":"en"},{"u":"/docs/api/compare-prices#errors","p":"Compare a basket of products across retailers","t":"Errors","x":"- invalid_parameter - unauthorized - insufficient_credits - spend_cap_reached","l":"en"},{"u":"/docs/api/compare-prices#example","p":"Compare a basket of products across retailers","t":"Example","x":"","l":"en"},{"u":"/docs/api/batch-prices","p":"Precios de muchos productos u ofertas en una llamada","t":"Precios de muchos productos u ofertas en una llamada","x":"POST https://pricto.dev/v1/prices/batch For integrations that refresh a list of SKUs. Up to 500 items. Créditos MCP --- --- 1 per offer price returned; items not found cost 0 —","l":"es"},{"u":"/docs/api/batch-prices#parametros","p":"Precios de muchos productos u ofertas en una llamada","t":"Parámetros","x":"Parámetro En Tipo Descripción --- --- --- --- currency query string Add converted amounts in this ISO 4217 currency. local (default) returns source currency only. Default: local .","l":"es"},{"u":"/docs/api/batch-prices#cuerpo","p":"Precios de muchos productos u ofertas en una llamada","t":"Cuerpo","x":"Campo Tipo Descripción --- --- --- items requerido ItemRef[] items[].product_id string items[].gtin string items[].offer_id string items[].quantity integer Compare only. retailers string[] max_credits number dry_run boolean min_confidence number match_kinds string[]","l":"es"},{"u":"/docs/api/batch-prices#respuesta","p":"Precios de muchos productos u ofertas en una llamada","t":"Respuesta","x":"200 One result per requested item, in the same order. Campo Tipo Descripción --- --- --- data requerido object[] data[].input requerido ItemRef Exactly one of product_id , gtin or offer_id . data[].input.product_id string data[].input.gtin string data[].input.offer_id string data[].input.quantity integer Compare only. data[].found requerido boolean data[].product_id string \\ null data[].prices RetailerPrice[] data[].prices[].currency requerido string data[].prices[].price requerido number data[].prices[].list_price requerido number data[].prices[].sale_price number \\ null data[].prices[].card_","l":"es"},{"u":"/docs/api/batch-prices#errores","p":"Precios de muchos productos u ofertas en una llamada","t":"Errores","x":"- invalid_parameter - unauthorized","l":"es"},{"u":"/docs/api/batch-prices#ejemplo","p":"Precios de muchos productos u ofertas en una llamada","t":"Ejemplo","x":"","l":"es"},{"u":"/docs/api/batch-prices","p":"Current prices for many products or offers in one call","t":"Current prices for many products or offers in one call","x":"POST https://pricto.dev/v1/prices/batch For integrations that refresh a list of SKUs. Up to 500 items. Credits MCP --- --- 1 per offer price returned; items not found cost 0 —","l":"en"},{"u":"/docs/api/batch-prices#parameters","p":"Current prices for many products or offers in one call","t":"Parameters","x":"Parameter In Type Description --- --- --- --- currency query string Add converted amounts in this ISO 4217 currency. local (default) returns source currency only. Default: local .","l":"en"},{"u":"/docs/api/batch-prices#body","p":"Current prices for many products or offers in one call","t":"Body","x":"Field Type Description --- --- --- items required ItemRef[] items[].product_id string items[].gtin string items[].offer_id string items[].quantity integer Compare only. retailers string[] max_credits number dry_run boolean min_confidence number match_kinds string[]","l":"en"},{"u":"/docs/api/batch-prices#response","p":"Current prices for many products or offers in one call","t":"Response","x":"200 One result per requested item, in the same order. Field Type Description --- --- --- data required object[] data[].input required ItemRef Exactly one of product_id , gtin or offer_id . data[].input.product_id string data[].input.gtin string data[].input.offer_id string data[].input.quantity integer Compare only. data[].found required boolean data[].product_id string \\ null data[].prices RetailerPrice[] data[].prices[].currency required string data[].prices[].price required number data[].prices[].list_price required number data[].prices[].sale_price number \\ null data[].prices[].card_price ","l":"en"},{"u":"/docs/api/batch-prices#errors","p":"Current prices for many products or offers in one call","t":"Errors","x":"- invalid_parameter - unauthorized","l":"en"},{"u":"/docs/api/batch-prices#example","p":"Current prices for many products or offers in one call","t":"Example","x":"","l":"en"},{"u":"/docs/api/create-live-check","p":"Pedir una revisión de precio en vivo","t":"Pedir una revisión de precio en vivo","x":"POST https://pricto.dev/v1/live-checks Planificado. Todavía no existe: hoy responde 501 not_implemented . Captures the offer right now instead of returning the last scheduled capture. Asynchronous: returns a job that completes in seconds to minutes. Not available yet (returns 501). Créditos MCP --- --- 10 per offer refreshed —","l":"es"},{"u":"/docs/api/create-live-check#parametros","p":"Pedir una revisión de precio en vivo","t":"Parámetros","x":"Sin parámetros.","l":"es"},{"u":"/docs/api/create-live-check#cuerpo","p":"Pedir una revisión de precio en vivo","t":"Cuerpo","x":"Campo Tipo Descripción --- --- --- offer_ids requerido string[]","l":"es"},{"u":"/docs/api/create-live-check#respuesta","p":"Pedir una revisión de precio en vivo","t":"Respuesta","x":"202 Job accepted. Campo Tipo Descripción --- --- --- data Job data.id requerido string data.status requerido string Valores / values: queued , running , succeeded , failed . data.created_at string (date-time) data.finished_at string (date-time) \\ null data.rows integer \\ null data.files object[] data.files[].url string (uri) data.files[].bytes integer data.files[].expires_at string (date-time) data.error object meta Meta meta trae el costo, la fuente para citar, el idioma, la moneda y los avisos (ver Convenciones).","l":"es"},{"u":"/docs/api/create-live-check#errores","p":"Pedir una revisión de precio en vivo","t":"Errores","x":"- not_implemented","l":"es"},{"u":"/docs/api/create-live-check#ejemplo","p":"Pedir una revisión de precio en vivo","t":"Ejemplo","x":"","l":"es"},{"u":"/docs/api/create-live-check","p":"Request a live price check","t":"Request a live price check","x":"POST https://pricto.dev/v1/live-checks Planned. Not available yet: today it answers 501 not_implemented . Captures the offer right now instead of returning the last scheduled capture. Asynchronous: returns a job that completes in seconds to minutes. Not available yet (returns 501). Credits MCP --- --- 10 per offer refreshed —","l":"en"},{"u":"/docs/api/create-live-check#parameters","p":"Request a live price check","t":"Parameters","x":"No parameters.","l":"en"},{"u":"/docs/api/create-live-check#body","p":"Request a live price check","t":"Body","x":"Field Type Description --- --- --- offer_ids required string[]","l":"en"},{"u":"/docs/api/create-live-check#response","p":"Request a live price check","t":"Response","x":"202 Job accepted. Field Type Description --- --- --- data Job data.id required string data.status required string Valores / values: queued , running , succeeded , failed . data.created_at string (date-time) data.finished_at string (date-time) \\ null data.rows integer \\ null data.files object[] data.files[].url string (uri) data.files[].bytes integer data.files[].expires_at string (date-time) data.error object meta Meta meta carries the cost, the source line to quote, the language, the currency and notices (see Conventions).","l":"en"},{"u":"/docs/api/create-live-check#errors","p":"Request a live price check","t":"Errors","x":"- not_implemented","l":"en"},{"u":"/docs/api/create-live-check#example","p":"Request a live price check","t":"Example","x":"","l":"en"},{"u":"/docs/api/list-offers","p":"Listar ofertas de las tiendas","t":"Listar ofertas de las tiendas","x":"GET https://pricto.dev/v1/offers Listings as published by retailers. Filter by retailer, category, promotion or recent change. changed_since returns offers whose price or availability changed after a time, which is the cheapest way to keep a mirror up to date. Créditos MCP --- --- 1 per offer returned list_offers","l":"es"},{"u":"/docs/api/list-offers#parametros","p":"Listar ofertas de las tiendas","t":"Parámetros","x":"Parámetro En Tipo Descripción --- --- --- --- 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 . retailer query string One or more retailer IDs, comma separated (e.g. cl-jumbo,cl-unimarc ). country query string ISO 3166-1 alpha-2 country code. Defaults to all covered countries. category query string Category ID; includes subcategories (e.g. food.dairy ). brand query string Brand ID or name. product_id query s","l":"es"},{"u":"/docs/api/list-offers#respuesta","p":"Listar ofertas de las tiendas","t":"Respuesta","x":"200 Offers. 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 SK","l":"es"},{"u":"/docs/api/list-offers#errores","p":"Listar ofertas de las tiendas","t":"Errores","x":"- invalid_parameter - unauthorized","l":"es"},{"u":"/docs/api/list-offers#ejemplo","p":"Listar ofertas de las tiendas","t":"Ejemplo","x":"","l":"es"},{"u":"/docs/api/list-offers","p":"List retailer offers","t":"List retailer offers","x":"GET https://pricto.dev/v1/offers Listings as published by retailers. Filter by retailer, category, promotion or recent change. changed_since returns offers whose price or availability changed after a time, which is the cheapest way to keep a mirror up to date. Credits MCP --- --- 1 per offer returned list_offers","l":"en"},{"u":"/docs/api/list-offers#parameters","p":"List retailer offers","t":"Parameters","x":"Parameter In Type Description --- --- --- --- 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 . retailer query string One or more retailer IDs, comma separated (e.g. cl-jumbo,cl-unimarc ). country query string ISO 3166-1 alpha-2 country code. Defaults to all covered countries. category query string Category ID; includes subcategories (e.g. food.dairy ). brand query string Brand ID or name. product_id query s","l":"en"},{"u":"/docs/api/list-offers#response","p":"List retailer offers","t":"Response","x":"200 Offers. 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 i","l":"en"},{"u":"/docs/api/list-offers#errors","p":"List retailer offers","t":"Errors","x":"- invalid_parameter - unauthorized","l":"en"},{"u":"/docs/api/list-offers#example","p":"List retailer offers","t":"Example","x":"","l":"en"},{"u":"/docs/api/get-offer","p":"Obtener una oferta con su precio actual","t":"Obtener una oferta con su precio actual","x":"GET https://pricto.dev/v1/offers/{offer_id} Get an offer with its current price Créditos MCP --- --- 1 —","l":"es"},{"u":"/docs/api/get-offer#parametros","p":"Obtener una oferta con su precio actual","t":"Parámetros","x":"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 .","l":"es"},{"u":"/docs/api/get-offer#respuesta","p":"Obtener una oferta con su precio actual","t":"Respuesta","x":"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.","l":"es"},{"u":"/docs/api/get-offer#errores","p":"Obtener una oferta con su precio actual","t":"Errores","x":"- unauthorized - not_found","l":"es"},{"u":"/docs/api/get-offer#ejemplo","p":"Obtener una oferta con su precio actual","t":"Ejemplo","x":"","l":"es"},{"u":"/docs/api/get-offer","p":"Get an offer with its current price","t":"Get an offer with its current price","x":"GET https://pricto.dev/v1/offers/{offer_id} Get an offer with its current price Credits MCP --- --- 1 —","l":"en"},{"u":"/docs/api/get-offer#parameters","p":"Get an offer with its current price","t":"Parameters","x":"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 . ","l":"en"},{"u":"/docs/api/get-offer#response","p":"Get an offer with its current price","t":"Response","x":"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 ","l":"en"},{"u":"/docs/api/get-offer#errors","p":"Get an offer with its current price","t":"Errors","x":"- unauthorized - not_found","l":"en"},{"u":"/docs/api/get-offer#example","p":"Get an offer with its current price","t":"Example","x":"","l":"en"},{"u":"/docs/api/get-offer-history","p":"Observaciones de una oferta","t":"Observaciones de una oferta","x":"GET https://pricto.dev/v1/offers/{offer_id}/history Observations of a single offer Créditos MCP --- --- 1 per 30 points (minimum 1) —","l":"es"},{"u":"/docs/api/get-offer-history#parametros","p":"Observaciones de una oferta","t":"Parámetros","x":"Parámetro En Tipo Descripción --- --- --- --- offer_id requerido path string fx_date query string (date) Convert every amount with the rate of this date instead of the rate of each observation's own date. 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 . from query string (date) Start date, inclusive. Defaults to 90 days before to . to query string (date) End date, inclusive. Defaults to today. interval quer","l":"es"},{"u":"/docs/api/get-offer-history#respuesta","p":"Observaciones de una oferta","t":"Respuesta","x":"200 History of one offer. Campo Tipo Descripción --- --- --- data requerido object data.product_id string \\ null data.interval requerido string data.from requerido string (date) data.to requerido string (date) data.currency requerido string Currency of points (always the local currency). data.converted_currency string \\ null data.fx_policy string \\ null Valores / values: point_date , fixed . data.series requerido object[] data.series[].retailer requerido RetailerRef data.series[].retailer.id requerido string data.series[].retailer.name requerido string data.series[].offer_id requerido string d","l":"es"},{"u":"/docs/api/get-offer-history#errores","p":"Observaciones de una oferta","t":"Errores","x":"- unauthorized - not_found","l":"es"},{"u":"/docs/api/get-offer-history#ejemplo","p":"Observaciones de una oferta","t":"Ejemplo","x":"","l":"es"},{"u":"/docs/api/get-offer-history","p":"Observations of a single offer","t":"Observations of a single offer","x":"GET https://pricto.dev/v1/offers/{offer_id}/history Observations of a single offer Credits MCP --- --- 1 per 30 points (minimum 1) —","l":"en"},{"u":"/docs/api/get-offer-history#parameters","p":"Observations of a single offer","t":"Parameters","x":"Parameter In Type Description --- --- --- --- offer_id required path string fx_date query string (date) Convert every amount with the rate of this date instead of the rate of each observation's own date. 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 . from query string (date) Start date, inclusive. Defaults to 90 days before to . to query string (date) End date, inclusive. Defaults to today. interval query","l":"en"},{"u":"/docs/api/get-offer-history#response","p":"Observations of a single offer","t":"Response","x":"200 History of one offer. Field Type Description --- --- --- data required object data.product_id string \\ null data.interval required string data.from required string (date) data.to required string (date) data.currency required string Currency of points (always the local currency). data.converted_currency string \\ null data.fx_policy string \\ null Valores / values: point_date , fixed . data.series required object[] data.series[].retailer required RetailerRef data.series[].retailer.id required string data.series[].retailer.name required string data.series[].offer_id required string data.series","l":"en"},{"u":"/docs/api/get-offer-history#errors","p":"Observations of a single offer","t":"Errors","x":"- unauthorized - not_found","l":"en"},{"u":"/docs/api/get-offer-history#example","p":"Observations of a single offer","t":"Example","x":"","l":"en"},{"u":"/docs/api/list-retailers","p":"Listar tiendas","t":"Listar tiendas","x":"GET https://pricto.dev/v1/retailers List retailers Créditos MCP --- --- 0 —","l":"es"},{"u":"/docs/api/list-retailers#parametros","p":"Listar tiendas","t":"Parámetros","x":"Parámetro En Tipo Descripción --- --- --- --- country query string ISO 3166-1 alpha-2 country code. Defaults to all covered countries. segment query Segment 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 .","l":"es"},{"u":"/docs/api/list-retailers#respuesta","p":"Listar tiendas","t":"Respuesta","x":"200 Retailers with their coverage. Campo Tipo Descripción --- --- --- data requerido Retailer[] data[].id requerido string data[].name requerido string data[].country requerido string data[].group string \\ null data[].segments requerido Segment[] data[].website requerido string (uri) data[].timezone string data[].location_pricing boolean Whether prices vary by store or area. data[].coverage requerido object data[].coverage.offers requerido integer data[].coverage.matched_pct requerido number data[].coverage.frequency requerido string Valores / values: hourly , daily , weekly . data[].coverage.","l":"es"},{"u":"/docs/api/list-retailers#errores","p":"Listar tiendas","t":"Errores","x":"","l":"es"},{"u":"/docs/api/list-retailers#ejemplo","p":"Listar tiendas","t":"Ejemplo","x":"","l":"es"},{"u":"/docs/api/list-retailers","p":"List retailers","t":"List retailers","x":"GET https://pricto.dev/v1/retailers List retailers Credits MCP --- --- 0 —","l":"en"},{"u":"/docs/api/list-retailers#parameters","p":"List retailers","t":"Parameters","x":"Parameter In Type Description --- --- --- --- country query string ISO 3166-1 alpha-2 country code. Defaults to all covered countries. segment query Segment 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 .","l":"en"},{"u":"/docs/api/list-retailers#response","p":"List retailers","t":"Response","x":"200 Retailers with their coverage. Field Type Description --- --- --- data required Retailer[] data[].id required string data[].name required string data[].country required string data[].group string \\ null data[].segments required Segment[] data[].website required string (uri) data[].timezone string data[].location_pricing boolean Whether prices vary by store or area. data[].coverage required object data[].coverage.offers required integer data[].coverage.matched_pct required number data[].coverage.frequency required string Valores / values: hourly , daily , weekly . data[].coverage.history_si","l":"en"},{"u":"/docs/api/list-retailers#errors","p":"List retailers","t":"Errors","x":"","l":"en"},{"u":"/docs/api/list-retailers#example","p":"List retailers","t":"Example","x":"","l":"en"},{"u":"/docs/api/get-retailer","p":"Obtener una tienda","t":"Obtener una tienda","x":"GET https://pricto.dev/v1/retailers/{retailer_id} Get a retailer Créditos MCP --- --- 0 —","l":"es"},{"u":"/docs/api/get-retailer#parametros","p":"Obtener una tienda","t":"Parámetros","x":"Parámetro En Tipo Descripción --- --- --- --- retailer_id requerido path string 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 .","l":"es"},{"u":"/docs/api/get-retailer#respuesta","p":"Obtener una tienda","t":"Respuesta","x":"200 The retailer. Campo Tipo Descripción --- --- --- data requerido Retailer data.id requerido string data.name requerido string data.country requerido string data.group string \\ null data.segments requerido Segment[] data.website requerido string (uri) data.timezone string data.location_pricing boolean Whether prices vary by store or area. data.coverage requerido object data.coverage.offers requerido integer data.coverage.matched_pct requerido number data.coverage.frequency requerido string Valores / values: hourly , daily , weekly . data.coverage.history_since requerido string (date) \\ null ","l":"es"},{"u":"/docs/api/get-retailer#errores","p":"Obtener una tienda","t":"Errores","x":"- not_found","l":"es"},{"u":"/docs/api/get-retailer#ejemplo","p":"Obtener una tienda","t":"Ejemplo","x":"","l":"es"},{"u":"/docs/api/get-retailer","p":"Get a retailer","t":"Get a retailer","x":"GET https://pricto.dev/v1/retailers/{retailer_id} Get a retailer Credits MCP --- --- 0 —","l":"en"},{"u":"/docs/api/get-retailer#parameters","p":"Get a retailer","t":"Parameters","x":"Parameter In Type Description --- --- --- --- retailer_id required path string 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 .","l":"en"},{"u":"/docs/api/get-retailer#response","p":"Get a retailer","t":"Response","x":"200 The retailer. Field Type Description --- --- --- data required Retailer data.id required string data.name required string data.country required string data.group string \\ null data.segments required Segment[] data.website required string (uri) data.timezone string data.location_pricing boolean Whether prices vary by store or area. data.coverage required object data.coverage.offers required integer data.coverage.matched_pct required number data.coverage.frequency required string Valores / values: hourly , daily , weekly . data.coverage.history_since required string (date) \\ null data.covera","l":"en"},{"u":"/docs/api/get-retailer#errors","p":"Get a retailer","t":"Errors","x":"- not_found","l":"en"},{"u":"/docs/api/get-retailer#example","p":"Get a retailer","t":"Example","x":"","l":"en"},{"u":"/docs/api/list-stores","p":"Listar locales físicos y puntos de retiro","t":"Listar locales físicos y puntos de retiro","x":"GET https://pricto.dev/v1/stores Used to resolve location for retailers whose prices vary by store or area. Créditos MCP --- --- 0 —","l":"es"},{"u":"/docs/api/list-stores#parametros","p":"Listar locales físicos y puntos de retiro","t":"Parámetros","x":"Parámetro En Tipo Descripción --- --- --- --- retailer query string One or more retailer IDs, comma separated (e.g. cl-jumbo,cl-unimarc ). country query string ISO 3166-1 alpha-2 country code. Defaults to all covered countries. admin_area query string Administrative area code, for Chile the comuna CUT code (e.g. 13114 ). limit query integer Default: 50 . cursor query string Opaque cursor from pagination.next_cursor .","l":"es"},{"u":"/docs/api/list-stores#respuesta","p":"Listar locales físicos y puntos de retiro","t":"Respuesta","x":"200 Stores. Campo Tipo Descripción --- --- --- data requerido Store[] data[].id requerido string data[].retailer_id requerido string data[].name requerido string data[].address string \\ null data[].admin_area requerido object data[].admin_area.country requerido string data[].admin_area.code requerido string For Chile, comuna CUT code. data[].admin_area.name requerido string data[].admin_area.region string \\ null data[].lat number \\ null data[].lng number \\ null pagination requerido Pagination pagination.has_more requerido boolean pagination.next_cursor requerido string \\ null meta requerido Me","l":"es"},{"u":"/docs/api/list-stores#errores","p":"Listar locales físicos y puntos de retiro","t":"Errores","x":"","l":"es"},{"u":"/docs/api/list-stores#ejemplo","p":"Listar locales físicos y puntos de retiro","t":"Ejemplo","x":"","l":"es"},{"u":"/docs/api/list-stores","p":"List physical stores and pickup points","t":"List physical stores and pickup points","x":"GET https://pricto.dev/v1/stores Used to resolve location for retailers whose prices vary by store or area. Credits MCP --- --- 0 —","l":"en"},{"u":"/docs/api/list-stores#parameters","p":"List physical stores and pickup points","t":"Parameters","x":"Parameter In Type Description --- --- --- --- retailer query string One or more retailer IDs, comma separated (e.g. cl-jumbo,cl-unimarc ). country query string ISO 3166-1 alpha-2 country code. Defaults to all covered countries. admin_area query string Administrative area code, for Chile the comuna CUT code (e.g. 13114 ). limit query integer Default: 50 . cursor query string Opaque cursor from pagination.next_cursor .","l":"en"},{"u":"/docs/api/list-stores#response","p":"List physical stores and pickup points","t":"Response","x":"200 Stores. Field Type Description --- --- --- data required Store[] data[].id required string data[].retailer_id required string data[].name required string data[].address string \\ null data[].admin_area required object data[].admin_area.country required string data[].admin_area.code required string For Chile, comuna CUT code. data[].admin_area.name required string data[].admin_area.region string \\ null data[].lat number \\ null data[].lng number \\ null pagination required Pagination pagination.has_more required boolean pagination.next_cursor required string \\ null meta required Meta meta carr","l":"en"},{"u":"/docs/api/list-stores#errors","p":"List physical stores and pickup points","t":"Errors","x":"","l":"en"},{"u":"/docs/api/list-stores#example","p":"List physical stores and pickup points","t":"Example","x":"","l":"en"},{"u":"/docs/api/list-categories","p":"Taxonomía de categorías","t":"Taxonomía de categorías","x":"GET https://pricto.dev/v1/categories Flat list of categories; rebuild the tree with parent_id . Includes mappings to Google Product Taxonomy. Créditos MCP --- --- 0 —","l":"es"},{"u":"/docs/api/list-categories#parametros","p":"Taxonomía de categorías","t":"Parámetros","x":"Parámetro En Tipo Descripción --- --- --- --- parent_id query string 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 .","l":"es"},{"u":"/docs/api/list-categories#respuesta","p":"Taxonomía de categorías","t":"Respuesta","x":"200 Categories. Campo Tipo Descripción --- --- --- data requerido Category[] data[].id requerido string data[].label requerido string data[].parent_id requerido string \\ null data[].level requerido integer data[].products_count integer data[].mappings object data[].mappings.google_product_taxonomy integer \\ null data[].mappings.coicop_2018 string \\ null data[].mappings.shopify_category_id string \\ null Shopify Standard Product Taxonomy (MIT). GS1 GPC is not exposed without written permission from GS1. meta requerido Meta meta trae el costo, la fuente para citar, el idioma, la moneda y los avis","l":"es"},{"u":"/docs/api/list-categories#errores","p":"Taxonomía de categorías","t":"Errores","x":"","l":"es"},{"u":"/docs/api/list-categories#ejemplo","p":"Taxonomía de categorías","t":"Ejemplo","x":"","l":"es"},{"u":"/docs/api/list-categories","p":"Category taxonomy","t":"Category taxonomy","x":"GET https://pricto.dev/v1/categories Flat list of categories; rebuild the tree with parent_id . Includes mappings to Google Product Taxonomy. Credits MCP --- --- 0 —","l":"en"},{"u":"/docs/api/list-categories#parameters","p":"Category taxonomy","t":"Parameters","x":"Parameter In Type Description --- --- --- --- parent_id query string 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 .","l":"en"},{"u":"/docs/api/list-categories#response","p":"Category taxonomy","t":"Response","x":"200 Categories. Field Type Description --- --- --- data required Category[] data[].id required string data[].label required string data[].parent_id required string \\ null data[].level required integer data[].products_count integer data[].mappings object data[].mappings.google_product_taxonomy integer \\ null data[].mappings.coicop_2018 string \\ null data[].mappings.shopify_category_id string \\ null Shopify Standard Product Taxonomy (MIT). GS1 GPC is not exposed without written permission from GS1. meta required Meta meta carries the cost, the source line to quote, the language, the currency and","l":"en"},{"u":"/docs/api/list-categories#errors","p":"Category taxonomy","t":"Errors","x":"","l":"en"},{"u":"/docs/api/list-categories#example","p":"Category taxonomy","t":"Example","x":"","l":"en"},{"u":"/docs/api/list-brands","p":"Listar marcas","t":"Listar marcas","x":"GET https://pricto.dev/v1/brands List brands Créditos MCP --- --- 0 —","l":"es"},{"u":"/docs/api/list-brands#parametros","p":"Listar marcas","t":"Parámetros","x":"Parámetro En Tipo Descripción --- --- --- --- q query string limit query integer Default: 50 . cursor query string Opaque cursor from pagination.next_cursor .","l":"es"},{"u":"/docs/api/list-brands#respuesta","p":"Listar marcas","t":"Respuesta","x":"200 Brands. Campo Tipo Descripción --- --- --- data requerido Brand[] data[].id requerido string data[].name requerido string data[].products_count integer pagination requerido Pagination pagination.has_more requerido boolean pagination.next_cursor requerido string \\ null meta requerido Meta meta trae el costo, la fuente para citar, el idioma, la moneda y los avisos (ver Convenciones).","l":"es"},{"u":"/docs/api/list-brands#errores","p":"Listar marcas","t":"Errores","x":"","l":"es"},{"u":"/docs/api/list-brands#ejemplo","p":"Listar marcas","t":"Ejemplo","x":"","l":"es"},{"u":"/docs/api/list-brands","p":"List brands","t":"List brands","x":"GET https://pricto.dev/v1/brands List brands Credits MCP --- --- 0 —","l":"en"},{"u":"/docs/api/list-brands#parameters","p":"List brands","t":"Parameters","x":"Parameter In Type Description --- --- --- --- q query string limit query integer Default: 50 . cursor query string Opaque cursor from pagination.next_cursor .","l":"en"},{"u":"/docs/api/list-brands#response","p":"List brands","t":"Response","x":"200 Brands. Field Type Description --- --- --- data required Brand[] data[].id required string data[].name required string data[].products_count integer pagination required Pagination pagination.has_more required boolean pagination.next_cursor required string \\ null meta required Meta meta carries the cost, the source line to quote, the language, the currency and notices (see Conventions).","l":"en"},{"u":"/docs/api/list-brands#errors","p":"List brands","t":"Errors","x":"","l":"en"},{"u":"/docs/api/list-brands#example","p":"List brands","t":"Example","x":"","l":"en"},{"u":"/docs/api/get-coverage","p":"Qué datos hay disponibles","t":"Qué datos hay disponibles","x":"GET https://pricto.dev/v1/coverage Counts, freshness and history depth by country, retailer and category. Agents should call this when a search returns nothing, to tell the user whether the data does not exist or the query was wrong. Créditos MCP --- --- 0 get_coverage","l":"es"},{"u":"/docs/api/get-coverage#parametros","p":"Qué datos hay disponibles","t":"Parámetros","x":"Parámetro En Tipo Descripción --- --- --- --- country query string ISO 3166-1 alpha-2 country code. Defaults to all covered countries. retailer query string One or more retailer IDs, comma separated (e.g. cl-jumbo,cl-unimarc ). category query string Category ID; includes subcategories (e.g. food.dairy ). 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 .","l":"es"},{"u":"/docs/api/get-coverage#respuesta","p":"Qué datos hay disponibles","t":"Respuesta","x":"200 Coverage. Campo Tipo Descripción --- --- --- data requerido object data.totals requerido object data.totals.countries integer data.totals.retailers integer data.totals.products integer data.totals.offers integer data.totals.observations integer data.totals.history_since string (date) \\ null data.retailers requerido object[] data.retailers[].retailer RetailerRef data.retailers[].retailer.id requerido string data.retailers[].retailer.name requerido string data.retailers[].country string data.retailers[].offers integer data.retailers[].matched_pct number data.retailers[].last_observed string ","l":"es"},{"u":"/docs/api/get-coverage#errores","p":"Qué datos hay disponibles","t":"Errores","x":"","l":"es"},{"u":"/docs/api/get-coverage#ejemplo","p":"Qué datos hay disponibles","t":"Ejemplo","x":"","l":"es"},{"u":"/docs/api/get-coverage","p":"What data is available","t":"What data is available","x":"GET https://pricto.dev/v1/coverage Counts, freshness and history depth by country, retailer and category. Agents should call this when a search returns nothing, to tell the user whether the data does not exist or the query was wrong. Credits MCP --- --- 0 get_coverage","l":"en"},{"u":"/docs/api/get-coverage#parameters","p":"What data is available","t":"Parameters","x":"Parameter In Type Description --- --- --- --- country query string ISO 3166-1 alpha-2 country code. Defaults to all covered countries. retailer query string One or more retailer IDs, comma separated (e.g. cl-jumbo,cl-unimarc ). category query string Category ID; includes subcategories (e.g. food.dairy ). 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 .","l":"en"},{"u":"/docs/api/get-coverage#response","p":"What data is available","t":"Response","x":"200 Coverage. Field Type Description --- --- --- data required object data.totals required object data.totals.countries integer data.totals.retailers integer data.totals.products integer data.totals.offers integer data.totals.observations integer data.totals.history_since string (date) \\ null data.retailers required object[] data.retailers[].retailer RetailerRef data.retailers[].retailer.id required string data.retailers[].retailer.name required string data.retailers[].country string data.retailers[].offers integer data.retailers[].matched_pct number data.retailers[].last_observed string (date","l":"en"},{"u":"/docs/api/get-coverage#errors","p":"What data is available","t":"Errors","x":"","l":"en"},{"u":"/docs/api/get-coverage#example","p":"What data is available","t":"Example","x":"","l":"en"},{"u":"/docs/api/list-countries","p":"Países, monedas e idiomas","t":"Países, monedas e idiomas","x":"GET https://pricto.dev/v1/countries Countries, currencies and languages Créditos MCP --- --- 0 —","l":"es"},{"u":"/docs/api/list-countries#parametros","p":"Países, monedas e idiomas","t":"Parámetros","x":"Parámetro En Tipo Descripción --- --- --- --- 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 .","l":"es"},{"u":"/docs/api/list-countries#respuesta","p":"Países, monedas e idiomas","t":"Respuesta","x":"200 Countries. Campo Tipo Descripción --- --- --- data requerido Country[] data[].code requerido string data[].name requerido string data[].currency requerido string data[].currency_minor_unit integer data[].languages requerido string[] data[].timezones string[] data[].fx_source string \\ null Official source used for local currency to USD. data[].admin_area_scheme string \\ null data[].standard_vat_rate number \\ null Informative only. data[].status requerido string Valores / values: live , beta , planned . meta requerido Meta meta trae el costo, la fuente para citar, el idioma, la moneda y los ","l":"es"},{"u":"/docs/api/list-countries#errores","p":"Países, monedas e idiomas","t":"Errores","x":"","l":"es"},{"u":"/docs/api/list-countries#ejemplo","p":"Países, monedas e idiomas","t":"Ejemplo","x":"","l":"es"},{"u":"/docs/api/list-countries","p":"Countries, currencies and languages","t":"Countries, currencies and languages","x":"GET https://pricto.dev/v1/countries Countries, currencies and languages Credits MCP --- --- 0 —","l":"en"},{"u":"/docs/api/list-countries#parameters","p":"Countries, currencies and languages","t":"Parameters","x":"Parameter In Type Description --- --- --- --- 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 .","l":"en"},{"u":"/docs/api/list-countries#response","p":"Countries, currencies and languages","t":"Response","x":"200 Countries. Field Type Description --- --- --- data required Country[] data[].code required string data[].name required string data[].currency required string data[].currency_minor_unit integer data[].languages required string[] data[].timezones string[] data[].fx_source string \\ null Official source used for local currency to USD. data[].admin_area_scheme string \\ null data[].standard_vat_rate number \\ null Informative only. data[].status required string Valores / values: live , beta , planned . meta required Meta meta carries the cost, the source line to quote, the language, the currency ","l":"en"},{"u":"/docs/api/list-countries#errors","p":"Countries, currencies and languages","t":"Errors","x":"","l":"en"},{"u":"/docs/api/list-countries#example","p":"Countries, currencies and languages","t":"Example","x":"","l":"en"},{"u":"/docs/api/get-fx-rate","p":"Tipo de cambio usado en las conversiones","t":"Tipo de cambio usado en las conversiones","x":"GET https://pricto.dev/v1/fx Exchange rate used for conversions Créditos MCP --- --- 0 —","l":"es"},{"u":"/docs/api/get-fx-rate#parametros","p":"Tipo de cambio usado en las conversiones","t":"Parámetros","x":"Parámetro En Tipo Descripción --- --- --- --- base requerido query string quote requerido query string date query string (date)","l":"es"},{"u":"/docs/api/get-fx-rate#respuesta","p":"Tipo de cambio usado en las conversiones","t":"Respuesta","x":"200 The rate. Campo Tipo Descripción --- --- --- data requerido FxRate data.base requerido string data.quote requerido string data.rate requerido number data.date requerido string (date) Date the rate applies to. data.published_date string (date) data.kind string Valores / values: official , mep . data.method string Valores / values: direct , cross . data.source requerido string meta requerido Meta meta trae el costo, la fuente para citar, el idioma, la moneda y los avisos (ver Convenciones).","l":"es"},{"u":"/docs/api/get-fx-rate#errores","p":"Tipo de cambio usado en las conversiones","t":"Errores","x":"- not_found","l":"es"},{"u":"/docs/api/get-fx-rate#ejemplo","p":"Tipo de cambio usado en las conversiones","t":"Ejemplo","x":"","l":"es"},{"u":"/docs/api/get-fx-rate","p":"Exchange rate used for conversions","t":"Exchange rate used for conversions","x":"GET https://pricto.dev/v1/fx Exchange rate used for conversions Credits MCP --- --- 0 —","l":"en"},{"u":"/docs/api/get-fx-rate#parameters","p":"Exchange rate used for conversions","t":"Parameters","x":"Parameter In Type Description --- --- --- --- base required query string quote required query string date query string (date)","l":"en"},{"u":"/docs/api/get-fx-rate#response","p":"Exchange rate used for conversions","t":"Response","x":"200 The rate. Field Type Description --- --- --- data required FxRate data.base required string data.quote required string data.rate required number data.date required string (date) Date the rate applies to. data.published_date string (date) data.kind string Valores / values: official , mep . data.method string Valores / values: direct , cross . data.source required string meta required Meta meta carries the cost, the source line to quote, the language, the currency and notices (see Conventions).","l":"en"},{"u":"/docs/api/get-fx-rate#errors","p":"Exchange rate used for conversions","t":"Errors","x":"- not_found","l":"en"},{"u":"/docs/api/get-fx-rate#example","p":"Exchange rate used for conversions","t":"Example","x":"","l":"en"},{"u":"/docs/api/get-status","p":"Estado del servicio y frescura de los datos","t":"Estado del servicio y frescura de los datos","x":"GET https://pricto.dev/v1/status Service status and data freshness Créditos MCP --- --- 0 —","l":"es"},{"u":"/docs/api/get-status#parametros","p":"Estado del servicio y frescura de los datos","t":"Parámetros","x":"Sin parámetros.","l":"es"},{"u":"/docs/api/get-status#respuesta","p":"Estado del servicio y frescura de los datos","t":"Respuesta","x":"200 Status. Campo Tipo Descripción --- --- --- status requerido string Valores / values: ok , degraded , down . version requerido string data_as_of requerido string (date-time) meta trae el costo, la fuente para citar, el idioma, la moneda y los avisos (ver Convenciones).","l":"es"},{"u":"/docs/api/get-status#errores","p":"Estado del servicio y frescura de los datos","t":"Errores","x":"","l":"es"},{"u":"/docs/api/get-status#ejemplo","p":"Estado del servicio y frescura de los datos","t":"Ejemplo","x":"","l":"es"},{"u":"/docs/api/get-status","p":"Service status and data freshness","t":"Service status and data freshness","x":"GET https://pricto.dev/v1/status Service status and data freshness Credits MCP --- --- 0 —","l":"en"},{"u":"/docs/api/get-status#parameters","p":"Service status and data freshness","t":"Parameters","x":"No parameters.","l":"en"},{"u":"/docs/api/get-status#response","p":"Service status and data freshness","t":"Response","x":"200 Status. Field Type Description --- --- --- status required string Valores / values: ok , degraded , down . version required string data_as_of required string (date-time) meta carries the cost, the source line to quote, the language, the currency and notices (see Conventions).","l":"en"},{"u":"/docs/api/get-status#errors","p":"Service status and data freshness","t":"Errors","x":"","l":"en"},{"u":"/docs/api/get-status#example","p":"Service status and data freshness","t":"Example","x":"","l":"en"},{"u":"/docs/api/get-public-coverage","p":"Cobertura agregada, sin key y sin precios","t":"Cobertura agregada, sin key y sin precios","x":"GET https://pricto.dev/v1/public/coverage Stores, offers and last capture per store, for the website and status page. No prices, products or URLs. synthetic is true when the service runs on sample data only. Créditos MCP --- --- 0 —","l":"es"},{"u":"/docs/api/get-public-coverage#parametros","p":"Cobertura agregada, sin key y sin precios","t":"Parámetros","x":"Sin parámetros.","l":"es"},{"u":"/docs/api/get-public-coverage#respuesta","p":"Cobertura agregada, sin key y sin precios","t":"Respuesta","x":"200 Coverage. Campo Tipo Descripción --- --- --- synthetic requerido boolean data_as_of requerido string (date-time) totals requerido object totals.countries requerido integer totals.retailers requerido integer totals.products requerido integer totals.offers requerido integer totals.observations requerido integer Approximate. totals.history_since requerido string (date) \\ null retailers requerido object[] retailers[].id requerido string retailers[].name requerido string retailers[].country requerido string retailers[].offers requerido integer retailers[].last_observed requerido string (date-ti","l":"es"},{"u":"/docs/api/get-public-coverage#errores","p":"Cobertura agregada, sin key y sin precios","t":"Errores","x":"","l":"es"},{"u":"/docs/api/get-public-coverage#ejemplo","p":"Cobertura agregada, sin key y sin precios","t":"Ejemplo","x":"","l":"es"},{"u":"/docs/api/get-public-coverage","p":"Aggregated coverage without prices (no key)","t":"Aggregated coverage without prices (no key)","x":"GET https://pricto.dev/v1/public/coverage Stores, offers and last capture per store, for the website and status page. No prices, products or URLs. synthetic is true when the service runs on sample data only. Credits MCP --- --- 0 —","l":"en"},{"u":"/docs/api/get-public-coverage#parameters","p":"Aggregated coverage without prices (no key)","t":"Parameters","x":"No parameters.","l":"en"},{"u":"/docs/api/get-public-coverage#response","p":"Aggregated coverage without prices (no key)","t":"Response","x":"200 Coverage. Field Type Description --- --- --- synthetic required boolean data_as_of required string (date-time) totals required object totals.countries required integer totals.retailers required integer totals.products required integer totals.offers required integer totals.observations required integer Approximate. totals.history_since required string (date) \\ null retailers required object[] retailers[].id required string retailers[].name required string retailers[].country required string retailers[].offers required integer retailers[].last_observed required string (date-time) \\ null reta","l":"en"},{"u":"/docs/api/get-public-coverage#errors","p":"Aggregated coverage without prices (no key)","t":"Errors","x":"","l":"en"},{"u":"/docs/api/get-public-coverage#example","p":"Aggregated coverage without prices (no key)","t":"Example","x":"","l":"en"},{"u":"/docs/api/get-account","p":"Plan y saldo de la key","t":"Plan y saldo de la key","x":"GET https://pricto.dev/v1/account Plan and credit balance of the calling key Créditos MCP --- --- 0 —","l":"es"},{"u":"/docs/api/get-account#parametros","p":"Plan y saldo de la key","t":"Parámetros","x":"Sin parámetros.","l":"es"},{"u":"/docs/api/get-account#respuesta","p":"Plan y saldo de la key","t":"Respuesta","x":"200 Account. Campo Tipo Descripción --- --- --- data requerido Account data.id requerido string data.name string data.plan requerido string data.environment string Valores / values: live , test . data.credits requerido object data.credits.balance requerido number data.credits.included_monthly number \\ null data.credits.resets_at string (date-time) \\ null data.limits object data.limits.requests_per_second integer \\ null data.limits.requests_per_minute integer \\ null data.limits.requests_per_day integer \\ null data.limits.history_days integer \\ null meta requerido Meta meta trae el costo, la fue","l":"es"},{"u":"/docs/api/get-account#errores","p":"Plan y saldo de la key","t":"Errores","x":"- unauthorized","l":"es"},{"u":"/docs/api/get-account#ejemplo","p":"Plan y saldo de la key","t":"Ejemplo","x":"","l":"es"},{"u":"/docs/api/get-account","p":"Plan and credit balance of the calling key","t":"Plan and credit balance of the calling key","x":"GET https://pricto.dev/v1/account Plan and credit balance of the calling key Credits MCP --- --- 0 —","l":"en"},{"u":"/docs/api/get-account#parameters","p":"Plan and credit balance of the calling key","t":"Parameters","x":"No parameters.","l":"en"},{"u":"/docs/api/get-account#response","p":"Plan and credit balance of the calling key","t":"Response","x":"200 Account. Field Type Description --- --- --- data required Account data.id required string data.name string data.plan required string data.environment string Valores / values: live , test . data.credits required object data.credits.balance required number data.credits.included_monthly number \\ null data.credits.resets_at string (date-time) \\ null data.limits object data.limits.requests_per_second integer \\ null data.limits.requests_per_minute integer \\ null data.limits.requests_per_day integer \\ null data.limits.history_days integer \\ null meta required Meta meta carries the cost, the sourc","l":"en"},{"u":"/docs/api/get-account#errors","p":"Plan and credit balance of the calling key","t":"Errors","x":"- unauthorized","l":"en"},{"u":"/docs/api/get-account#example","p":"Plan and credit balance of the calling key","t":"Example","x":"","l":"en"},{"u":"/docs/api/get-usage","p":"Créditos consumidos","t":"Créditos consumidos","x":"GET https://pricto.dev/v1/usage Credits consumed, grouped by day, operation, channel or key Créditos MCP --- --- 0 —","l":"es"},{"u":"/docs/api/get-usage#parametros","p":"Créditos consumidos","t":"Parámetros","x":"Parámetro En Tipo Descripción --- --- --- --- from query string (date) Start date, inclusive. Defaults to 90 days before to . to query string (date) End date, inclusive. Defaults to today. group_by query string Valores / values: day , operation , channel , key . Default: day .","l":"es"},{"u":"/docs/api/get-usage#respuesta","p":"Créditos consumidos","t":"Respuesta","x":"200 Usage rows. Campo Tipo Descripción --- --- --- data requerido UsageRow[] data[].key requerido string Group value (a date, an operation, a channel or a key ID). data[].credits requerido number data[].requests requerido integer meta requerido Meta meta trae el costo, la fuente para citar, el idioma, la moneda y los avisos (ver Convenciones).","l":"es"},{"u":"/docs/api/get-usage#errores","p":"Créditos consumidos","t":"Errores","x":"- unauthorized","l":"es"},{"u":"/docs/api/get-usage#ejemplo","p":"Créditos consumidos","t":"Ejemplo","x":"","l":"es"},{"u":"/docs/api/get-usage","p":"Credits consumed, grouped by day, operation, channel or key","t":"Credits consumed, grouped by day, operation, channel or key","x":"GET https://pricto.dev/v1/usage Credits consumed, grouped by day, operation, channel or key Credits MCP --- --- 0 —","l":"en"},{"u":"/docs/api/get-usage#parameters","p":"Credits consumed, grouped by day, operation, channel or key","t":"Parameters","x":"Parameter In Type Description --- --- --- --- from query string (date) Start date, inclusive. Defaults to 90 days before to . to query string (date) End date, inclusive. Defaults to today. group_by query string Valores / values: day , operation , channel , key . Default: day .","l":"en"},{"u":"/docs/api/get-usage#response","p":"Credits consumed, grouped by day, operation, channel or key","t":"Response","x":"200 Usage rows. Field Type Description --- --- --- data required UsageRow[] data[].key required string Group value (a date, an operation, a channel or a key ID). data[].credits required number data[].requests required integer meta required Meta meta carries the cost, the source line to quote, the language, the currency and notices (see Conventions).","l":"en"},{"u":"/docs/api/get-usage#errors","p":"Credits consumed, grouped by day, operation, channel or key","t":"Errors","x":"- unauthorized","l":"en"},{"u":"/docs/api/get-usage#example","p":"Credits consumed, grouped by day, operation, channel or key","t":"Example","x":"","l":"en"},{"u":"/docs/api/create-data-request","p":"Pedir cobertura o datos que no existen","t":"Pedir cobertura o datos que no existen","x":"POST https://pricto.dev/v1/data-requests A retailer, country, category, frequency or delivery format that is not covered. An agent reviews the request, estimates feasibility and price, and replies by email. Agents may call this on behalf of the user only after the user agrees. Créditos MCP --- --- 0 request_data","l":"es"},{"u":"/docs/api/create-data-request#parametros","p":"Pedir cobertura o datos que no existen","t":"Parámetros","x":"Sin parámetros.","l":"es"},{"u":"/docs/api/create-data-request#cuerpo","p":"Pedir cobertura o datos que no existen","t":"Cuerpo","x":"Campo Tipo Descripción --- --- --- kind requerido string Valores / values: retailer , country , category , frequency , delivery , other . description requerido string retailer_url string (uri) country string contact_email string (email)","l":"es"},{"u":"/docs/api/create-data-request#respuesta","p":"Pedir cobertura o datos que no existen","t":"Respuesta","x":"201 Request registered. Campo Tipo Descripción --- --- --- data requerido DataRequest data.kind requerido string Valores / values: retailer , country , category , frequency , delivery , other . data.description requerido string data.retailer_url string (uri) data.country string data.contact_email string (email) data.id requerido string data.status requerido string Valores / values: received , reviewing , quoted , accepted , declined , done . data.created_at requerido string (date-time) meta requerido Meta meta trae el costo, la fuente para citar, el idioma, la moneda y los avisos (ver Convenci","l":"es"},{"u":"/docs/api/create-data-request#errores","p":"Pedir cobertura o datos que no existen","t":"Errores","x":"- invalid_parameter - unauthorized","l":"es"},{"u":"/docs/api/create-data-request#ejemplo","p":"Pedir cobertura o datos que no existen","t":"Ejemplo","x":"","l":"es"},{"u":"/docs/api/create-data-request","p":"Ask for coverage or data that is not available","t":"Ask for coverage or data that is not available","x":"POST https://pricto.dev/v1/data-requests A retailer, country, category, frequency or delivery format that is not covered. An agent reviews the request, estimates feasibility and price, and replies by email. Agents may call this on behalf of the user only after the user agrees. Credits MCP --- --- 0 request_data","l":"en"},{"u":"/docs/api/create-data-request#parameters","p":"Ask for coverage or data that is not available","t":"Parameters","x":"No parameters.","l":"en"},{"u":"/docs/api/create-data-request#body","p":"Ask for coverage or data that is not available","t":"Body","x":"Field Type Description --- --- --- kind required string Valores / values: retailer , country , category , frequency , delivery , other . description required string retailer_url string (uri) country string contact_email string (email)","l":"en"},{"u":"/docs/api/create-data-request#response","p":"Ask for coverage or data that is not available","t":"Response","x":"201 Request registered. Field Type Description --- --- --- data required DataRequest data.kind required string Valores / values: retailer , country , category , frequency , delivery , other . data.description required string data.retailer_url string (uri) data.country string data.contact_email string (email) data.id required string data.status required string Valores / values: received , reviewing , quoted , accepted , declined , done . data.created_at required string (date-time) meta required Meta meta carries the cost, the source line to quote, the language, the currency and notices (see Con","l":"en"},{"u":"/docs/api/create-data-request#errors","p":"Ask for coverage or data that is not available","t":"Errors","x":"- invalid_parameter - unauthorized","l":"en"},{"u":"/docs/api/create-data-request#example","p":"Ask for coverage or data that is not available","t":"Example","x":"","l":"en"},{"u":"/docs/api/create-export","p":"Crear una exportación masiva","t":"Crear una exportación masiva","x":"POST https://pricto.dev/v1/exports Planificado. Todavía no existe: hoy responde 501 not_implemented . Exports offers, products or observations matching the filters as CSV, JSONL or Parquet. Returns a job; when status is succeeded , files contains signed download URLs valid for 24 hours. Planned; returns 501 for now. Créditos MCP --- --- 1 per 10 rows —","l":"es"},{"u":"/docs/api/create-export#parametros","p":"Crear una exportación masiva","t":"Parámetros","x":"Parámetro En Tipo Descripción --- --- --- --- Idempotency-Key header string","l":"es"},{"u":"/docs/api/create-export#cuerpo","p":"Crear una exportación masiva","t":"Cuerpo","x":"Campo Tipo Descripción --- --- --- dataset requerido string Valores / values: offers , products , observations . format requerido string Valores / values: csv , jsonl , parquet . filters object filters.country string filters.retailer string[] filters.category string filters.from string (date) filters.to string (date) currency string lang string Valores / values: es , en .","l":"es"},{"u":"/docs/api/create-export#respuesta","p":"Crear una exportación masiva","t":"Respuesta","x":"202 Export job accepted. Campo Tipo Descripción --- --- --- data Job data.id requerido string data.status requerido string Valores / values: queued , running , succeeded , failed . data.created_at string (date-time) data.finished_at string (date-time) \\ null data.rows integer \\ null data.files object[] data.files[].url string (uri) data.files[].bytes integer data.files[].expires_at string (date-time) data.error object meta Meta meta trae el costo, la fuente para citar, el idioma, la moneda y los avisos (ver Convenciones).","l":"es"},{"u":"/docs/api/create-export#errores","p":"Crear una exportación masiva","t":"Errores","x":"- not_implemented","l":"es"},{"u":"/docs/api/create-export#ejemplo","p":"Crear una exportación masiva","t":"Ejemplo","x":"","l":"es"},{"u":"/docs/api/create-export","p":"Create a bulk export","t":"Create a bulk export","x":"POST https://pricto.dev/v1/exports Planned. Not available yet: today it answers 501 not_implemented . Exports offers, products or observations matching the filters as CSV, JSONL or Parquet. Returns a job; when status is succeeded , files contains signed download URLs valid for 24 hours. Planned; returns 501 for now. Credits MCP --- --- 1 per 10 rows —","l":"en"},{"u":"/docs/api/create-export#parameters","p":"Create a bulk export","t":"Parameters","x":"Parameter In Type Description --- --- --- --- Idempotency-Key header string","l":"en"},{"u":"/docs/api/create-export#body","p":"Create a bulk export","t":"Body","x":"Field Type Description --- --- --- dataset required string Valores / values: offers , products , observations . format required string Valores / values: csv , jsonl , parquet . filters object filters.country string filters.retailer string[] filters.category string filters.from string (date) filters.to string (date) currency string lang string Valores / values: es , en .","l":"en"},{"u":"/docs/api/create-export#response","p":"Create a bulk export","t":"Response","x":"202 Export job accepted. Field Type Description --- --- --- data Job data.id required string data.status required string Valores / values: queued , running , succeeded , failed . data.created_at string (date-time) data.finished_at string (date-time) \\ null data.rows integer \\ null data.files object[] data.files[].url string (uri) data.files[].bytes integer data.files[].expires_at string (date-time) data.error object meta Meta meta carries the cost, the source line to quote, the language, the currency and notices (see Conventions).","l":"en"},{"u":"/docs/api/create-export#errors","p":"Create a bulk export","t":"Errors","x":"- not_implemented","l":"en"},{"u":"/docs/api/create-export#example","p":"Create a bulk export","t":"Example","x":"","l":"en"},{"u":"/docs/api/get-export","p":"Obtener una exportación","t":"Obtener una exportación","x":"GET https://pricto.dev/v1/exports/{export_id} Planificado. Todavía no existe: hoy responde 501 not_implemented . Get an export job Créditos MCP --- --- 0 —","l":"es"},{"u":"/docs/api/get-export#parametros","p":"Obtener una exportación","t":"Parámetros","x":"Parámetro En Tipo Descripción --- --- --- --- export_id requerido path string","l":"es"},{"u":"/docs/api/get-export#respuesta","p":"Obtener una exportación","t":"Respuesta","x":"200 Export job. Campo Tipo Descripción --- --- --- data Job data.id requerido string data.status requerido string Valores / values: queued , running , succeeded , failed . data.created_at string (date-time) data.finished_at string (date-time) \\ null data.rows integer \\ null data.files object[] data.files[].url string (uri) data.files[].bytes integer data.files[].expires_at string (date-time) data.error object meta Meta meta trae el costo, la fuente para citar, el idioma, la moneda y los avisos (ver Convenciones).","l":"es"},{"u":"/docs/api/get-export#errores","p":"Obtener una exportación","t":"Errores","x":"- not_implemented","l":"es"},{"u":"/docs/api/get-export#ejemplo","p":"Obtener una exportación","t":"Ejemplo","x":"","l":"es"},{"u":"/docs/api/get-export","p":"Get an export job","t":"Get an export job","x":"GET https://pricto.dev/v1/exports/{export_id} Planned. Not available yet: today it answers 501 not_implemented . Get an export job Credits MCP --- --- 0 —","l":"en"},{"u":"/docs/api/get-export#parameters","p":"Get an export job","t":"Parameters","x":"Parameter In Type Description --- --- --- --- export_id required path string","l":"en"},{"u":"/docs/api/get-export#response","p":"Get an export job","t":"Response","x":"200 Export job. Field Type Description --- --- --- data Job data.id required string data.status required string Valores / values: queued , running , succeeded , failed . data.created_at string (date-time) data.finished_at string (date-time) \\ null data.rows integer \\ null data.files object[] data.files[].url string (uri) data.files[].bytes integer data.files[].expires_at string (date-time) data.error object meta Meta meta carries the cost, the source line to quote, the language, the currency and notices (see Conventions).","l":"en"},{"u":"/docs/api/get-export#errors","p":"Get an export job","t":"Errors","x":"- not_implemented","l":"en"},{"u":"/docs/api/get-export#example","p":"Get an export job","t":"Example","x":"","l":"en"},{"u":"/docs/changelog","p":"Changelog","t":"Changelog","x":"Cambios de la API y del MCP, del más nuevo al más antiguo. Todos son aditivos dentro de /v1 (ver versionado). Versión del contrato: 1.0.0-draft.1 . También por RSS.","l":"es"},{"u":"/docs/changelog#2026-10-24","p":"Changelog","t":"2026-10-24","x":"Sandbox pública: key sk_test_sandbox y servidor MCP sin login en /mcp/sandbox , con datos de ejemplo. Docs nuevas con prueba en el navegador, Markdown por página, OpenAPI en JSON y colección de Postman.","l":"es"},{"u":"/docs/changelog#2026-10-24-2","p":"Changelog","t":"2026-10-24","x":"Plan Free de 100 créditos al mes. Si pides más historial del que incluye tu plan, la API entrega lo que cabe y lo marca ( truncated_reason: plan_history_window ). Cada respuesta MCP dice su costo y el saldo. El 402 del plan Free trae un mensaje para la persona, el saldo y cuánto cuesta seguir. Límites por segundo, minuto y día por key.","l":"es"},{"u":"/docs/changelog#2026-10-24-3","p":"Changelog","t":"2026-10-24","x":"Marcas de calidad en cada precio ( quality_flags : descuento sobre 85 %, precio redondo bajo) y retailer_product_id en la oferta.","l":"es"},{"u":"/docs/changelog#2026-10-24-4","p":"Changelog","t":"2026-10-24","x":"capture_method en cada precio: cómo se obtuvo (página pública, API pública, feed de la tienda o datos abiertos). La atribución de una oferta trae la procedencia completa.","l":"es"},{"u":"/docs/changelog#2026-10-24-5","p":"Changelog","t":"2026-10-24","x":"Precios condicionales ( conditional_prices ), packs ( match.kind: pack y pack_ratio ), vendedor ( seller ), estado de calidad y correcciones, relaciones entre productos, y agrupación por defecto de ofertas idénticas con confianza de 0,85 o más ( min_confidence , match_kinds ).","l":"es"},{"u":"/docs/changelog#2026-10-23","p":"Changelog","t":"2026-10-23","x":"meta.attribution en la API y el MCP: una línea de fuente para citar tal cual.","l":"es"},{"u":"/docs/changelog#2026-10-23-2","p":"Changelog","t":"2026-10-23","x":"Primera versión del contrato: productos, precios, historial, comparación, ofertas, cobertura, cuenta y uso; MCP con siete herramientas; créditos por dato entregado.","l":"es"},{"u":"/docs/changelog","p":"Changelog","t":"Changelog","x":"Changes to the API and the MCP server, newest first. All are additive within /v1 (see versioning). Contract version: 1.0.0-draft.1 . Also via RSS.","l":"en"},{"u":"/docs/changelog#2026-10-24","p":"Changelog","t":"2026-10-24","x":"Public sandbox: key sk_test_sandbox and a no-login MCP server at /mcp/sandbox , with sample data. New docs with in-browser testing, Markdown per page, OpenAPI as JSON and a Postman collection.","l":"en"},{"u":"/docs/changelog#2026-10-24-2","p":"Changelog","t":"2026-10-24","x":"Free plan with 100 credits a month. If you ask for more history than your plan includes, the API delivers what fits and marks it ( truncated_reason: plan_history_window ). Every MCP response states its cost and the balance. The Free plan's 402 carries a message for the person, the balance and what it costs to continue. Per-second, per-minute and per-day limits per key.","l":"en"},{"u":"/docs/changelog#2026-10-24-3","p":"Changelog","t":"2026-10-24","x":"Quality flags on every price ( quality_flags : discount above 85%, low round price) and retailer_product_id on the offer.","l":"en"},{"u":"/docs/changelog#2026-10-24-4","p":"Changelog","t":"2026-10-24","x":"capture_method on every price: how it was obtained (public page, public API, retailer feed or open data). An offer's attribution carries the full provenance.","l":"en"},{"u":"/docs/changelog#2026-10-24-5","p":"Changelog","t":"2026-10-24","x":"Conditional prices ( conditional_prices ), packs ( match.kind: pack and pack_ratio ), seller ( seller ), quality status and corrections, product relations, and default grouping of identical offers with confidence of 0.85 or more ( min_confidence , match_kinds ).","l":"en"},{"u":"/docs/changelog#2026-10-23","p":"Changelog","t":"2026-10-23","x":"meta.attribution in the API and MCP: a source line to quote as is.","l":"en"},{"u":"/docs/changelog#2026-10-23-2","p":"Changelog","t":"2026-10-23","x":"First version of the contract: products, prices, history, comparison, offers, coverage, account and usage; MCP with seven tools; credits per data point delivered.","l":"en"}]