Travel Promos Argentina
Consulta promociones de viajes (vuelos, hoteles y paquetes) y permite filtrarlas y ordenarlas localmente.
API Overview
- Base URL:
https://anduin.ferminrp.com
- Auth: None required
- Response format: JSON
- Endpoint principal:
/api/v1/promos
- OpenAPI:
https://anduin.ferminrp.com/docs/openapi.json
- Fuente upstream:
data.source
- Timestamps relevantes:
data.lastUpdated (actualizacion de promos)
timestamp (respuesta del servicio)
- Query params documentados para
/api/v1/promos: ninguno
- Nota: los query params probados (
category, destinationCountry, limit, q) no filtran en origen; filtrar localmente con jq (verificado sobre la respuesta actual del endpoint).
Endpoint
Ejemplos de uso:
curl -s "https://anduin.ferminrp.com/api/v1/promos" | jq '.'
curl -s "https://anduin.ferminrp.com/api/v1/promos" | jq '.data.promos[0:5]'
curl -s "https://anduin.ferminrp.com/api/v1/promos" | jq '.data.promos | map(select(.category == "vuelos"))'
curl -s "https://anduin.ferminrp.com/api/v1/promos" | jq '.data.promos | map(select(.category == "autos"))'
curl -s "https://anduin.ferminrp.com/api/v1/promos" | jq '.data.promos | map(select(.destinationCountry == "brazil"))'
curl -s "https://anduin.ferminrp.com/api/v1/promos" | jq '.data.promos | sort_by(.date) | reverse | .[0:10]'
curl -s "https://anduin.ferminrp.com/api/v1/promos" | jq '.data.promos | sort_by(-.score) | .[0:10]'
Campos clave
- Top-level:
success (bool)
timestamp (ISO datetime)
data:
lastUpdated (ISO datetime)
source (URL de origen)
totalPromos (int)
promos (array)
promos[]:
id, date, title, permalink, thumbnailUrl
destinationCountry (puede ser null)
category
score (numerico para ranking, puede no venir si falla clasificacion AI)
- Valores dinamicos observados hoy (ejemplos, no lista cerrada):
category: vuelos, hoteles, autos, paquetes, asistencia, otros
destinationCountry: brazil, united_states, spain, dominican_republic, aruba, mexico, japan, portugal, europe, null
- Semantica adicional:
permalink se construye dinamicamente como /links/viajes/:id sobre el host de la request
Workflow
- Detectar intencion del usuario:
- Listado general
- Filtro por categoria o pais
- Ranking por score
- Ultimas promos
- Consultar endpoint unico con
curl -s.
- Validar
success == true y existencia de data.promos.
- Aplicar filtros y orden localmente con
jq:
- Por
category
- Por
destinationCountry
- Por texto en
title o id cuando aplique
- Por
date o score
- Responder primero con snapshot:
- Cantidad total (
totalPromos)
lastUpdated
- Top 3 promos por score o relevancia
- Luego mostrar tabla corta (top 5/10):
date | category | destinationCountry | score | title
- Incluir solo
permalink para promos mostradas.
- Mantener respuesta informativa, sin consejos financieros ni garantias de disponibilidad.
Error Handling
- HTTP no exitoso:
- Informar codigo HTTP y endpoint consultado.
- 404 (
No promos data available):
- Informar que no hay datos cacheados de promos en este momento.
success: false:
- Mostrar payload de error si existe.
- JSON inesperado:
- Mostrar minimo crudo util y aclarar inconsistencia.
- Red o timeout:
- Reintentar hasta 2 veces con espera corta.
promos vacio:
- Informar "no hay promociones disponibles actualmente".
Presenting Results
- Formato por defecto:
- Resumen ejecutivo + tabla corta
- Priorizar:
- Recencia (
date)
- Relevancia (
score)
- Claridad de destino y categoria
- Aclarar timestamps (
lastUpdated y/o timestamp) y la fuente externa (data.source).
- No emitir recomendaciones de compra; solo informar promociones disponibles.
Out of Scope
Esta skill no debe hacer en v1:
- Scraping directo de sitios externos
- Automatizacion de reserva o compra
- Alertas push, notificaciones o tracking de cambios
- Uso de endpoints distintos de
/api/v1/promos
1---2name: travel-promos-argentina3description: Consulta promociones de viajes desde Argentina usando Anduin Promos API. Usar cuando el usuario pida promos de viaje en Argentina, promociones de vuelos, hoteles o paquetes, mejores ofertas del dia, promos a brasil/usa/europa, ranking por score o ultimas promos de promociones-aereas.4---5
6# Travel Promos Argentina
7
8Consulta promociones de viajes (vuelos, hoteles y paquetes) y permite filtrarlas y ordenarlas localmente.
9
10## API Overview
11
12- **Base URL**: `https://anduin.ferminrp.com`
13- **Auth**: None required
14- **Response format**: JSON
15- **Endpoint principal**: `/api/v1/promos`
16- **OpenAPI**: `https://anduin.ferminrp.com/docs/openapi.json`
17- **Fuente upstream**: `data.source`
18- **Timestamps relevantes**:
19 - `data.lastUpdated` (actualizacion de promos)
20 - `timestamp` (respuesta del servicio)
21- **Query params documentados para `/api/v1/promos`**: ninguno
22- **Nota**: los query params probados (`category`, `destinationCountry`, `limit`, `q`) no filtran en origen; filtrar localmente con `jq` (verificado sobre la respuesta actual del endpoint).
23
24## Endpoint
25
26- `GET /api/v1/promos`
27
28Ejemplos de uso:
29
30```bash
31curl -s "https://anduin.ferminrp.com/api/v1/promos" | jq '.'
32curl -s "https://anduin.ferminrp.com/api/v1/promos" | jq '.data.promos[0:5]'
33curl -s "https://anduin.ferminrp.com/api/v1/promos" | jq '.data.promos | map(select(.category == "vuelos"))'
34curl -s "https://anduin.ferminrp.com/api/v1/promos" | jq '.data.promos | map(select(.category == "autos"))'
35curl -s "https://anduin.ferminrp.com/api/v1/promos" | jq '.data.promos | map(select(.destinationCountry == "brazil"))'
36curl -s "https://anduin.ferminrp.com/api/v1/promos" | jq '.data.promos | sort_by(.date) | reverse | .[0:10]'
37curl -s "https://anduin.ferminrp.com/api/v1/promos" | jq '.data.promos | sort_by(-.score) | .[0:10]'
38```
39
40## Campos clave
41
42- Top-level:
43 - `success` (bool)
44 - `timestamp` (ISO datetime)
45- `data`:
46 - `lastUpdated` (ISO datetime)
47 - `source` (URL de origen)
48 - `totalPromos` (int)
49 - `promos` (array)
50- `promos[]`:
51 - `id`, `date`, `title`, `permalink`, `thumbnailUrl`
52 - `destinationCountry` (puede ser `null`)
53 - `category`
54 - `score` (numerico para ranking, puede no venir si falla clasificacion AI)
55- Valores dinamicos observados hoy (ejemplos, no lista cerrada):
56 - `category`: `vuelos`, `hoteles`, `autos`, `paquetes`, `asistencia`, `otros`
57 - `destinationCountry`: `brazil`, `united_states`, `spain`, `dominican_republic`, `aruba`, `mexico`, `japan`, `portugal`, `europe`, `null`
58- Semantica adicional:
59 - `permalink` se construye dinamicamente como `/links/viajes/:id` sobre el host de la request
60
61## Workflow
62
631. Detectar intencion del usuario:
64 - Listado general
65 - Filtro por categoria o pais
66 - Ranking por score
67 - Ultimas promos
682. Consultar endpoint unico con `curl -s`.
693. Validar `success == true` y existencia de `data.promos`.
704. Aplicar filtros y orden localmente con `jq`:
71 - Por `category`
72 - Por `destinationCountry`
73 - Por texto en `title` o `id` cuando aplique
74 - Por `date` o `score`
755. Responder primero con snapshot:
76 - Cantidad total (`totalPromos`)
77 - `lastUpdated`
78 - Top 3 promos por score o relevancia
796. Luego mostrar tabla corta (top 5/10):
80 - `date | category | destinationCountry | score | title`
817. Incluir solo `permalink` para promos mostradas.
828. Mantener respuesta informativa, sin consejos financieros ni garantias de disponibilidad.
83
84## Error Handling
85
86- **HTTP no exitoso**:
87 - Informar codigo HTTP y endpoint consultado.
88- **404 (`No promos data available`)**:
89 - Informar que no hay datos cacheados de promos en este momento.
90- **`success: false`**:
91 - Mostrar payload de error si existe.
92- **JSON inesperado**:
93 - Mostrar minimo crudo util y aclarar inconsistencia.
94- **Red o timeout**:
95 - Reintentar hasta 2 veces con espera corta.
96- **`promos` vacio**:
97 - Informar "no hay promociones disponibles actualmente".
98
99## Presenting Results
100
101- Formato por defecto:
102 - Resumen ejecutivo + tabla corta
103- Priorizar:
104 - Recencia (`date`)
105 - Relevancia (`score`)
106 - Claridad de destino y categoria
107- Aclarar timestamps (`lastUpdated` y/o `timestamp`) y la fuente externa (`data.source`).
108- No emitir recomendaciones de compra; solo informar promociones disponibles.
109
110## Out of Scope
111
112Esta skill no debe hacer en v1:
113
114- Scraping directo de sitios externos
115- Automatizacion de reserva o compra
116- Alertas push, notificaciones o tracking de cambios
117- Uso de endpoints distintos de `/api/v1/promos`