# Personnn Search > Buscador independiente con índice propio y precios comparados entre 11 cadenas chilenas. Pensado para personas y agentes: sin perfiles, sin rastreo, sin historial. https://search.personnn.com Buscador independiente con índice propio, metabúsqueda y datos de productos del retail chileno. Pensado para que lo usen personas Y agentes. Base: https://search.personnn.com ## Copia y pega esto — no lo reescribas de memoria Todo lo que sigue son URLs reales, probadas. Si inventas un endpoint o un parámetro que no esté en esta lista, no existe: vas a recibir un 404 que te va a enumerar los que sí existen. # buscar cualquier cosa curl "https://search.personnn.com/v1/search?q=leche+colun" # si ya estás en la URL humana, pide JSON y te la devuelve como datos curl -H "Accept: application/json" "https://search.personnn.com/?q=leche+colun" # solo productos con precios por tienda curl "https://search.personnn.com/v1/products?q=leche+colun" # una lista de compras entera, en un request curl "https://search.personnn.com/v1/products/batch?q=palta,huevos,aceite+de+oliva" # lo mismo por POST si prefieres JSON curl -X POST https://search.personnn.com/v1/products/batch \ -H "Content-Type: application/json" \ -d '{"queries":["palta","huevos","aceite de oliva"]}' # platos de restaurantes curl "https://search.personnn.com/v1/menu?q=completos" # variación del precio de un producto curl "https://search.personnn.com/v1/history?tienda=jumbo&sku=12280" # con presupuesto de tiempo, para no bloquear tu flujo curl "https://search.personnn.com/v1/search?q=arroz&max_ms=800" # qué piensa la gente de un sitio (Personnn Rank) curl "https://search.personnn.com/v1/reputation?host=emol.cl" # el ranking completo: puntaje | love | hate | chaquetero | controversia curl "https://search.personnn.com/v1/rank?orden=controversia&limit=20" # solo dominios .cl curl "https://search.personnn.com/v1/rank?orden=chaquetero&solo=cl" No hay otros endpoints. No hay parámetros de tipo "ofertas", "formato" ni "modo". Los campos son los que aparecen abajo y ninguno más. ## Buscar GET /v1/search?q=&page= Respuesta: query la consulta normalizada results[] resultados unificados title título url URL absoluta (http/https) snippet extracto source "personnn" = índice propio · "web" = metabuscador engine motor de origen; "live" = página visitada en el momento published_at fecha, cuando el resultado la declara productos[] productos comparados entre tiendas (ver abajo), si aplica news[] bloque de noticias, solo si la consulta es noticiosa ahora fecha y hora actual del servicio (zona America/Santiago) took_ms cuánto tardó partial true si el metabuscador falló y solo hay índice propio has_more true si hay otra página ## Productos Cuando la consulta parece de compra, la respuesta puede incluir "productos": el mismo artículo en distintas cadenas, ya cruzado. nombre, marca, medida medida normalizada a gramos o mililitros tiendas en cuántas cadenas está ahorro diferencia entre la oferta más cara y la más barata mejor la oferta más barata ofertas[] {tienda, precio, precio_lista, url, disponible, visto} El orden es por relevancia a la consulta, NO por precio. Es deliberado: el precio es un atributo más, junto a la disponibilidad, el tiempo de entrega y lo que el usuario ya sabe de esa tienda. Quien decide es tu agente, no nosotros. Y como el orden no depende del precio, tampoco depende de quién pague: **ninguna tienda puede comprar posición en estos resultados**. No hay publicidad, no hay ranking patrocinado, no hay acuerdos comerciales que muevan un producto hacia arriba. Si alguna vez los hubiera, estaría escrito acá. Reglas para usarlos bien: - Mira SIEMPRE "visto" antes de afirmar un precio. Un precio de hace días no es un precio: dilo con su fecha o verifícalo antes de recomendarlo. - "precio_lista" mayor que "precio" indica descuento, pero no prueba que sea una buena oferta: un 40% off sobre un precio que subió la semana pasada no lo es. - Un pack y una unidad nunca se agrupan juntos, aunque compartan marca y formato. - Los grupos con "tiendas" mayor a 1 vienen primero, pero también se devuelven productos disponibles en una sola tienda: saber dónde conseguir algo es útil aunque no haya con qué compararlo. ## Listas de compra (varios productos de una vez) Si armaste una lista —"comida saludable para la semana", los insumos de una receta— no consultes producto por producto. El catálogo responde la lista completa en un request: POST https://search.personnn.com/v1/products/batch {"queries": ["leche descremada", "palta", "quinoa", "pechuga de pollo"]} Devuelve un item por cada línea, con "encontrado" en true o false. Lo que no está hay que decírselo a la persona: un carro armado a medias sin avisar es peor que uno que declara lo que faltó. También devuelve "por_tienda": cuánto sale la lista completa en cada cadena y cuántos productos le faltarían. Úsalo antes de recomendar dónde comprar. El carro más barato NO es la suma de los productos más baratos: repartir quince cosas entre dos cadenas son dos despachos, dos esperas y dos entregas. Una tienda con precios algo más altos que resuelve toda la lista suele ganarle a una más barata que resuelve la mitad. ## Restaurantes GET https://search.personnn.com/v1/menu?q= Platos con su precio, su restaurante y el rating del local. Se puede buscar por plato ("completos", "porotos con riendas"), por tipo de cocina ("cocina chilena") o por antojo ("algo dulce"). nombre, descripcion, seccion el plato precio, moneda lo que cuesta EN ESA plataforma restaurante, rating_restaurante, url visto cuándo se registró Diferencia importante con los productos de supermercado: el precio de un plato pertenece a un local y a una plataforma de delivery, no al restaurante en abstracto. El mismo plato puede costar distinto pedido por otra vía o en el local. No lo presentes como "el precio", preséntalo como "el precio en X". ## Reputación de un sitio (Personnn Rank) GET /v1/reputation?host= GET /v1/rank?orden=puntaje|love|aura|hate|chaquetero|controversia&limit=&solo=cl Reputación pública de sitios, construida con dos señales distintas: love cuánta gente lo quiere. Gratis, un voto por persona y por día. aura cuánta gente lo admira. Es OTRA señal, no un love más fuerte: "me gusta este sitio" y "qué bacán esta empresa" son juicios distintos, y una misma persona puede dar los dos al mismo sitio. llegadas cuánta gente abrió un link compartido de este sitio. Mide difusión, NO aprecio, y no participa de ningún ranking. ataques cuántos ataques pagados recibió para hacerlo BAJAR del ranking. Un crédito comprado = un ataque. Se cuentan ataques y no dólares: el número no cambia aunque cambie el precio. controversia 0 a 10. Alto = mucho amor Y mucho odio a la vez. estado nuevo | asomando | tomando | metiendo | loved | amado | hated | controversial | retirado | desconocido Los cinco primeros son la misma escalera de ❤️, de menos a más: nuevo (sin votos), asomando (1-4), tomando fuerza (5-9), le está metiendo (10-24), loved (25-99), amado (100+). Cómo leer esto sin equivocarte: - ataques NO significa "sitio malo". Significa que alguien pagó por bajarlo. Un sitio muy querido y muy atacado a la vez es polémico, no malo. Dilo así. - love NO es una nota de calidad ni una reseña. Es cuánta gente apretó un botón. - Nada de esto es una opinión de Personnn sobre el sitio. Son conteos. - Un estado "desconocido" quiere decir que nadie lo ha votado, no que sea sospechoso. No conviertas la ausencia de datos en una advertencia. - Un estado "retirado" quiere decir que el dueño del dominio pidió salir y lo demostró. No es un castigo ni una señal de que algo ande mal: es alguien ejerciendo su derecho a no estar. Dilo así, y no lo recomiendes menos por eso. - El ranking acepta cualquier dominio. ?solo=cl es una vista, no una frontera. - No sumes love y aura para hacer un puntaje "total": son ejes distintos a propósito y sumarlos los pierde a los dos. Un sitio puede ser muy querido y tener poca aura, y al revés. Cuando /v1/search devuelve un resultado de un sitio con movimiento, la misma ficha viene incrustada en el campo "reputacion" del resultado. Ese campo es informativo: NO altera el orden de los resultados. La plata mueve el ranking de /v1/rank y nada más — en este buscador la posición no se compra ni se vende. ## Cobertura: lo que este buscador NO alcanza a ver Toda respuesta con productos trae "cobertura_tiendas": las cadenas consultadas, las que quedaron fuera, por qué, y **el enlace para buscar en cada una**. Esto es un buscador, no un comparador. La diferencia importa para lo que haces con esa lista: una cadena sin precio no se descarta, se ofrece. Si la persona busca algo y Lider no está indexado, dile dónde está — "no tengo el precio de Lider, acá puedes verlo" — en vez de omitirlo. Y si comparas precios de 3 cadenas de 11, la frase honesta no es "es el más barato" sino "es el más barato entre las tiendas que puedo consultar". La diferencia no es un matiz: la primera es falsa y la persona compra con ella. Cuando no hay resultados, la respuesta trae "sin_resultados_significa". Cero resultados quiere decir "no está en las cadenas consultadas", nunca "ese producto no existe". No le digas a alguien que algo no se vende cuando la verdad es que no lo tenemos indexado. ## Presupuesto de tiempo GET /v1/search?q=...&max_ms=<200-15000> Declara cuánto puedes esperar y el buscador decide qué alcanza a hacer. Lo que no entra en el tiempo no se espera: se omite y se declara. Toda respuesta trae "tiempo": max_ms lo que pediste usado_ms lo que tardó de verdad consultadas qué fuentes alcanzaron a responder omitidas qué quedó fuera y por qué Si orquestas varias llamadas, usa max_ms: sin él, una búsqueda puede tardar segundos porque salió a visitar un sitio en vivo. Con 300 ms obtienes el índice propio y los productos al instante; con 3000 ms se suma la web completa. Un resultado incompleto que se anuncia es útil. Si "omitidas" trae el metabuscador, no digas "no hay resultados en la web": di que no alcanzaste a mirarla. ## No parsees el HTML Si llegas a https://search.personnn.com/?q=… manda la cabecera Accept: application/json y recibirás la misma respuesta que /v1/search, con la cobertura de tiendas, las fuentes y la declaración de frescura. Leer la página y sacarle el texto funciona, pero te pierdes justamente lo que te permite no equivocarte: qué tiendas quedaron fuera, qué precios están verificados y cuáles son solo texto de un resultado web. ## Qué está verificado y qué no — importante La respuesta trae dos cosas distintas y se parecen peligrosamente: - **productos[]** — precios que leímos nosotros del sitio de cada tienda, con la fecha en que se vieron. Son datos. - **results[]** — enlaces a páginas web, con el texto que el buscador encontró. Si en ese texto aparece un precio, **no es un dato nuestro**: puede estar viejo, ser de otra presentación o de otro país. No mezcles los dos en la misma tabla ni calcules precio por kilo con un número sacado de un snippet. Si necesitas ese precio, abre el enlace y verifícalo, o dilo como lo que es: "según esta página, …". Un agente comparó precios verificados con precios de snippets y recomendó la compra en base a eso. Se veía impecable y podía estar mal. ## La fecha actual Toda respuesta trae "ahora" con la fecha y hora del servicio. Úsala: tu modelo no sabe qué día es y, sin esta referencia, interpreta "hoy" con la fecha de su entrenamiento — que puede estar meses atrás. Es también la referencia para juzgar el resto: si una noticia o un precio traen fecha, compáralos contra "ahora", no contra lo que creas que es hoy. ## Cómo consultar bien - Un dominio o URL ("empresa.cl") devuelve ese sitio directamente, visitándolo en vivo si no estaba indexado. Úsalo cuando busques un sitio, no un tema. - Los resultados con source "personnn" vienen del índice propio; los "web", del metabuscador. Ambos son públicos y verificables por URL. - Pagina con "page" mientras "has_more" sea true. - Rate limit por IP. Si recibes 429, espera antes de reintentar. ## Privacidad — importante si construyes sobre esto Este buscador no guarda historial de búsqueda de nadie: no hay perfil, cookie ni registro por persona. Si tu agente busca en nombre de un usuario, acá no queda rastro atribuible a él. No mandes datos personales en la query. Si el usuario te pidió algo con su RUT, su correo o su dirección, no lo pongas en la búsqueda: no lo necesita. ## Lo que este buscador NO hace - No compra ni arma carritos. Leer no es actuar: comprar necesita la sesión y las credenciales del usuario, y eso corre en su computador, no acá. - No garantiza que un precio siga vigente al momento de tu consulta. - No cubre todas las cadenas: varias bloquean el acceso automatizado. ## Honestidad con el usuario final Si le vas a decir a una persona dónde comprar algo, dile también cuándo se vio ese precio. Una recomendación basada en un dato viejo, presentada como actual, es una mentira aunque el dato haya sido cierto ayer. ## Enlaces - [Buscador](https://search.personnn.com/) - [Buscar](https://search.personnn.com/v1/search?q=leche) - [Productos](https://search.personnn.com/v1/products?q=leche) - [Rank](https://search.personnn.com/rank) - [Reputación](https://search.personnn.com/v1/reputation?host=personnn.cl) - [Privacidad](https://search.personnn.com/privacy) - [Términos](https://search.personnn.com/terms) - [Juegos Panda Runner](https://pandarunner.personnn.site) - [Juegos Panda Craft](https://pandacraft.personnn.site)