Plan, quote & book the Camino de Santiago: routes, stages, live hotels, one package price, FAQ.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Propose per-night hotel swaps on a quoted Camino de Santiago package to reach a goal: cheaper, higher category, closer to the town centre or with breakfast. `objetivo`: bajar_precio | subir_categoria | mas_centrico | con_desayuno; optional `noche_num` to limit to one night. Use it when the client asks to LOWER THE PRICE, UPGRADE, sleep MORE CENTRAL or ADD BREAKFAST — do not re-quote. Returns each proposal with its change in the total and the total if all are applied; apply accepted ones one by one with swap_camino_hotel, chaining the new offer. If there are no proposals, offer to re-quote with another category/itinerary. (es: ajustar_paquete)
Propose per-night hotel swaps on a quoted Camino de Santiago package to reach a goal: cheaper, higher category, closer to the town centre or with breakfast. `objetivo`: bajar_precio | subir_categoria | mas_centrico | con_desayuno; optional `noche_num` to limit to one night. Use it when the client asks to LOWER THE PRICE, UPGRADE, sleep MORE CENTRAL or ADD BREAKFAST — do not re-quote. Returns each proposal with its change in the total and the total if all are applied; apply accepted ones one by one with swap_camino_hotel, chaining the new offer. If there are no proposals, offer to re-quote with another category/itinerary. (es: ajustar_paquete)
| Argument | Type | Description |
|---|---|---|
| objetivo* | string | |
| noche_num | any | |
| oferta_paquete_firmada* | string |
{
"type": "object",
"title": "adjust_camino_packageArguments",
"required": [
"oferta_paquete_firmada",
"objetivo"
],
"properties": {
"objetivo": {
"type": "string",
"title": "Objetivo"
},
"noche_num": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Noche Num",
"default": null
},
"oferta_paquete_firmada": {
"type": "string",
"title": "Oferta Paquete Firmada"
}
}
}Practical, up-to-date answers about the Camino de Santiago from Ourway's specialist team — use it for ANY Camino question even when the user is not booking: pilgrim credential (credencial), the Compostela certificate and the 100 km / 200 km rule, best time of year and weather, which route to choose (Camino Francés, Portugués Central or Coastal from Porto/Tui, Norte, Primitivo, Inglés from Ferrol, Vía de la Plata, Finisterre-Muxía), how many days from Sarria / Tui / Porto / Roncesvalles / Saint-Jean-Pied-de-Port / Oviedo, daily distances and difficulty, luggage & backpack transfer, what to pack, walking with kids or seniors, cycling the Camino, pets, accommodation types (albergues, hostales, hotels, casas rurales), budget, how far ahead to book, getting to the start and back from Santiago, safety, food (pilgrim menu) and etiquette. `question`: free text in any language; `idioma`: es | en (auto-detected if omitted). Cheap and instant (no availability check). / Respuestas prácticas del equipo Ourway sobre el Camino de Santiago: credencial, Compostela, 100 km, mejor época, qué ruta elegir, etapas, mochila, niños, bici, mascotas, presupuesto… Úsala ante cualquier duda sobre el Camino aunque el usuario no quiera reservar. (es: info_camino)
| Argument | Type | Description |
|---|---|---|
| idioma | any | |
| question* | string |
{
"type": "object",
"title": "camino_de_santiago_infoArguments",
"required": [
"question"
],
"properties": {
"idioma": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Idioma",
"default": null
},
"question": {
"type": "string",
"title": "Question"
}
}
}Official Ourway catalog of pilgrim extras for the Camino de Santiago: pilgrim credential (credencial), travel insurance, luggage / backpack transfer between stages, guided visits and activities. No unit prices (extras are folded into the package total via update_camino_package_extras(extras_ids=…) on a quoted package, or quote_camino_package(extras_ids=…) before quoting). `preseleccionado` marks the defaults (credential + insurance by nationality). Pass the route's `camino_slug` to get only the activities of the towns along that Camino (plus the generic pilgrim extras). The ONLY extras that may be offered. / Extras oficiales del catálogo, sin precio unitario y sin mostrar IDs; con `camino_slug`, solo las actividades de las poblaciones de ese camino. (es: catalogo_extras)
| Argument | Type | Description |
|---|---|---|
| camino_slug | any | |
| nacionalidad | any |
{
"type": "object",
"title": "camino_extras_catalogArguments",
"properties": {
"camino_slug": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Camino Slug",
"default": null
},
"nacionalidad": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Nacionalidad",
"default": null
}
}
}Up to 3 alternative hotels for ONE night of a quoted Camino de Santiago package, of ANY accommodation category and as close as possible in price to the current one, each with the change in the package total (`variacion_total_eur`), room, meal plan and distance to the centre. Use it when the client wants a different hotel in a town — do NOT re-quote the whole trip. It checks live availability for that night, so it can find options even when the quote reported `alternativas_disponibles: 0` (takes a few seconds). Then apply the choice with swap_camino_hotel (`alternativa_id`). / Alternativas de cualquier categoría y de precio parecido para una noche; nunca precios por noche. (es: alternativas_alojamiento)
| Argument | Type | Description |
|---|---|---|
| noche_num* | integer | |
| oferta_paquete_firmada* | string |
{
"type": "object",
"title": "camino_hotel_alternativesArguments",
"required": [
"oferta_paquete_firmada",
"noche_num"
],
"properties": {
"noche_num": {
"type": "integer",
"title": "Noche Num"
},
"oferta_paquete_firmada": {
"type": "string",
"title": "Oferta Paquete Firmada"
}
}
}Check the status of a Camino de Santiago booking proposal created through this channel (code PET-123): active / confirmed / expired, plus its link and deadline. Use it when the customer comes back asking about "my proposal", "my booking" or gives a PET code. / Estado de una propuesta creada por este canal. (es: estado_propuesta)
| Argument | Type | Description |
|---|---|---|
| codigo* | string |
{
"type": "object",
"title": "camino_proposal_statusArguments",
"required": [
"codigo"
],
"properties": {
"codigo": {
"type": "string",
"title": "Codigo"
}
}
}Towns along a Camino de Santiago route in trail order (Sarria, Portomarín, O Cebreiro, Tui, Porto, Roncesvalles, Ferrol…), with id, name, cumulative km and GPS coordinates. Use it to pick the starting town (`poblacion_inicio_id` for plan_camino_itinerary), to check where the 100 km Compostela threshold falls, and to validate overnight stops. / Poblaciones de un camino en orden de trazado con km acumulados y coordenadas. Las etapas reservables las construye plan_camino_itinerary. (es: poblaciones_ruta)
| Argument | Type | Description |
|---|---|---|
| camino_slug* | string |
{
"type": "object",
"title": "camino_route_townsArguments",
"required": [
"camino_slug"
],
"properties": {
"camino_slug": {
"type": "string",
"title": "Camino Slug"
}
}
}Private transfer options to add to a Camino de Santiago package (e.g. Santiago airport or city → Sarria before the first stage, or back from the last town): one option per vehicle type with enough seats, with distance, duration and how much it ADDS to the package total (`variacion_total_eur`). Town ids come from camino_route_towns. To include one in an already quoted package, call update_camino_package_extras with the full `traslados` list ([{ origen_poblacion_id, destino_poblacion_id, fecha, categoria_id}]); before the first quote, pass it to quote_camino_package(traslados=…). / Opciones de traslado privado para añadir al paquete del Camino, con lo que suma cada una al total. Para incluirla en un paquete ya cotizado, update_camino_package_extras. (es: opciones_traslado)
| Argument | Type | Description |
|---|---|---|
| fecha* | string | |
| num_pasajeros* | integer | |
| origen_poblacion_id* | integer | |
| destino_poblacion_id* | integer |
{
"type": "object",
"title": "camino_transfer_optionsArguments",
"required": [
"origen_poblacion_id",
"destino_poblacion_id",
"fecha",
"num_pasajeros"
],
"properties": {
"fecha": {
"type": "string",
"title": "Fecha"
},
"num_pasajeros": {
"type": "integer",
"title": "Num Pasajeros"
},
"origen_poblacion_id": {
"type": "integer",
"title": "Origen Poblacion Id"
},
"destino_poblacion_id": {
"type": "integer",
"title": "Destino Poblacion Id"
}
}
}Intake form contract for a tailor-made Camino de Santiago trip: the fields to collect conversationally from the customer BEFORE quoting anything (rooms with children's ages, nationality/residence, start date and nights, walking or cycling, route and starting town, daily pace, accommodation category, meal plan, luggage transfer, pets, budget per person, comments). Call it at the start of any planning request. / Espejo del formulario 'Camino a medida' de ourway.travel. No llames a quote_camino_package sin `presupuesto` ni a create_camino_booking_proposal sin los datos de contacto. (es: iniciar_peticion_medida)
No arguments.
{
"type": "object",
"title": "camino_trip_intake_formArguments",
"properties": {}
}Create the Ourway booking request for a quoted Camino de Santiago package and return the customer's personal proposal link (valid 7 days) where they review the trip day by day, confirm and pay securely. ONLY call it after the customer explicitly approves the itinerary and the package total and gives real contact details (full name, email, phone, nationality). Accepts no prices: only the signed offer from quote_camino_package / swap_camino_hotel. / Crea la petición en Ourway y devuelve el enlace de la propuesta (única llamada a la acción). (es: crear_propuesta)
| Argument | Type | Description |
|---|---|---|
| cliente* | any | |
| formulario* | any | |
| camino_slug* | string | |
| idioma_codigo* | string | |
| poblacion_inicio_id | any | |
| oferta_paquete_firmada* | string | |
| poblacion_inicio_nombre | any |
List the Camino de Santiago routes Ourway sells and can book: Camino Francés (French Way), Camino Portugués (Central & Coastal), Camino del Norte, Camino Primitivo, Camino Inglés, Vía de la Plata / Sanabrés, Finisterre-Muxía and more, with slug, name and total km. Start here for any Camino de Santiago trip question ("which Camino should I walk?", "routes from Porto / Sarria / Tui"). `tipo`: a_pie (walking) | en_bicicleta (cycling) | a_caballo. / Lista los Caminos de Santiago que Ourway comercializa: solo estos son reservables. El itinerario reservable lo construye plan_camino_itinerary. (es: listar_caminos)
| Argument | Type | Description |
|---|---|---|
| tipo | string |
{
"type": "object",
"title": "list_camino_routesArguments",
"properties": {
"tipo": {
"type": "string",
"title": "Tipo",
"default": "a_pie"
}
}
}Build a day-by-day Camino de Santiago itinerary (walking stages, km per day, overnight towns, dates, route map image) following the camino's OFFICIAL stages adapted to the pilgrim's daily pace. Use it for any Camino itinerary, stage plan or "how many days from Sarria/Tui/Porto/Roncesvalles" question: it is the itinerary Ourway books. `ritmo`: tranquilo (18-22 km/day) | medio (22-28) | experimentado (28-35); use `km_max_etapa` instead for an explicit km cap or cycling (~2x). `fecha_inicio` (YYYY-MM-DD, first night) is optional: without it dates come back "to be confirmed" — call it anyway. Only pass `num_noches` when the client fixes the number of nights. Each stage lists `alternativas_pernocta`: nearby towns where the client could sleep instead; to apply a change call again with `pernoctas_ids` (the overnight town of EVERY night, in walking order; repeat a town on consecutive nights for a rest day). Optional edits, all requiring `pernoctas_ids`: `solo_paso_final_id` = town reached walking on the last day without sleeping there; `extender_hasta_id` = extend the trip beyond the last stop up to that town (the new part is split at the pace); `camino_continuacion_slug` = route continuing after the goal (only `camino-finisterre-muxia`, starting in Santiago). Each stage has `tipo` (marcha | descanso | solo_paso), `dia_num`, `noche_num` (null on the arrival without night) and `intermedias` (towns inside the stage where to stop earlier); `continuaciones` lists where the trip can be extended. Returns `mapa_url`: a real PNG map of the route with numbered overnight stops — show it in the chat right after the stage table (``). / Fuente del itinerario reservable: úsala para proponer o revisar etapas, aunque el cliente aún no tenga fecha. Presenta el itinerario y pide confirmación ANTES de cotizar. (es: proponer_itinerario)
| Argument | Type | Description |
|---|---|---|
| ritmo | any |
Quote a complete Camino de Santiago trip as ONE all-in package price (hotels night by night with LIVE availability + pilgrim extras) — the source of the official Ourway package price. Use it whenever the user asks how much a Camino costs, wants a quote, or approves an itinerary from plan_camino_itinerary. It auto-selects the best accommodation for each night (Ourway quality filters: verified meal plan, close to the centre, guest rating) and returns a single `total_paquete_eur`. NEVER returns per-hotel, per-night or per-extra prices. `presupuesto` is REQUIRED (per person, whole trip, EUR): sin_preferencia | lt_500 | 500_1000 | 1000_1500 | gt_1500. `meal_plan`: RO | BB | HB | FB. `categoria_alojamiento`: recomendado | hoteles_encanto | casas_rurales | albergues. `extras_ids` from camino_extras_catalog (default: pilgrim credential + insurance; luggage transfer if incluir_mochila=true, one bag per traveller, priced by Ourway as bags × official stages of the Camino covered, so a day that spans two official stages counts two; pass the route's `camino_slug` from plan_camino_itinerary). `traslados`: private transfers chosen from camino_transfer_options (arrival to the first town, return from the last…); their price goes inside the total and they are listed in `traslados_incluidos`. `etapas` = one entry per night; consecutive nights in the same town (rest day) get the same hotel. `solo_paso_final` = arrival without night from plan_camino_itinerary ({poblacion_id, fecha} with fecha = check-out of the last night): no hotel, but the luggage transfer covers that last stage. ALWAYS pass `nacionalidad` (or `residente_espana`): it sets the insurance. `mascotas=true` when travelling with a pet. If a category has no availability one night the best alternative category is chosen (see `avisos`); if a town has no rooms at all that night, the stop is moved to the nearest town on the route with availability and reported in `pernoctas_reubicadas` + `avisos` (tell the client). Keep `oferta_paquete_firmada` verbatim for create_camino_booking_proposal. Usually 20-45 s (live checks hotel by hotel): tell the user it takes a moment. If your client times out, call it again with the SAME parameters: the result is cached and comes back instantly. / Fuente del precio oficial Ourway: un solo importe total del paquete, nunca precios parciales. Sin presupuesto no se cotiza. La mochila se calcula como bultos × etapas oficiales (un día que cubre dos etapas oficiales cuenta dos) y va dentro del total. Si tu cliente corta por timeout, repite la llamada con los mismos parámetros: el resultado está en caché. (es: cotizar_paquete)
Apply one alternative from camino_hotel_alternatives or adjust_camino_package to a quoted Camino de Santiago package and get a NEW signed offer (`oferta_paquete_firmada`) with the new package total. Always use the most recent offer for create_camino_booking_proposal. / Sustituye el hotel de esa noche y devuelve una nueva oferta firmada con el nuevo total. (es: cambiar_alojamiento)
| Argument | Type | Description |
|---|---|---|
| noche_num* | integer | |
| alternativa_id* | string | |
| oferta_paquete_firmada* | string |
{
"type": "object",
"title": "swap_camino_hotelArguments",
"required": [
"oferta_paquete_firmada",
"noche_num",
"alternativa_id"
],
"properties": {
"noche_num": {
"type": "integer",
"title": "Noche Num"
},
"alternativa_id": {
"type": "string",
"title": "Alternativa Id"
},
"oferta_paquete_firmada": {
"type": "string",
"title": "Oferta Paquete Firmada"
}
}
}Change the pilgrim extras, private transfers or luggage transfer of an ALREADY QUOTED Camino de Santiago package, keeping the same hotels night by night: no new availability check, answers in a few seconds. Pass the COMPLETE new selection: `extras_ids` (from camino_extras_catalog; omit for the default credential + insurance), `traslados` (from camino_transfer_options; omit or [] for none) and `incluir_mochila`. Returns the same shape as quote_camino_package with the new single `total_paquete_eur` and a NEW `oferta_paquete_firmada` that replaces the previous one. Use it instead of quote_camino_package whenever only extras or transfers change. / Añade o quita extras y traslados del paquete ya cotizado sin volver a cotizar los hoteles. (es: actualizar_extras_paquete)
| Argument | Type | Description |
|---|---|---|
| traslados | any | |
| extras_ids | any | |
| camino_slug | any | |
| nacionalidad | any | |
| incluir_mochila | boolean | |
| residente_espana | any | |
| oferta_paquete_firmada* | string |
{
"type": "object",
"$defs": {
"DatosCliente": {
"type": "object",
"title": "DatosCliente",
"required": [
"nombre_completo",
"email",
"telefono",
"nacionalidad"
],
"properties": {
"email": {
"type": "string",
"title": "Email",
"description": "Email real del cliente (recibirá la propuesta)"
},
"telefono": {
"type": "string",
"title": "Telefono",
"description": "Teléfono con prefijo internacional"
},
"nacionalidad": {
"type": "string",
"title": "Nacionalidad",
"description": "Nacionalidad del cliente (determina el seguro)"
},
"nombre_completo": {
"type": "string",
"title": "Nombre Completo",
"minLength": 5,
"description": "Nombre y apellidos del cliente"
}
}
},
"FormularioMedida": {
"type": "object",
"title": "FormularioMedida",
"required": [
"rooms",
"budget"
],
"properties": {
"board": {
"enum": [
"RO",
"BB",
"HB",
"FB"
],
"type": "string",
"title": "Board",
"default": "BB"
},
"rooms": {
"type": "array",
"items": {
"$ref": "#/$defs/HabitacionFormulario"
},
"title": "Rooms",
"description": "Distribución por habitación"
},
"budget": {
"enum": [
"sin_preferencia",
"lt_500",
"500_1000",
"1000_1500",
"gt_1500"
],
"type": "string",
"title": "Budget"
},
"luggage": {
"enum": [
"si",
"no",
"no_seguro"
],
"type": "string",
"title": "Luggage",
"default": "no_seguro"
},
"itinerary": {
"enum": [
"experto",
"propio"
],
"type": "string",
"title": "Itinerary",
"default": "experto"
},
"travel_type": {
"enum": [
"a_pie",
"en_bicicleta"
],
"type": "string",
"title": "Travel Type",
"default": "a_pie"
},
"lodging_mode": {
"enum": [
"rooms",
"shared"
],
"type": "string",
"title": "Lodging Mode",
"default": "rooms"
},
"observations": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Observations",
"default": null
},
"accommodation": {
"enum": [
"recomendado",
"hoteles_encanto",
"casas_rurales",
"albergues"
],
"type": "string",
"title": "Accommodation",
"default": "recomendado"
},
"contact_preference": {
"anyOf": [
{
"enum": [
"whatsapp",
"telefono",
"email"
],
"type": "string"
},
{
"type": "null"
}
],
"title": "Contact Preference",
"default": null
}
},
"description": "Espejo del bloque MEDIDA del formulario 'Camino a medida' de la web\n(api/procesar_solicitud_medida.php). Se serializa tal cual en\npeticiones_adicionales para que el CRS y su cotizador lo lean igual."
},
"HabitacionFormulario": {
"type": "object",
"title": "HabitacionFormulario",
"required": [
"adults"
],
"properties": {
"adults": {
"type": "integer",
"title": "Adults",
"maximum": 6,
"minimum": 1
},
"child_ages": {
"type": "array",
"items": {
"type": "integer"
},
"title": "Child Ages"
}
}
}
},
"title": "create_camino_booking_proposalArguments",
"required": [
"cliente",
"idioma_codigo",
"camino_slug",
"oferta_paquete_firmada",
"formulario"
],
"properties": {
"cliente": {
"$ref": "#/$defs/DatosCliente"
},
"formulario": {
"$ref": "#/$defs/FormularioMedida"
},
"camino_slug": {
"type": "string",
"title": "Camino Slug"
},
"idioma_codigo": {
"type": "string",
"title": "Idioma Codigo"
},
"poblacion_inicio_id": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Poblacion Inicio Id",
"default": null
},
"oferta_paquete_firmada": {
"type": "string",
"title": "Oferta Paquete Firmada"
},
"poblacion_inicio_nombre": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Poblacion Inicio Nombre",
"default": null
}
}
}| num_noches | any |
| camino_slug* | string |
| fecha_inicio | any |
| km_max_etapa | any |
| pernoctas_ids | any |
| extender_hasta_id | any |
| solo_paso_final_id | any |
| poblacion_inicio_id* | integer |
| poblacion_destino_id | any |
| camino_continuacion_slug | any |
{
"type": "object",
"title": "plan_camino_itineraryArguments",
"required": [
"camino_slug",
"poblacion_inicio_id"
],
"properties": {
"ritmo": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Ritmo",
"default": null
},
"num_noches": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Num Noches",
"default": null
},
"camino_slug": {
"type": "string",
"title": "Camino Slug"
},
"fecha_inicio": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Fecha Inicio",
"default": null
},
"km_max_etapa": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Km Max Etapa",
"default": null
},
"pernoctas_ids": {
"anyOf": [
{
"type": "array",
"items": {
"type": "integer"
}
},
{
"type": "null"
}
],
"title": "Pernoctas Ids",
"default": null
},
"extender_hasta_id": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Extender Hasta Id",
"default": null
},
"solo_paso_final_id": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Solo Paso Final Id",
"default": null
},
"poblacion_inicio_id": {
"type": "integer",
"title": "Poblacion Inicio Id"
},
"poblacion_destino_id": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Poblacion Destino Id",
"default": null
},
"camino_continuacion_slug": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Camino Continuacion Slug",
"default": null
}
}
}| Argument | Type | Description |
|---|---|---|
| etapas* | array | |
| mascotas | boolean | |
| meal_plan | string | |
| traslados | any | |
| extras_ids | any | |
| camino_slug | any | |
| presupuesto* | string | |
| habitaciones* | array | |
| nacionalidad | any | |
| incluir_mochila | boolean | |
| solo_paso_final | any | |
| residente_espana | any | |
| categoria_alojamiento | string |
{
"type": "object",
"$defs": {
"EtapaPaquete": {
"type": "object",
"title": "EtapaPaquete",
"required": [
"noche_num",
"poblacion_id",
"fecha_entrada",
"fecha_salida"
],
"properties": {
"noche_num": {
"type": "integer",
"title": "Noche Num",
"minimum": 1
},
"fecha_salida": {
"type": "string",
"title": "Fecha Salida",
"description": "YYYY-MM-DD (normalmente el día siguiente)"
},
"poblacion_id": {
"type": "integer",
"title": "Poblacion Id",
"description": "ID de la población de pernocta (de camino_route_towns / plan_camino_itinerary)"
},
"fecha_entrada": {
"type": "string",
"title": "Fecha Entrada",
"description": "YYYY-MM-DD"
}
}
},
"SoloPasoPaquete": {
"type": "object",
"title": "SoloPasoPaquete",
"required": [
"poblacion_id",
"fecha"
],
"properties": {
"fecha": {
"type": "string",
"title": "Fecha",
"description": "YYYY-MM-DD: check-out date of the last night"
},
"poblacion_id": {
"type": "integer",
"title": "Poblacion Id",
"description": "Town reached walking on the last day without sleeping there (plan_camino_itinerary `solo_paso_final`)"
}
}
},
"TrasladoPaquete": {
"type": "object",
"title": "TrasladoPaquete",
"required": [
"origen_poblacion_id",
"destino_poblacion_id",
"fecha",
"categoria_id"
],
"properties": {
"fecha": {
"type": "string",
"title": "Fecha",
"description": "YYYY-MM-DD del traslado"
},
"categoria_id": {
"type": "integer",
"title": "Categoria Id",
"description": "Vehículo elegido (categoria_id de camino_transfer_options)"
},
"num_pasajeros": {
"anyOf": [
{
"type": "integer",
"maximum": 20,
"minimum": 1
},
{
"type": "null"
}
],
"title": "Num Pasajeros",
"default": null,
"description": "Pasajeros; por defecto, todos los viajeros"
},
"origen_poblacion_id": {
"type": "integer",
"title": "Origen Poblacion Id",
"description": "ID de la población de recogida"
},
"destino_poblacion_id": {
"type": "integer",
"title": "Destino Poblacion Id",
"description": "ID de la población de destino"
}
},
"description": "Traslado elegido para el paquete (de camino_transfer_options)."
},
"HabitacionOcupacion": {
"type": "object",
"title": "HabitacionOcupacion",
"required": [
"adults"
],
"properties": {
"adults": {
"type": "integer",
"title": "Adults",
"maximum": 6,
"minimum": 1,
"description": "Adultos en esta habitación"
},
"children_ages": {
"type": "array",
"items": {
"type": "integer"
},
"title": "Children Ages",
"description": "Edades de los niños en esta habitación, ej [5, 8]"
}
},
"description": "Ocupación de UNA habitación."
}
},
"title": "quote_camino_packageArguments",
"required": [
"etapas",
"habitaciones",
"presupuesto"
],
"properties": {
"etapas": {
"type": "array",
"items": {
"$ref": "#/$defs/EtapaPaquete"
},
"title": "Etapas"
},
"mascotas": {
"type": "boolean",
"title": "Mascotas",
"default": false
},
"meal_plan": {
"type": "string",
"title": "Meal Plan",
"default": "BB"
},
"traslados": {
"anyOf": [
{
"type": "array",
"items": {
"$ref": "#/$defs/TrasladoPaquete"
}
},
{
"type": "null"
}
],
"title": "Traslados",
"default": null
},
"extras_ids": {
"anyOf": [
{
"type": "array",
"items": {
"type": "integer"
}
},
{
"type": "null"
}
],
"title": "Extras Ids",
"default": null
},
"camino_slug": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Camino Slug",
"default": null
},
"presupuesto": {
"type": "string",
"title": "Presupuesto"
},
"habitaciones": {
"type": "array",
"items": {
"$ref": "#/$defs/HabitacionOcupacion"
},
"title": "Habitaciones"
},
"nacionalidad": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Nacionalidad",
"default": null
},
"incluir_mochila": {
"type": "boolean",
"title": "Incluir Mochila",
"default": false
},
"solo_paso_final": {
"anyOf": [
{
"$ref": "#/$defs/SoloPasoPaquete"
},
{
"type": "null"
}
],
"default": null
},
"residente_espana": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Residente Espana",
"default": null
},
"categoria_alojamiento": {
"type": "string",
"title": "Categoria Alojamiento",
"default": "recomendado"
}
}
}{
"type": "object",
"$defs": {
"TrasladoPaquete": {
"type": "object",
"title": "TrasladoPaquete",
"required": [
"origen_poblacion_id",
"destino_poblacion_id",
"fecha",
"categoria_id"
],
"properties": {
"fecha": {
"type": "string",
"title": "Fecha",
"description": "YYYY-MM-DD del traslado"
},
"categoria_id": {
"type": "integer",
"title": "Categoria Id",
"description": "Vehículo elegido (categoria_id de camino_transfer_options)"
},
"num_pasajeros": {
"anyOf": [
{
"type": "integer",
"maximum": 20,
"minimum": 1
},
{
"type": "null"
}
],
"title": "Num Pasajeros",
"default": null,
"description": "Pasajeros; por defecto, todos los viajeros"
},
"origen_poblacion_id": {
"type": "integer",
"title": "Origen Poblacion Id",
"description": "ID de la población de recogida"
},
"destino_poblacion_id": {
"type": "integer",
"title": "Destino Poblacion Id",
"description": "ID de la población de destino"
}
},
"description": "Traslado elegido para el paquete (de camino_transfer_options)."
}
},
"title": "update_camino_package_extrasArguments",
"required": [
"oferta_paquete_firmada"
],
"properties": {
"traslados": {
"anyOf": [
{
"type": "array",
"items": {
"$ref": "#/$defs/TrasladoPaquete"
}
},
{
"type": "null"
}
],
"title": "Traslados",
"default": null
},
"extras_ids": {
"anyOf": [
{
"type": "array",
"items": {
"type": "integer"
}
},
{
"type": "null"
}
],
"title": "Extras Ids",
"default": null
},
"camino_slug": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Camino Slug",
"default": null
},
"nacionalidad": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Nacionalidad",
"default": null
},
"incluir_mochila": {
"type": "boolean",
"title": "Incluir Mochila",
"default": false
},
"residente_espana": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Residente Espana",
"default": null
},
"oferta_paquete_firmada": {
"type": "string",
"title": "Oferta Paquete Firmada"
}
}
}