TurbodatoDocs
Referencia

Ofertas debajo del PVP

Quién vende por debajo de tu precio sugerido (PVP) ese día. Los contadores del día y sólo las infracciones, de la más grave a la menos grave.

Contesta "¿hay algo mal hoy?" sin bajar la matriz entera. Devuelve los contadores del día y las ofertas que rompen el PVP, ordenadas de la peor a la menos grave y paginadas.

Una oferta rompe cuando su precio unitario está por debajo de la referencia, aunque sea por un peso. La API no aplica el margen de ruptura que cada persona puede configurar en la pantalla de Control de PVP.

Cada infracción dice contra qué se comparó en referenceSource:

  • sheet: el PVP cargado para ese producto.
  • ownSite: el producto no tiene PVP cargado, así que se midió contra tu propio precio de ese día. No es un reclamo a nadie por el precio de la marca; filtralo si sólo te interesa el PVP.

page y limit paginan las infracciones, no los productos, y nunca cambian los contadores. El default de limit es 200 y el máximo 1000, distinto del resto de la API.

Este endpoint necesita Control de PVP activo en el tablero. Si no lo está, responde 403: un 200 con cero infracciones diría que está todo bien cuando no se está midiendo nada.

GET
/price-control

Autenticación

apiKey
headerX-API-Key<token>

Tu API key, que empieza con td_live_. Se crea en Configuración → API y se muestra completa una sola vez.

Parámetros de query

clientId?string

El tablero, con el id que devuelve /clients. Opcional si tu key alcanza un solo tablero; obligatorio a partir del segundo.

Formatuuid
page?integer

Página de infracciones, base 1. Cuántas hay lo dice pagination.totalPages.

Range1 <= value <= 100000
Default1
limit?integer

Infracciones por página. Fuera de rango se recorta al límite más cercano. No afecta a los contadores.

Range1 <= value <= 1000
Default200
brand?string

Marca, coincidencia exacta. Varias con barra vertical, Samsung|LG. Los valores válidos salen de /filters.

category?string

Categoría, coincidencia exacta. Varias con barra vertical. Los valores válidos salen de /filters.

site?string

Nombre del sitio, coincidencia parcial y sin distinguir mayúsculas: site=mercado encuentra Mercado Libre. Acota las ofertas, no los productos.

seller?string

Vendedor, por su nombre normalizado (el que devuelve /filters). Coincidencia exacta; varios con barra vertical. Deja sólo los productos que ese vendedor ofrece ese día, y sólo sus ofertas.

text?string

Búsqueda libre en nombre, marca, EAN y SKU. Todos los términos tienen que aparecer; los acentos y las mayúsculas no cuentan.

semaphore?string

Color del semáforo del producto. Cualquier otro valor se ignora.

Value in"red""yellow""green"
favorites?boolean

true deja sólo los productos marcados con estrella por alguien del equipo.

Defaultfalse
date?string

Día a consultar, en YYYY-MM-DD. Sin él, el día del último relevamiento. Los días disponibles salen de /dates.

Formatdate

Cuerpo de la respuesta

Los contadores del día y una página de infracciones.

application/json
  1. response
date*|

El día que se midió.

Formatdate
productsBreaching*integer

Productos con al menos una oferta por debajo de su referencia.

offersBreaching*integer

Ofertas por debajo. Es el total de infracciones, antes de paginar.

offersCompared*integer

Ofertas comparadas, o sea las de productos que ese día tienen alguna referencia.

productsWithoutPrice*integer

Productos sin PVP y sin precio propio ese día. No se comparan ni cuentan como cumplidos.

productsComparedToOwnPrice*integer

De los comparados, cuántos se midieron contra tu propio precio y no contra el PVP.

breaches*array<>

Una página de infracciones, de la más grave a la menos grave.

pagination*
Ejemplo de request
curl "https://api.turbodato.com/v1/price-control" \  -H "X-API-Key: $TURBODATO_API_KEY"
Ejemplo de respuesta
{  "date": "2026-10-16",  "productsBreaching": 12,  "offersBreaching": 23,  "offersCompared": 340,  "productsWithoutPrice": 4,  "productsComparedToOwnPrice": 7,  "breaches": [    {      "anchorId": "5a1b2c3d-4e5f-4a6b-8c7d-9e0f1a2b3c4d",      "identifier": "UN55DU7000GCZB",      "product": "Smart TV Samsung 55\" Crystal UHD 4K DU7000",      "brand": "Samsung",      "suggestedPrice": 899999,      "referenceSource": "sheet",      "site": "Mercado Libre",      "seller": "Electro del Sur",      "price": 849999,      "deltaPercent": -5.56,      "url": "https://articulo.mercadolibre.com.ar/MLA-1428765432"    },    {      "anchorId": "7c8d9e0f-1a2b-4c3d-8e4f-5a6b7c8d9e0f",      "identifier": "7791234000457",      "product": "Pava eléctrica Atma 1,7 L acero",      "brand": "Atma",      "suggestedPrice": 54999,      "referenceSource": "ownSite",      "site": "Frávega",      "seller": null,      "price": 52499,      "deltaPercent": -4.55,      "url": "https://www.fravega.com/p/pava-electrica-atma-1-7-l-acero"    }  ],  "pagination": {    "page": 1,    "limit": 200,    "total": 23,    "totalPages": 1  }}