Côte Privée: private driver in Burgundy

Private driver in Beaune, Burgundy: places, events, prices, availability, quotes, bookings.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
97%
Integridad del esquema
88%
Calidad de los nombres
95%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Hallazgos (1)

  • LOWTool 'get_prices' description lacks action verben get_prices

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~9,456Tokens (definiciones de herramientas)
~8.2 KBTamaño de respuesta típico
Impacto significativo en la atención (7.39% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "beaune-private-driver": {
      "url": "https://www.cote-privee.com/mcp"
    }
  }
}

Puntos de conexión remotos

https://www.cote-privee.com/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (11)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢search_places(query, kind, area, near, radiusKm, ...)

Wine villages, châteaux, things to do and MICHELIN-starred restaurants: id, commune, drive and price by private driver from Beaune (per vehicle, one way / same-day return), the wine day of its page and its price, page and booking link; a restaurant's stars and cheapest menu (no opening days in the data). near and radiusKm: the places around a place, nearest first. 8 results unless limit; compact drops summaries.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "maxLength": 200,
      "description": "Words in names, communes and summaries, e.g. \"abbey\", \"grand cru\"."
    },
    "kind": {
      "type": "string",
      "enum": [
        "village",
        "chateau",
        "sight",
        "restaurant"
      ]
    },
    "area": {
      "type": "string",
      "enum": [
        "beaune",
        "cote",
        "dijon",
        "south",
        "north",
        "beyond"
      ],
      "description": "cote: Côtes de Nuits and de Beaune; north: Chablis, Yonne, Auxois; south: Chalonnais, Mâconnais."
    },
    "near": {
      "type": "string",
      "maxLength": 200,
      "description": "A place id or name."
    },
    "radiusKm": {
      "type": "integer",
      "minimum": 1,
      "maximum": 60,
      "description": "Default 10."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 25
    },
    "compact": {
      "type": "boolean"
    },
    "lang": {
      "type": "string",
      "enum": [
        "en",
        "fr",
        "de",
        "zh",
        "ar"
      ],
      "description": "ar: Arabic notes, data in English."
    }
  }
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "count": {
      "type": "integer",
      "minimum": 0
    },
    "near": {
      "type": "object",
      "required": [
        "id",
        "name",
        "radiusKm"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "radiusKm": {
          "type": "number"
        }
      }
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "kind",
          "name",
          "commune",
          "area",
          "lat",
          "lon",
          "driveFromBeaune",
          "priceFromBeaune",
          "url",
          "bookUrl"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "kind": {
            "type": "string",
            "enum": [
              "village",
              "chateau",
              "sight",
              "restaurant"
            ]
          },
          "name": {
            "type": "string"
          },
          "summary": {
            "type": "string"
          },
          "commune": {
            "type": "string"
          },
          "area": {
            "type": "string",
            "enum": [
              "beaune",
              "cote",
              "dijon",
              "south",
              "north",
              "beyond"
            ]
          },
          "lat": {
            "type": "number"
          },
          "lon": {
            "type": "number"
          },
          "restaurant": {
            "type": "object",
            "required": [
              "stars",
              "menuFrom",
              "cuisine"
            ],
            "properties": {
              "stars": {
                "type": "integer",
                "minimum": 1,
                "maximum": 3
              },
              "menuFrom": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "cuisine": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          },
          "distanceKm": {
            "type": "number"
          },
          "driveFromBeaune": {
            "type": "object",
            "required": [
              "km",
              "minutes"
            ],
            "properties": {
              "km": {
                "type": "number"
              },
              "minutes": {
                "type": "number"
              }
            }
          },
          "priceFromBeaune": {
            "type": [
              "object",
              "null"
            ],
            "required": [
              "oneWay",
              "return",
              "currency",
              "perVehicle"
            ],
            "properties": {
              "oneWay": {
                "type": "number"
              },
              "return": {
                "type": "number"
              },
              "returnLater": {
                "type": "number"
              },
              "currency": {
                "type": "string",
                "enum": [
                  "EUR"
                ]
              },
              "perVehicle": {
                "type": "boolean"
              }
            }
          },
          "wineDay": {
            "type": [
              "object",
              "null"
            ],
            "required": [
              "option",
              "extraHours",
              "hours",
              "price"
            ],
            "properties": {
              "option": {
                "type": "string",
                "enum": [
                  "half",
                  "full",
                  "long"
                ]
              },
              "extraHours": {
                "type": "integer",
                "minimum": 0
              },
              "hours": {
                "type": "integer"
              },
              "price": {
                "type": "number"
              }
            }
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "markdown": {
            "type": "string",
            "format": "uri"
          },
          "service": {
            "type": "string",
            "format": "uri"
          },
          "bookUrl": {
            "type": "string",
            "format": "uri"
          }
        }
      }
    }
  },
  "required": [
    "count",
    "results"
  ]
}
🟢get_page(ref, id, url, path, lang)

A page in Markdown (a place, event, guide, service, prices, policies): facts, history, visiting, nearby, sources. ref: an id from search_places ("chateau:closvougeot"), a page address or path ("/prices") or a place name; id, url and path are the same. Without lang, an address in /fr, /de or /zh gives that language.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "ref": {
      "type": "string",
      "maxLength": 300,
      "description": "An id, address, path or name."
    },
    "id": {
      "type": "string",
      "maxLength": 300,
      "description": "Same as ref."
    },
    "url": {
      "type": "string",
      "maxLength": 300,
      "description": "Same as ref."
    },
    "path": {
      "type": "string",
      "maxLength": 300,
      "description": "Same as ref."
    },
    "lang": {
      "type": "string",
      "enum": [
        "en",
        "fr",
        "de",
        "zh",
        "ar"
      ],
      "description": "ar: Arabic notes, data in English."
    }
  }
}
🟢find_events(from, to, query, origin, limit, ...)

