API
Barato, sí. También en JSON
barato.si es un archivo JSON que se regenera cada día, con una web encima. La API es gratis, no pide clave y son archivos estáticos: guárdalos en caché y con una consulta al día basta.
Endpoints
| Ruta | Qué devuelve |
|---|---|
https://barato.si/api/deals.json | Las ofertas de hoy, en orden: las 30 primeras repartidas entre fuentes, el resto por puntuación. |
https://barato.si/api/deals/YYYY-MM-DD.json | Un día concreto. Se guardan los últimos 30 días (UTC). |
https://barato.si/api/index.json | { latest, days }: la fecha más reciente y todas las disponibles, de nueva a vieja. |
https://barato.si/feed.xml | RSS 2.0 con las 30 primeras, con el contenido original de la fuente. |
https://barato.si/llms.txt | Descripción en texto plano para agentes y modelos. |
Actualización: diaria, sobre las 11:00 UTC (GitHub puede retrasarla un rato). El campo generatedAt dice cuándo se generó cada archivo.
Ejemplos
curl -s https://barato.si/api/deals.json \
| jq '.deals[] | select(.flag != "normal") | {title, price, currency, url}'const res = await fetch('https://barato.si/api/deals.json')
const { generatedAt, deals } = await res.json()
const errores = deals.filter(d => d.flag === 'error-probable')
console.log(generatedAt, errores.length, deals[0]?.title)Esquema
Cada archivo es un DealsFile: { date, generatedAt, count, sources[], deals[] }. sources dice qué fuentes respondieron y cuáles no, para que una fuente caída no pase desapercibida. Cada elemento de deals es un Deal:
| Campo | Tipo | Nota |
|---|---|---|
id | string | Estable entre días para la misma oferta. |
title | string | Título original de la fuente, sin traducir. |
url | string | Enlace original a la oferta, tal cual. |
store | string | Tienda: "Amazon", "Macy's"… |
source / sourceUrl | string | De dónde salió y enlace a esa fuente. |
currency | string | ISO 4217. |
price | number | Precio de oferta, en unidades de la moneda. 0 = gratis. |
listPrice | number | null | Precio de referencia, si la fuente lo da. |
discountPct | number | null | 0–100. null sin precio de referencia. |
publishedAt / foundAt | ISO 8601 | Publicación en la fuente / primera vez vista. |
score | number | 0–100. Puntuación de barato.si. |
flag | "error-probable" | "chollo" | "normal" | Etiqueta de barato.si. En la web: «Posible error de precio», «Baratísimo» o nada. |
reasons | string[] | Por qué, en español. Análisis propio. |
image / category | string | null | Si la fuente los da. |
syndication | object? | Contenido original de la fuente, sin tocar, para atribución. |
Atribución y uso razonable
Cita a barato.si y a la fuente original de cada oferta (el campo source). Conserva los enlaces tal cual y la atribución. No reescribas los títulos de la fuente ni los presentes como tuyos.
La puntuación, la etiqueta y las razones son análisis independiente de barato.si, no texto de la fuente. «Posible error de precio» es una señal automática, no una confirmación de que la tienda se equivocó.
No revendas el contenido de las fuentes ni lo uses para entrenar modelos sin permiso de sus titulares. Algunas fuentes ponen sus propias condiciones: el contenido de DealNews, por ejemplo, no puede usarse en extensiones públicas de navegador.
Las ofertas caducan y pueden tener condiciones: cupones, compra mínima para el envío, membresía. Compruébalo en la fuente antes de comprar.