Wine fairs, festivals, auctions and cultural events between two dates, at their next appearance: id (event:<id>, which quote takes as to), placeId, dates and whether they are confirmed, website, and a driver quote for the day asked within the event (dated once confirmed): a wine day for a wine event in a wine village, else the ride from Beaune (or origin) and back later the same day.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "from": {
      "type": "string",
      "format": "date",
      "description": "Default today."
    },
    "to": {
      "type": "string",
      "format": "date",
      "description": "Default a year after from."
    },
    "query": {
      "type": "string",
      "maxLength": 200,
      "description": "Words, e.g. \"Hospices\", \"jazz\"."
    },
    "origin": {
      "type": "string",
      "enum": [
        "beaune",
        "dijon",
        "lyon",
        "paris",
        "geneva",
        "creusot",
        "lfsd",
        "lfgj",
        "lfgf",
        "lfgz",
        "lflh",
        "lfgi",
        "lfep"
      ],
      "description": "Start of the driver quote (default beaune)."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 40
    },
    "lang": {
      "type": "string",
      "enum": [
        "en",
        "fr",
        "de",
        "zh",
        "ar"
      ],
      "description": "ar: Arabic notes, data in English."
    }
  }
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "from": {
      "type": "string",
      "format": "date"
    },
    "to": {
      "type": "string",
      "format": "date"
    },
    "count": {
      "type": "integer",
      "minimum": 0
    },
    "events": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "name",
          "summary",
          "start",
          "end",
          "datesConfirmed",
          "where",
          "placeId",
          "category",
          "free",
          "website",
          "url",
          "bookDriver"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "summary": {
            "type": "string"
          },
          "start": {
            "type": "string",
            "format": "date"
          },
          "end": {
            "type": "string",
            "format": "date"
          },
          "datesConfirmed": {
            "type": "boolean"
          },
          "where": {
            "type": "string"
          },
          "placeId": {
            "type": [
              "string",
              "null"
            ]
          },
          "category": {
            "type": "string"
          },
          "free": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "website": {
            "type": [
              "string",
              "null"
            ]
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "bookDriver": {
            "type": "string",
            "format": "uri"
          },
          "driverQuote": {
            "type": "object",
            "required": [
              "service",
              "title",
              "price",
              "deposit",
              "bookUrl"
            ],
            "properties": {
              "service": {
                "type": "string",
                "enum": [
                  "wine-tour",
                  "driver",
                  "transfer"
                ]
              },
              "title": {
                "type": "string"
              },
              "date": {
                "type": "string",
                "format": "date"
              },
              "price": {
                "type": "number"
              },
              "deposit": {
                "type": "number"
              },
              "bookUrl": {
                "type": "string",
                "format": "uri"
              },
              "note": {
                "type": "string"
              }
            }
          }
        }
      }
    }
  },
  "required": [
    "from",
    "to",
    "count",
    "events"
  ]
}
🟢get_prices(lang)

Every price per vehicle, taxes, tolls and parking included: the cars (the Polestar 2, 4 guests, included; a Mercedes E-Class or V-Class, up to 7, on request for a supplement per day of service), wine days and which one a place needs by its distance (wineDayByDistance), driver by the hour, trips from Beaune and same-day returns, transfers, the deposit rate. Tastings are paid to the estates.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "lang": {
      "type": "string",
      "enum": [
        "en",
        "fr",
        "de",
        "zh",
        "ar"
      ],
      "description": "ar: Arabic notes, data in English."
    }
  }
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "updated": {
      "type": "string",
      "format": "date"
    },
    "validThrough": {
      "type": "string",
      "format": "date"
    },
    "currency": {
      "type": "string",
      "enum": [
        "EUR"
      ]
    },
    "perVehicle": {
      "type": "boolean"
    },
    "maxGuests": {
      "type": "integer"
    },
    "vehicle": {
      "type": "string"
    },
    "cars": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "name",
          "seats",
          "included",
          "onRequest",
          "supplementPerDay"
        ],
        "properties": {
          "id": {
            "type": "string",
            "enum": [
              "polestar",
              "eclass",
              "vclass"
            ]
          },
          "name": {
            "type": "string"
          },
          "seats": {
            "type": "integer"
          },
          "included": {
            "type": "boolean"
          },
          "onRequest": {
            "type": "boolean"
          },
          "supplementPerDay": {
            "type": "number"
          }
        }
      }
    },
    "taxesIncluded": {
      "type": "boolean"
    },
    "tollsAndParkingIncluded": {
      "type": "boolean"
    },
    "tastingsIncluded": {
      "type": "boolean"
    },
    "tastingsNote": {
      "type": "string"
    },
    "depositRate": {
      "type": "number"
    },
    "wineDays": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "option",
          "name",
          "hours",
          "price",
          "extraHour",
          "url"
        ],
        "properties": {
          "option": {
            "type": "string",
            "enum": [
              "half",
              "full",
              "long"
            ]
          },
          "name": {
            "type": "string"
          },
          "hours": {
            "type": "integer"
          },
          "price": {
            "type": "number"
          },
          "extraHour": {
            "type": "number"
          },
          "url": {
            "type": "string",
            "format": "uri"
          }
        }
      }
    },
    "wineDayByDistance": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "upToKm",
          "option",
          "extraHours",
          "hours",
          "price",
          "name",
          "examples"
        ],
        "properties": {
          "upToKm": {
            "type": [
              "number",
              "null"
            ]
          },
          "option": {
            "type": "string",
            "enum": [
              "half",
              "full",
              "long"
            ]
          },
          "extraHours": {
            "type": "integer",
            "minimum": 0
          },
          "hours": {
            "type": "integer"
          },
          "price": {
            "type": "number"
          },
          "name": {
            "type": "string"
          },
          "examples": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      }
    },
    "driverByTheHour": {
      "type": "object",
      "required": [
        "price",
        "minHours",
        "maxHours",
        "url"
      ],
      "properties": {
        "price": {
          "type": "number"
        },
        "minHours": {
          "type": "integer"
        },
        "maxHours": {
          "type": "integer"
        },
        "url": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    "tripsFromBeaune": {
      "type": "object",
      "required": [
        "from",
        "url"
      ],
      "properties": {
        "from": {
          "type": "number"
        },
        "url": {
          "type": "string",
          "format": "uri"
        },
        "returnWaitHours": {
          "type": "number"
        },
        "returnFactor": {
          "type": "number"
        },
        "laterRides": {
          "type": "integer"
        }
      }
    },
    "transfers": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "route",
          "name",
          "oneWay",
          "returnTrip",
          "url"
        ],
        "properties": {
          "route": {
            "type": "string",
            "enum": [
              "lyon",
              "paris",
              "dijon",
              "geneva",
              "creusot",
              "lfsd",
              "lfgj"
            ]
          },
          "name": {
            "type": "string"
          },
          "oneWay": {
            "type": "number"
          },
          "returnTrip": {
            "type": "number"
          },
          "url": {
            "type": "string",
            "format": "uri"
          }
        }
      }
    },
    "pricesPage": {
      "type": "string",
      "format": "uri"
    }
  },
  "required": [
    "updated",
    "validThrough",
    "currency",
    "perVehicle",
    "maxGuests",
    "vehicle",
    "cars",
    "taxesIncluded",
    "tollsAndParkingIncluded",
    "tastingsIncluded",
    "depositRate",
    "wineDays",
    "wineDayByDistance",
    "driverByTheHour",
    "tripsFromBeaune",
    "transfers",
    "pricesPage"
  ]
}
🟢get_policies(lang)

The booking rules as facts: the cars and the guests each takes, deposit, booking window and today in Beaune, service hours, luggage, waiting, cancellation, child seats, languages, the hours bookings are answered, the kind of licence and the SIREN, and the FAQ answers about them. A rule not published yet is null or left out.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "lang": {
      "type": "string",
      "enum": [
        "en",
        "fr",
        "de",
        "zh",
        "ar"
      ],
      "description": "ar: Arabic notes, data in English."
    }
  }
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "vehicle": {
      "type": "object",
      "required": [
        "model",
        "electric",
        "seats",
        "features"
      ],
      "properties": {
        "model": {
          "type": "string"
        },
        "electric": {
          "type": "boolean"
        },
        "seats": {
          "type": "integer"
        },
        "features": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "cars": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "name",
          "seats",
          "included",
          "onRequest",
          "supplementPerDay"
        ],
        "properties": {
          "id": {
            "type": "string",
            "enum": [
              "polestar",
              "eclass",
              "vclass"
            ]
          },
          "name": {
            "type": "string"
          },
          "seats": {
            "type": "integer"
          },
          "included": {
            "type": "boolean"
          },
          "onRequest": {
            "type": "boolean"
          },
          "supplementPerDay": {
            "type": "number"
          }
        }
      }
    },
    "guests": {
      "type": "object",
      "required": [
        "max",
        "standardCar",
        "pricesPerVehicle",
        "byCar",
        "note"
      ],
      "properties": {
        "max": {
          "type": "integer"
        },
        "standardCar": {
          "type": "integer"
        },
        "pricesPerVehicle": {
          "type": "boolean"
        },
        "byCar": {
          "type": "object",
          "additionalProperties": {
            "type": "integer"
          }
        },
        "note": {
          "type": "string"
        }
      }
    },
    "deposit": {
      "type": "object",
      "required": [
        "rate",
        "payment"
      ],
      "properties": {
        "rate": {
          "type": "number"
        },
        "payment": {
          "type": "string"
        }
      }
    },
    "booking": {
      "type": "object",
      "required": [
        "advanceOnly",
        "earliest",
        "latest",
        "monthsAhead",
        "page",
        "today",
        "timezone"
      ],
      "properties": {
        "advanceOnly": {
          "type": "boolean"
        },
        "earliest": {
          "type": "string",
          "format": "date"
        },
        "latest": {
          "type": "string",
          "format": "date"
        },
        "monthsAhead": {
          "type": "integer"
        },
        "page": {
          "type": "string",
          "format": "uri"
        },
        "today": {
          "type": "string",
          "format": "date"
        },
        "timezone": {
          "type": "string"
        }
      }
    },
    "serviceHours": {
      "type": "object",
      "additionalProperties": {
        "type": "object",
        "required": [
          "from",
          "to"
        ],
        "properties": {
          "from": {
            "type": "string"
          },
          "to": {
            "type": "string"
          }
        }
      }
    },
    "luggage": {
      "type": "object",
      "required": [
        "maxBags",
        "bagsWithoutNote",
        "largeWithFourGuests",
        "cabinWithFourGuests",
        "wineCases",
        "notes"
      ],
      "properties": {
        "maxBags": {
          "type": "integer"
        },
        "bagsWithoutNote": {
          "type": "integer"
        },
        "largeWithFourGuests": {
          "type": [
            "number",
            "null"
          ]
        },
        "cabinWithFourGuests": {
          "type": [
            "number",
            "null"
          ]
        },
        "wineCases": {
          "type": [
            "number",
            "null"
          ]
        },
        "notes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "waiting": {
      "type": "object",
      "required": [
        "returnWaitHours",
        "freeMinutes",
        "feePer15Min",
        "delays"
      ],
      "properties": {
        "returnWaitHours": {
          "type": "number"
        },
        "freeMinutes": {
          "type": "object",
          "required": [
            "airport",
            "station",
            "address"
          ],
          "properties": {
            "airport": {
              "type": [
                "number",
                "null"
              ]
            },
            "station": {
              "type": [
                "number",
                "null"
              ]
            },
            "address": {
              "type": [
                "number",
                "null"
              ]
            }
          }
        },
        "feePer15Min": {
          "type": [
            "number",
            "null"
          ]
        },
        "delays": {
          "type": "string"
        }
      }
    },
    "cancellation": {
      "type": "object",
      "required": [
        "freeUntilHoursBefore",
        "refundDays"
      ],
      "properties": {
        "freeUntilHoursBefore": {
          "type": [
            "number",
            "null"
          ]
        },
        "refundDays": {
          "type": [
            "number",
            "null"
          ]
        }
      }
    },
    "childSeats": {
      "type": "object",
      "required": [
        "onRequest",
        "seats",
        "answer"
      ],
      "properties": {
        "onRequest": {
          "type": "boolean"
        },
        "seats": {
          "type": [
            "number",
            "null"
          ]
        },
        "answer": {
          "type": "string"
        }
      }
    },
    "languages": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "hours": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "days",
          "opens",
          "closes"
        ],
        "properties": {
          "days": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "opens": {
            "type": "string"
          },
          "closes": {
            "type": "string"
          }
        }
      }
    },
    "licence": {
      "type": "object",
      "required": [
        "kind",
        "siren",
        "insurer"
      ],
      "properties": {
        "kind": {
          "type": "string"
        },
        "siren": {
          "type": [
            "string",
            "null"
          ]
        },
        "insurer": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "answers": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "question",
          "answer",
          "url"
        ],
        "properties": {
          "question": {
            "type": "string"
          },
          "answer": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "format": "uri"
          }
        }
      }
    },
    "termsFinal": {
      "type": "boolean"
    },
    "pages": {
      "type": "object",
      "required": [
        "prices",
        "faq",
        "terms"
      ],
      "properties": {
        "prices": {
          "type": "string",
          "format": "uri"
        },
        "faq": {
          "type": "string",
          "format": "uri"
        },
        "terms": {
          "type": "string",
          "format": "uri"
        }
      }
    }
  },
  "required": [
    "vehicle",
    "cars",
    "guests",
    "deposit",
    "booking",
    "serviceHours",
    "luggage",
    "waiting",
    "cancellation",
    "childSeats",
    "languages",
    "hours",
    "licence",
    "answers",
    "termsFinal",
    "pages"
  ]
}
🟢check_availability(date, days, service, time, lang)

Whether the one car and its driver are free on a day and the next days: free; pending (a request awaits the driver's answer and may still be confirmed); busy; unbookable (outside the booking rules: tomorrow to 18 months ahead, Beaune time, within the service's hours). With the hours held, the next free days, the sources read, when, today's date, the page to cite (url, pricesUrl) and a booking link. The driver confirms every booking.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "date": {
      "type": "string",
      "format": "date"
    },
    "days": {
      "type": "integer",
      "minimum": 1,
      "maximum": 31
    },
    "service": {
      "type": "string",
      "enum": [
        "wine-tour",
        "driver",
        "transfer"
      ]
    },
    "time": {
      "type": "string",
      "pattern": "^\\d\\d:\\d\\d$",
      "description": "Pickup."
    },
    "lang": {
      "type": "string",
      "enum": [
        "en",
        "fr",
        "de",
        "zh",
        "ar"
      ],
      "description": "ar: Arabic notes, data in English."
    }
  },
  "required": [
    "date"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "date": {
      "type": "string",
      "format": "date"
    },
    "service": {
      "type": "string",
      "enum": [
        "wine-tour",
        "driver",
        "transfer"
      ]
    },
    "time": {
      "type": "string"
    },
    "state": {
      "type": "string",
      "enum": [
        "free",
        "pending",
        "busy",
        "unbookable",
        "unknown"
      ]
    },
    "days": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "date",
          "state",
          "held"
        ],
        "properties": {
          "date": {
            "type": "string",
            "format": "date"
          },
          "state": {
            "type": "string",
            "enum": [
              "free",
              "pending",
              "busy",
              "unbookable"
            ]
          },
          "held": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "from",
                "to",
                "state"
              ],
              "properties": {
                "from": {
                  "type": "string"
                },
                "to": {
                  "type": "string"
                },
                "state": {
                  "type": "string",
                  "enum": [
                    "pending",
                    "busy"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "nextFree": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "date"
      }
    },
    "sources": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "bookings",
          "calendar"
        ]
      }
    },
    "checkedAt": {
      "type": "string",
      "format": "date-time"
    },
    "rules": {
      "type": "object",
      "required": [
        "accepted",
        "earliest",
        "latest",
        "problems"
      ],
      "properties": {
        "accepted": {
          "type": "boolean"
        },
        "earliest": {
          "type": "string",
          "format": "date"
        },
        "latest": {
          "type": "string",
          "format": "date"
        },
        "hours": {
          "type": "object",
          "required": [
            "from",
            "to"
          ],
          "properties": {
            "from": {
              "type": "string"
            },
            "to": {
              "type": "string"
            }
          }
        },
        "problems": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "field",
              "code",
              "message"
            ],
            "properties": {
              "field": {
                "type": "string"
              },
              "code": {
                "type": "string"
              },
              "allowed": {
                "type": [
                  "object",
                  "array"
                ],
                "additionalProperties": {
                  "type": "string"
                },
                "items": {
                  "type": "string"
                }
              },
              "expected": {
                "type": "string"
              },
              "candidates": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "id",
                    "kind",
                    "name"
                  ],
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "kind": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    }
                  }
                }
              },
              "message": {
                "type": "string"
              },
              "messageLocalized": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "today": {
      "type": "string",
      "format": "date"
    },
    "timezone": {
      "type": "string"
    },
    "note": {
      "type": "string"
    },
    "url": {
      "type": "string",
      "format": "uri"
    },
    "pricesUrl": {
      "type": "string",
      "format": "uri"
    },
    "bookUrl": {
      "type": "string",
      "format": "uri"
    }
  },
  "required": [
    "date",
    "state",
    "days",
    "nextFree",
    "sources",
    "checkedAt",
    "rules",
    "today",
    "timezone",
    "note",
    "url",
    "pricesUrl"
  ]
}
🟢quote(service, option, route, from, to, ...)

The exact price the booking page charges for one service, or a whole trip (items: one total, one deposit), the page of the priced service to cite (url; pricesUrl: every price) and a link that opens the booking page filled in (time, guests and bags too). Wine day: option and stops; a day too short for its stops is priced as the one they need (optionRaised). Driver: hours (and stops), or to from Beaune or from; returnTrip: the driver waits up to 3 h; returnLater: back later (2 rides). Transfer: route (its id, its page slug such as lyon-beaune, or a name such as "Lyon airport"), or from and to. A Mercedes adds its supplement per day of service; over 4 guests, the V-Class (carRaised). resolved: what each name became (an unknown place or route is an error with candidates); alternatives: cheaper products for the same job; availability: with date.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "service": {
      "type": "string",
      "enum": [
        "wine-tour",
        "driver",
        "transfer"
      ]
    },
    "option": {
      "type": "string",
      "enum": [
        "half",
        "full",
        "long"
      ],
      "description": "Wine day: half 4 h, full 8 h, long 12 h."
    },
    "route": {
      "type": "string",
      "maxLength": 120,
      "description": "A transfer route, by id or page slug (lyon (lyon-beaune), paris (paris-beaune), dijon (dijon-beaune), geneva (geneva-beaune), creusot (le-creusot-tgv-beaune), lfsd (dijon-airport-beaune), lfgj (dole-jura-airport-beaune)) or by name (\"Lyon airport\", \"Dijon-Bourgogne\", \"Dole\"): a transfer to or from Beaune (creusot: Le Creusot TGV; lfsd, lfgj: the airports)."
    },
    "from": {
      "type": "string",
      "enum": [
        "beaune",
        "dijon",
        "lyon",
        "paris",
        "geneva",
        "creusot",
        "lfsd",
        "lfgj",
        "lfgf",
        "lfgz",
        "lflh",
        "lfgi",
        "lfep"
      ],
      "description": "Start of a driver trip, or of a transfer to another place; airfields by ICAO code."
    },
    "to": {
      "type": "string",
      "maxLength": 200,
      "description": "A place id or name, or event:<id>."
    },
    "hours": {
      "type": "integer",
      "minimum": 3,
      "maximum": 12,
      "description": "Driver by the hour."
    },
    "extraHours": {
      "type": "integer",
      "minimum": 0,
      "maximum": 3,
      "description": "Wine day; default what its stops need."
    },
    "returnTrip": {
      "type": "boolean",
      "description": "Driver: back the same day, the driver waiting. Transfer: a trip back another day."
    },
    "returnLater": {
      "type": "boolean",
      "description": "Driver: back later the same day (two rides)."
    },
    "stops": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 120
      },
      "maxItems": 12,
      "description": "Places of a wine day, or of the driver by the hour."
    },
    "date": {
      "type": "string",
      "format": "date"
    },
    "time": {
      "type": "string",
      "pattern": "^\\d\\d:\\d\\d$",
      "description": "Pickup (a transfer to Beaune: the arrival)."
    },
    "guests": {
      "type": "integer",
      "minimum": 1,
      "maximum": 7,
      "description": "4 in the Polestar 2 or the E-Class, 7 in the V-Class."
    },
    "luggage": {
      "type": "integer",
      "minimum": 0,
      "maximum": 6,
      "description": "Bags."
    },
    "notes": {
      "type": "string",
      "maxLength": 1000,
      "description": "For the driver: estates to visit, child seats…"
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object"
      },
      "maxItems": 6,
      "description": "Several services (at most 6), each with the fields above."
    },
    "car": {
      "type": "string",
      "enum": [
        "polestar",
        "eclass",
        "vclass"
      ],
      "description": "polestar (included), eclass (4 guests) or vclass (7): the Mercedes on request, a supplement per day of service."
    },
    "lang": {
      "type": "string",
      "enum": [
        "en",
        "fr",
        "de",
        "zh",
        "ar"
      ],
      "description": "ar: Arabic notes, data in English."
    }
  }
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "service": {
      "type": "string",
      "enum": [
        "wine-tour",
        "driver",
        "transfer",
        "trip"
      ]
    },
    "option": {
      "type": "string",
      "enum": [
        "half",
        "full",
        "long"
      ]
    },
    "extraHours": {
      "type": "integer",
      "minimum": 0
    },
    "optionRaised": {
      "type": "object",
      "required": [
        "from",
        "to",
        "reason"
      ],
      "properties": {
        "from": {
          "type": "string",
          "enum": [
            "half",
            "full",
            "long"
          ]
        },
        "to": {
          "type": "string",
          "enum": [
            "half",
            "full",
            "long"
          ]
        },
        "extraHours": {
          "type": "integer",
          "minimum": 0
        },
        "reason": {
          "type": "string"
        }
      }
    },
    "title": {
      "type": "string"
    },
    "details": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "drive": {
      "type": "object",
      "required": [
        "km",
        "minutes"
      ],
      "properties": {
        "km": {
          "type": "number"
        },
        "minutes": {
          "type": "number"
        }
      }
    },
    "date": {
      "type": "string",
      "format": "date"
    },
    "time": {
      "type": "string"
    },
    "luggage": {
      "type": "integer"
    },
    "services": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "service",
          "title",
          "details",
          "servicePrice",
          "url"
        ],
        "properties": {
          "service": {
            "type": "string",
            "enum": [
              "wine-tour",
              "driver",
              "transfer"
            ]
          },
          "option": {
            "type": "string",
            "enum": [
              "half",
              "full",
              "long"
            ]
          },
          "extraHours": {
            "type": "integer",
            "minimum": 0
          },
          "optionRaised": {
            "type": "object",
            "required": [
              "from",
              "to",
              "reason"
            ],
            "properties": {
              "from": {
                "type": "string",
                "enum": [
                  "half",
                  "full",
                  "long"
                ]
              },
              "to": {
                "type": "string",
                "enum": [
                  "half",
                  "full",
                  "long"
                ]
              },
              "extraHours": {
                "type": "integer",
                "minimum": 0
              },
              "reason": {
                "type": "string"
              }
            }
          },
          "title": {
            "type": "string"
          },
          "details": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "drive": {
            "type": "object",
            "required": [
              "km",
              "minutes"
            ],
            "properties": {
              "km": {
                "type": "number"
              },
              "minutes": {
                "type": "number"
              }
            }
          },
          "date": {
            "type": "string",
            "format": "date"
          },
          "time": {
            "type": "string"
          },
          "luggage": {
            "type": "integer"
          },
          "servicePrice": {
            "type": "number"
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "availability": {
            "type": "object",
            "required": [
              "state"
            ],
            "properties": {
              "state": {
                "type": "string",
                "enum": [
                  "free",
                  "pending",
                  "busy"
                ]
              },
              "nextFree": {
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "date"
                }
              },
              "conflicts": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "item",
                    "date",
                    "from",
                    "to",
                    "state"
                  ],
                  "properties": {
                    "item": {
                      "type": "integer"
                    },
                    "date": {
                      "type": "string",
                      "format": "date"
                    },
                    "from": {
                      "type": "string"
                    },
                    "to": {
                      "type": "string"
                    },
                    "state": {
                      "type": "string",
                      "enum": [
                        "pending",
                        "busy"
                      ]
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "price": {
      "type": "number"
    },
    "servicePrice": {
      "type": "number"
    },
    "car": {
      "type": "object",
      "required": [
        "id",
        "name",
        "seats",
        "onRequest",
        "supplementPerDay",
        "days",
        "supplement"
      ],
      "properties": {
        "id": {
          "type": "string",
          "enum": [
            "polestar",
            "eclass",
            "vclass"
          ]
        },
        "name": {
          "type": "string"
        },
        "seats": {
          "type": "integer"
        },
        "onRequest": {
          "type": "boolean"
        },
        "supplementPerDay": {
          "type": "number"
        },
        "days": {
          "type": "integer",
          "minimum": 1
        },
        "supplement": {
          "type": "number"
        }
      }
    },
    "carRaised": {
      "type": "object",
      "required": [
        "from",
        "to",
        "reason"
      ],
      "properties": {
        "from": {
          "type": "string"
        },
        "to": {
          "type": "string",
          "enum": [
            "polestar",
            "eclass",
            "vclass"
          ]
        },
        "reason": {
          "type": "string"
        }
      }
    },
    "currency": {
      "type": "string",
      "enum": [
        "EUR"
      ]
    },
    "perVehicle": {
      "type": "boolean"
    },
    "guests": {
      "type": "integer"
    },
    "maxGuests": {
      "type": "integer"
    },
    "deposit": {
      "type": "number"
    },
    "balance": {
      "type": "number"
    },
    "tastingsIncluded": {
      "type": "boolean"
    },
    "fits": {
      "type": "object",
      "required": [
        "guests",
        "luggage"
      ],
      "properties": {
        "guests": {
          "type": "boolean"
        },
        "luggage": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "suggestCar": {
          "type": "string",
          "enum": [
            "polestar",
            "eclass",
            "vclass"
          ]
        },
        "note": {
          "type": "string"
        }
      }
    },
    "alternatives": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "label",
          "price",
          "bookUrl",
          "why"
        ],
        "properties": {
          "label": {
            "type": "string"
          },
          "price": {
            "type": "number"
          },
          "bookUrl": {
            "type": "string",
            "format": "uri"
          },
          "why": {
            "type": "string"
          }
        }
      }
    },
    "availability": {
      "type": "object",
      "required": [
        "state"
      ],
      "properties": {
        "state": {
          "type": "string",
          "enum": [
            "free",
            "pending",
            "busy"
          ]
        },
        "nextFree": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "date"
          }
        },
        "conflicts": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "item",
              "date",
              "from",
              "to",
              "state"
            ],
            "properties": {
              "item": {
                "type": "integer"
              },
              "date": {
                "type": "string",
                "format": "date"
              },
              "from": {
                "type": "string"
              },
              "to": {
                "type": "string"
              },
              "state": {
                "type": "string",
                "enum": [
                  "pending",
                  "busy"
                ]
              }
            }
          }
        }
      }
    },
    "resolved": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "asked",
          "id",
          "kind",
          "name",
          "how"
        ],
        "properties": {
          "asked": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "how": {
            "type": "string",
            "enum": [
              "id",
              "name",
              "typo",
              "partial",
              "event"
            ]
          },
          "place": {
            "type": "string"
          }
        }
      }
    },
    "notFound": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "url": {
      "type": "string",
      "format": "uri"
    },
    "pricesUrl": {
      "type": "string",
      "format": "uri"
    },
    "bookUrl": {
      "type": "string",
      "format": "uri"
    }
  },
  "required": [
    "service",
    "title",
    "details",
    "price",
    "servicePrice",
    "car",
    "currency",
    "perVehicle",
    "guests",
    "maxGuests",
    "deposit",
    "tastingsIncluded",
    "resolved",
    "notFound",
    "url",
    "pricesUrl",
    "bookUrl"
  ]
}
🟢plan_wine_day(stops, date, time, guests, car, ...)

A timed wine day through the places asked: its length (with the extra hours their distance needs), the stops in order, the drives from and back to Beaune (or from), lunch where the day reaches midday (at a starred table among the stops, else a slot with the starred tables near it), the end time, the price for the guests and their car (the V-Class beyond 4), the page of that wine day (url) and a booking link.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "stops": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 120
      },
      "maxItems": 12,
      "description": "Place ids or names."
    },
    "date": {
      "type": "string",
      "format": "date"
    },
    "time": {
      "type": "string",
      "pattern": "^\\d\\d:\\d\\d$",
      "description": "Pickup."
    },
    "guests": {
      "type": "integer",
      "minimum": 1,
      "maximum": 7
    },
    "car": {
      "type": "string",
      "enum": [
        "polestar",
        "eclass",
        "vclass"
      ],
      "description": "polestar (included), eclass (4 guests) or vclass (7): the Mercedes on request, a supplement per day of service."
    },
    "from": {
      "type": "string",
      "enum": [
        "beaune",
        "dijon",
        "lyon",
        "paris",
        "geneva",
        "creusot",
        "lfsd",
        "lfgj",
        "lfgf",
        "lfgz",
        "lflh",
        "lfgi",
        "lfep"
      ],
      "description": "Start and end (default beaune)."
    },
    "lunch": {
      "type": "string",
      "maxLength": 120,
      "description": "\"yes\", or a place to have lunch near."
    },
    "lang": {
      "type": "string",
      "enum": [
        "en",
        "fr",
        "de",
        "zh",
        "ar"
      ],
      "description": "ar: Arabic notes, data in English."
    }
  },
  "required": [
    "stops"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "day": {
      "type": "string",
      "enum": [
        "half",
        "full",
        "long"
      ]
    },
    "extraHours": {
      "type": "integer",
      "minimum": 0
    },
    "hours": {
      "type": "integer"
    },
    "start": {
      "type": "string"
    },
    "end": {
      "type": "string"
    },
    "guests": {
      "type": "integer"
    },
    "car": {
      "type": "object",
      "required": [
        "id",
        "name",
        "seats",
        "onRequest",
        "supplementPerDay",
        "days",
        "supplement"
      ],
      "properties": {
        "id": {
          "type": "string",
          "enum": [
            "polestar",
            "eclass",
            "vclass"
          ]
        },
        "name": {
          "type": "string"
        },
        "seats": {
          "type": "integer"
        },
        "onRequest": {
          "type": "boolean"
        },
        "supplementPerDay": {
          "type": "number"
        },
        "days": {
          "type": "integer",
          "minimum": 1
        },
        "supplement": {
          "type": "number"
        }
      }
    },
    "price": {
      "type": "number"
    },
    "deposit": {
      "type": "number"
    },
    "schedule": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "time",
          "kind"
        ],
        "properties": {
          "time": {
            "type": "string"
          },
          "until": {
            "type": "string"
          },
          "kind": {
            "type": "string",
            "enum": [
              "pickup",
              "visit",
              "lunch",
              "back"
            ]
          },
          "place": {
            "type": "object",
            "required": [
              "id",
              "name"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "legs": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "from",
          "to",
          "minutes"
        ],
        "properties": {
          "from": {
            "type": "string"
          },
          "to": {
            "type": "string"
          },
          "minutes": {
            "type": "number"
          }
        }
      }
    },
    "stops": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "kind",
          "name",
          "line"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "kind": {
            "type": "string",
            "enum": [
              "village",
              "chateau",
              "sight",
              "restaurant"
            ]
          },
          "name": {
            "type": "string"
          },
          "line": {
            "type": "string"
          }
        }
      }
    },
    "lunch": {
      "type": "object",
      "required": [
        "at",
        "until",
        "near",
        "tables",
        "note"
      ],
      "properties": {
        "at": {
          "type": "string"
        },
        "until": {
          "type": "string"
        },
        "near": {
          "type": "string"
        },
        "note": {
          "type": "string"
        },
        "tables": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "id",
              "name",
              "commune",
              "stars",
              "menuFrom",
              "distanceKm"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "commune": {
                "type": "string"
              },
              "stars": {
                "type": "integer"
              },
              "menuFrom": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "distanceKm": {
                "type": "number"
              }
            }
          }
        }
      }
    },
    "availability": {
      "type": "object",
      "required": [
        "state"
      ],
      "properties": {
        "state": {
          "type": "string",
          "enum": [
            "free",
            "pending",
            "busy"
          ]
        },
        "nextFree": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "date"
          }
        },
        "conflicts": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "item",
              "date",
              "from",
              "to",
              "state"
            ],
            "properties": {
              "item": {
                "type": "integer"
              },
              "date": {
                "type": "string",
                "format": "date"
              },
              "from": {
                "type": "string"
              },
              "to": {
                "type": "string"
              },
              "state": {
                "type": "string",
                "enum": [
                  "pending",
                  "busy"
                ]
              }
            }
          }
        }
      }
    },
    "resolved": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "asked",
          "id",
          "kind",
          "name",
          "how"
        ],
        "properties": {
          "asked": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "how": {
            "type": "string",
            "enum": [
              "id",
              "name",
              "typo",
              "partial",
              "event"
            ]
          },
          "place": {
            "type": "string"
          }
        }
      }
    },
    "notFound": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "url": {
      "type": "string",
      "format": "uri"
    },
    "pricesUrl": {
      "type": "string",
      "format": "uri"
    },
    "bookUrl": {
      "type": "string",
      "format": "uri"
    },
    "note": {
      "type": "string"
    }
  },
  "required": [
    "day",
    "extraHours",
    "hours",
    "start",
    "end",
    "guests",
    "car",
    "price",
    "deposit",
    "schedule",
    "legs",
    "stops",
    "resolved",
    "notFound",
    "url",
    "pricesUrl",
    "bookUrl",
    "note"
  ]
}
🟢find_packages(query, days, arrive, pace, theme, ...)

Ready-made trips of one to seven days from Beaune, in plans (where the travellers arrive, the pace): the driver meets them at a station or airport, takes them to the vineyards, abbeys or tables and back. Each plan is priced per vehicle as the sum of its services; hotels, tastings, meals and visits are the traveller's own. startDate dates each service and the booking link; request_booking takes the plan's id as package. 6 results unless limit, cheapest first.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "maxLength": 200
    },
    "days": {
      "type": "integer",
      "minimum": 1,
      "maximum": 7
    },
    "arrive": {
      "type": "string",
      "enum": [
        "beaune",
        "dijon",
        "lyon",
        "paris",
        "geneva",
        "creusot",
        "lfsd",
        "lfgj",
        "lfgf",
        "lfgz",
        "lflh",
        "lfgi",
        "lfep",
        "air"
      ],
      "description": "beaune (its station or the hotel), dijon (Dijon-Ville: the TGV from Paris), paris (collected in Paris), an airport or airfield, or air for any."
    },
    "pace": {
      "type": "string",
      "enum": [
        "light",
        "full"
      ],
      "description": "light: one or two outings a day; full: with wine days."
    },
    "theme": {
      "type": "string",
      "enum": [
        "first",
        "nuits",
        "whites",
        "chablis",
        "south",
        "heritage",
        "food",
        "family",
        "cycling",
        "seasons",
        "journeys"
      ]
    },
    "maxPrice": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100000
    },
    "startDate": {
      "type": "string",
      "format": "date"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20
    },
    "lang": {
      "type": "string",
      "enum": [
        "en",
        "fr",
        "de",
        "zh",
        "ar"
      ],
      "description": "ar: Arabic notes, data in English."
    }
  }
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "count": {
      "type": "integer",
      "minimum": 0
    },
    "packages": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "itinerary",
          "variant",
          "title",
          "days",
          "pace",
          "theme",
          "arrive",
          "depart",
          "route",
          "price",
          "currency",
          "perVehicle",
          "deposit",
          "services",
          "plan",
          "url",
          "markdown",
          "bookUrl"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "itinerary": {
            "type": "string"
          },
          "variant": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "summary": {
            "type": "string"
          },
          "days": {
            "type": "integer",
            "minimum": 1,
            "maximum": 7
          },
          "pace": {
            "type": "string",
            "enum": [
              "light",
              "full"
            ]
          },
          "theme": {
            "type": "string",
            "enum": [
              "first",
              "nuits",
              "whites",
              "chablis",
              "south",
              "heritage",
              "food",
              "family",
              "cycling",
              "seasons",
              "journeys"
            ]
          },
          "themeName": {
            "type": "string"
          },
          "arrive": {
            "type": "string"
          },
          "depart": {
            "type": "string"
          },
          "route": {
            "type": "string"
          },
          "price": {
            "type": "number"
          },
          "currency": {
            "type": "string",
            "enum": [
              "EUR"
            ]
          },
          "perVehicle": {
            "type": "boolean"
          },
          "deposit": {
            "type": "number"
          },
          "startDate": {
            "type": "string",
            "format": "date"
          },
          "endDate": {
            "type": "string",
            "format": "date"
          },
          "services": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "day",
                "service",
                "title",
                "price"
              ],
              "properties": {
                "day": {
                  "type": "integer"
                },
                "date": {
                  "type": "string",
                  "format": "date"
                },
                "service": {
                  "type": "string"
                },
                "title": {
                  "type": "string"
                },
                "price": {
                  "type": "number"
                }
              }
            }
          },
          "plan": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "day",
                "title",
                "legs"
              ],
              "properties": {
                "day": {
                  "type": "integer"
                },
                "title": {
                  "type": "string"
                },
                "legs": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "title",
                      "detail"
                    ],
                    "properties": {
                      "time": {
                        "type": "string"
                      },
                      "until": {
                        "type": "string"
                      },
                      "title": {
                        "type": "string"
                      },
                      "url": {
                        "type": "string",
                        "format": "uri"
                      },
                      "detail": {
                        "type": "string"
                      },
                      "note": {
                        "type": "string"
                      },
                      "price": {
                        "type": "number"
                      },
                      "places": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "required": [
                            "name",
                            "url"
                          ],
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "url": {
                              "type": "string",
                              "format": "uri"
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "markdown": {
            "type": "string",
            "format": "uri"
          },
          "bookUrl": {
            "type": "string",
            "format": "uri"
          }
        }
      }
    }
  },
  "required": [
    "count",
    "packages"
  ]
}
🟢request_booking(service, option, route, from, to, ...)

Sends a booking request as the booking page does, once the traveller has seen the price and accepted the terms of sale (https://www.cote-privee.com/terms): one service (the fields of quote, with date, time and pickup), several (items) or a plan of find_packages (package, startDate), and the traveller's details. Nothing is charged: the traveller gets the request by e-mail, the driver confirms or declines it, and the confirmation says how to pay the 30% deposit (next says it for this request). dry_run checks and prices without sending; the same request within a day, or the same requestId, answers the same reference. Only valid requests count against the limits; a refusal names each argument to fix and what is allowed (retryAfter after a limit).

Esquema de entrada

{
  "type": "object",
  "properties": {
    "service": {
      "type": "string",
      "enum": [
        "wine-tour",
        "driver",
        "transfer"
      ]
    },
    "option": {
      "type": "string",
      "enum": [
        "half",
        "full",
        "long"
      ]
    },
    "route": {
      "type": "string",
      "maxLength": 120
    },
    "from": {
      "type": "string",
      "enum": [
        "beaune",
        "dijon",
        "lyon",
        "paris",
        "geneva",
        "creusot",
        "lfsd",
        "lfgj",
        "lfgf",
        "lfgz",
        "lflh",
        "lfgi",
        "lfep"
      ]
    },
    "to": {
      "type": "string",
      "maxLength": 200
    },
    "hours": {
      "type": "integer",
      "minimum": 3,
      "maximum": 12
    },
    "extraHours": {
      "type": "integer",
      "minimum": 0,
      "maximum": 3
    },
    "returnTrip": {
      "type": "boolean"
    },
    "returnLater": {
      "type": "boolean"
    },
    "stops": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 120
      },
      "maxItems": 12
    },
    "date": {
      "type": "string",
      "format": "date"
    },
    "time": {
      "type": "string",
      "pattern": "^\\d\\d:\\d\\d$"
    },
    "guests": {
      "type": "integer",
      "minimum": 1,
      "maximum": 7
    },
    "luggage": {
      "type": "integer",
      "minimum": 0,
      "maximum": 6
    },
    "notes": {
      "type": "string",
      "maxLength": 1500
    },
    "pickup": {
      "type": "string",
      "maxLength": 300,
      "description": "Pickup address (a hotel, a street); a transfer to Beaune: the drop-off."
    },
    "flight": {
      "type": "string",
      "maxLength": 20,
      "description": "Flight or train."
    },
    "direction": {
      "type": "string",
      "enum": [
        "to",
        "from"
      ],
      "description": "Transfer: to Beaune (default) or from it."
    },
    "returnDate": {
      "type": "string",
      "format": "date"
    },
    "returnTime": {
      "type": "string",
      "pattern": "^\\d\\d:\\d\\d$"
    },
    "returnFlight": {
      "type": "string",
      "maxLength": 20
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object"
      },
      "maxItems": 6,
      "description": "Several services (at most 6), each with the fields above."
    },
    "package": {
      "type": "string",
      "maxLength": 80,
      "description": "A plan id of find_packages."
    },
    "startDate": {
      "type": "string",
      "format": "date",
      "description": "The package's first day."
    },
    "car": {
      "type": "string",
      "enum": [
        "polestar",
        "eclass",
        "vclass"
      ]
    },
    "name": {
      "type": "string",
      "maxLength": 120
    },
    "email": {
      "type": "string",
      "format": "email",
      "maxLength": 160
    },
    "phone": {
      "type": "string",
      "maxLength": 40
    },
    "accept_terms": {
      "type": "boolean",
      "description": "true only once the traveller has accepted the terms of sale."
    },
    "dry_run": {
      "type": "boolean"
    },
    "requestId": {
      "type": "string",
      "maxLength": 64,
      "description": "8 to 64 letters, digits, - or _."
    },
    "lang": {
      "type": "string",
      "enum": [
        "en",
        "fr",
        "de",
        "zh",
        "ar"
      ],
      "description": "ar: Arabic notes, data in English."
    }
  },
  "required": [
    "name",
    "email",
    "phone",
    "accept_terms"
  ]
}
🟢get_booking_status(ref, email, lang)

What became of a booking request: requested (no answer yet), confirmed (with the deposit link once it can be paid), declined (with the driver's note), deposit_paid or cancelled, its days and amounts. Needs the reference and the e-mail address of the request.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "ref": {
      "type": "string",
      "maxLength": 20,
      "description": "CP-XXX-XXX"
    },
    "email": {
      "type": "string",
      "format": "email",
      "maxLength": 160
    },
    "lang": {
      "type": "string",
      "enum": [
        "en",
        "fr",
        "de",
        "zh",
        "ar"
      ],
      "description": "ar: Arabic notes, data in English."
    }
  },
  "required": [
    "ref",
    "email"
  ]
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada11 herramientas