Cheap multi-country trips and non-stop fares by day in Europe and Southeast Asia
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.
Finds cheap trips through several cities and countries in Europe or Southeast Asia, strung from non-stop one-way fares seen in the last few days: you give a start city (or a home airport outside the region: the trip then starts with a flight from the nearest big airport we have fares from), a window for the first flight, how many places and nights in each, and a flight budget, and optionally the kinds of place (beaches, islands, capitals ...), countries to keep to or skip and cities per country; it picks the cities. Returns the cheapest three trips, each with its flights, fare ages, cabin-bag notes and a link to the trip on faredice.com.
home: the last flight returns to the start city (with home, to the airport the trip flew in through). Default anywhere.
Start city: a name ("Lisbon") or IATA city code ("LIS"), "anywhere" to start in any of the region's busiest cities, or a country ("anywhere in Germany", "Spain") to start in any of its cities. Needed unless home is given.
The traveller's home airport when it is outside the region: a town ("Calgary", "London, Ontario") or IATA code ("YYC"). Trips then start with a flight in from the nearest big airport we have fares from (Toronto, New York, Sydney ...), usually with a stop, and from there it's the same trip. The budget covers that flight; getting from home to that airport isn't in the prices. With home, from is used only when we can't fly from that home.
Earliest day for the first flight, YYYY-MM-DD. Fares cover about the next 90 days. Default: a week from today.
Latest day for the first flight, YYYY-MM-DD. Default: two weeks after start.
Where the trip goes. Default europe.
true: the traveller takes a cabin bag (the wheeled one for the overhead locker), so the budget and the ranking count each flight's usual price for one where we know it; a flight whose bag price we don't know counts €35, the dearest bag price we know, so the total is an estimate (see unpriced_cabin_bags). Default false: fares alone.
ISO country codes ("ES", "PT"): every stop is in one of these.
ISO country codes of the traveller's passports ("US", "IN"): countries that need a visa in advance are left out.
With passports: only countries that need no visa of any kind, leaving out e-visas, ETAs and visas on arrival as well as visas needed before flying.
Most to spend on all the flights, in euros, for all the travellers together (up to 5,000 each).
Valid visas the traveller already holds, with passports: "schengen" opens the Schengen area (its days counted against 90 in any 180) and the countries outside it that admit Schengen visa holders; "uk" and "us" open the countries that admit holders of those. The traveller still checks the visa's own dates and entries.
Most nights in each place.
Fewest nights in each place.
Most places to stay in. Default 12, any number.
Fewest places to stay in. Default 4.
How many adults travel together. Default 1. Every price in the answer, and the budget, is then for all of them.
Only places whose typical daytime high for the month of the stay is at least this many °C, from long-term weather station averages (a place without them is left out). For winter sun in Europe.
With home: after region, fly on to this other region and home from there, in one trip (europe then southeast-asia, or the reverse). Three long flights: home into region, one across (from or to London or Paris), and home from then_region; each a separate ticket, all in the total and the budget. Homes: Vancouver or Los Angeles, or an airport within 1,000 km of them. The trip always ends home; places_min splits between the regions. A budget of about 2,000 euros fits most.
Kinds of place, from our notes on each city: per kind, "only" (every stop is one), "none" (no stop is one) or at least n stops of it (1-4), e.g. {"beaches": 2, "capitals": "none"}. One kind can be "only". Ski counts only from December to mid-April, and only in Europe. The start and the return don't count as stops.
ISO country codes to leave out of the trip.
Most cities in any one country. Default 1; 0 for any number (answers write it "any").
Finds cheap trips through several cities and countries in Europe or Southeast Asia, strung from non-stop one-way fares seen in the last few days: you give a start city (or a home airport outside the region: the trip then starts with a flight from the nearest big airport we have fares from), a window for the first flight, how many places and nights in each, and a flight budget, and optionally the kinds of place (beaches, islands, capitals ...), countries to keep to or skip and cities per country; it picks the cities. Returns the cheapest three trips, each with its flights, fare ages, cabin-bag notes and a link to the trip on faredice.com.
| Argument | Type | Description |
|---|---|---|
| end | string | home: the last flight returns to the start city (with home, to the airport the trip flew in through). Default anywhere. |
| from | string | Start city: a name ("Lisbon") or IATA city code ("LIS"), "anywhere" to start in any of the region's busiest cities, or a country ("anywhere in Germany", "Spain") to start in any of its cities. Needed unless home is given. |
| home | string | The traveller's home airport when it is outside the region: a town ("Calgary", "London, Ontario") or IATA code ("YYC"). Trips then start with a flight in from the nearest big airport we have fares from (Toronto, New York, Sydney ...), usually with a stop, and from there it's the same trip. The budget covers that flight; getting from home to that airport isn't in the prices. With home, from is used only when we can't fly from that home. |
| start | string | Earliest day for the first flight, YYYY-MM-DD. Fares cover about the next 90 days. Default: a week from today. |
| until | string | Latest day for the first flight, YYYY-MM-DD. Default: two weeks after start. |
| region | string | Where the trip goes. Default europe. |
| cabin_bag | boolean | true: the traveller takes a cabin bag (the wheeled one for the overhead locker), so the budget and the ranking count each flight's usual price for one where we know it; a flight whose bag price we don't know counts €35, the dearest bag price we know, so the total is an estimate (see unpriced_cabin_bags). Default false: fares alone. |
| countries | array | ISO country codes ("ES", "PT"): every stop is in one of these. |
| passports | array | ISO country codes of the traveller's passports ("US", "IN"): countries that need a visa in advance are left out. |
| visa_free | boolean | With passports: only countries that need no visa of any kind, leaving out e-visas, ETAs and visas on arrival as well as visas needed before flying. |
| budget_eur | integer | Most to spend on all the flights, in euros, for all the travellers together (up to 5,000 each). |
| held_visas | array | Valid visas the traveller already holds, with passports: "schengen" opens the Schengen area (its days counted against 90 in any 180) and the countries outside it that admit Schengen visa holders; "uk" and "us" open the countries that admit holders of those. The traveller still checks the visa's own dates and entries. |
| nights_max | integer | Most nights in each place. |
| nights_min | integer | Fewest nights in each place. |
| places_max | integer | Most places to stay in. Default 12, any number. |
| places_min | integer | Fewest places to stay in. Default 4. |
| travellers | integer | How many adults travel together. Default 1. Every price in the answer, and the budget, is then for all of them. |
| warm_min_c | integer | Only places whose typical daytime high for the month of the stay is at least this many °C, from long-term weather station averages (a place without them is left out). For winter sun in Europe. |
| then_region | string | With home: after region, fly on to this other region and home from there, in one trip (europe then southeast-asia, or the reverse). Three long flights: home into region, one across (from or to London or Paris), and home from then_region; each a separate ticket, all in the total and the budget. Homes: Vancouver or Los Angeles, or an airport within 1,000 km of them. The trip always ends home; places_min splits between the regions. A budget of about 2,000 euros fits most. |
| kinds_of_place | object | Kinds of place, from our notes on each city: per kind, "only" (every stop is one), "none" (no stop is one) or at least n stops of it (1-4), e.g. {"beaches": 2, "capitals": "none"}. One kind can be "only". Ski counts only from December to mid-April, and only in Europe. The start and the return don't count as stops. |
| skip_countries | array | ISO country codes to leave out of the trip. |
| cities_per_country | integer | Most cities in any one country. Default 1; 0 for any number (answers write it "any"). |
{
"type": "object",
"required": [],
"properties": {
"end": {
"enum": [
"home",
"anywhere"
],
"type": "string",
"description": "home: the last flight returns to the start city (with home, to the airport the trip flew in through). Default anywhere."
},
"from": {
"type": "string",
"description": "Start city: a name (\"Lisbon\") or IATA city code (\"LIS\"), \"anywhere\" to start in any of the region's busiest cities, or a country (\"anywhere in Germany\", \"Spain\") to start in any of its cities. Needed unless home is given."
},
"home": {
"type": "string",
"description": "The traveller's home airport when it is outside the region: a town (\"Calgary\", \"London, Ontario\") or IATA code (\"YYC\"). Trips then start with a flight in from the nearest big airport we have fares from (Toronto, New York, Sydney ...), usually with a stop, and from there it's the same trip. The budget covers that flight; getting from home to that airport isn't in the prices. With home, from is used only when we can't fly from that home."
},
"start": {
"type": "string",
"description": "Earliest day for the first flight, YYYY-MM-DD. Fares cover about the next 90 days. Default: a week from today."
},
"until": {
"type": "string",
"description": "Latest day for the first flight, YYYY-MM-DD. Default: two weeks after start."
},
"region": {
"enum": [
"europe",
"southeast-asia"
],
"type": "string",
"description": "Where the trip goes. Default europe."
},
"cabin_bag": {
"type": "boolean",
"description": "true: the traveller takes a cabin bag (the wheeled one for the overhead locker), so the budget and the ranking count each flight's usual price for one where we know it; a flight whose bag price we don't know counts €35, the dearest bag price we know, so the total is an estimate (see unpriced_cabin_bags). Default false: fares alone."
},
"countries": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 12,
"description": "ISO country codes (\"ES\", \"PT\"): every stop is in one of these."
},
"passports": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 2,
"description": "ISO country codes of the traveller's passports (\"US\", \"IN\"): countries that need a visa in advance are left out."
},
"visa_free": {
"type": "boolean",
"description": "With passports: only countries that need no visa of any kind, leaving out e-visas, ETAs and visas on arrival as well as visas needed before flying."
},
"budget_eur": {
"type": "integer",
"maximum": 30000,
"minimum": 20,
"description": "Most to spend on all the flights, in euros, for all the travellers together (up to 5,000 each)."
},
"held_visas": {
"type": "array",
"items": {
"enum": [
"schengen",
"uk",
"us"
],
"type": "string"
},
"maxItems": 3,
"description": "Valid visas the traveller already holds, with passports: \"schengen\" opens the Schengen area (its days counted against 90 in any 180) and the countries outside it that admit Schengen visa holders; \"uk\" and \"us\" open the countries that admit holders of those. The traveller still checks the visa's own dates and entries."
},
"nights_max": {
"type": "integer",
"maximum": 14,
"minimum": 1,
"description": "Most nights in each place."
},
"nights_min": {
"type": "integer",
"maximum": 10,
"minimum": 1,
"description": "Fewest nights in each place."
},
"places_max": {
"type": "integer",
"maximum": 12,
"minimum": 1,
"description": "Most places to stay in. Default 12, any number."
},
"places_min": {
"type": "integer",
"maximum": 12,
"minimum": 1,
"description": "Fewest places to stay in. Default 4."
},
"travellers": {
"type": "integer",
"maximum": 6,
"minimum": 1,
"description": "How many adults travel together. Default 1. Every price in the answer, and the budget, is then for all of them."
},
"warm_min_c": {
"enum": [
16,
18,
20,
22,
25
],
"type": "integer",
"description": "Only places whose typical daytime high for the month of the stay is at least this many °C, from long-term weather station averages (a place without them is left out). For winter sun in Europe."
},
"then_region": {
"enum": [
"europe",
"southeast-asia"
],
"type": "string",
"description": "With home: after region, fly on to this other region and home from there, in one trip (europe then southeast-asia, or the reverse). Three long flights: home into region, one across (from or to London or Paris), and home from then_region; each a separate ticket, all in the total and the budget. Homes: Vancouver or Los Angeles, or an airport within 1,000 km of them. The trip always ends home; places_min splits between the regions. A budget of about 2,000 euros fits most."
},
"kinds_of_place": {
"type": "object",
"properties": {
"ski": {
"oneOf": [
{
"type": "integer",
"maximum": 4,
"minimum": 1
},
{
"enum": [
"only",
"none"
],
"type": "string"
}
]
},
"lakes": {
"oneOf": [
{
"type": "integer",
"maximum": 4,
"minimum": 1
},
{
"enum": [
"only",
"none"
],
"type": "string"
}
]
},
"beaches": {
"oneOf": [
{
"type": "integer",
"maximum": 4,
"minimum": 1
},
{
"enum": [
"only",
"none"
],
"type": "string"
}
]
},
"islands": {
"oneOf": [
{
"type": "integer",
"maximum": 4,
"minimum": 1
},
{
"enum": [
"only",
"none"
],
"type": "string"
}
]
},
"capitals": {
"oneOf": [
{
"type": "integer",
"maximum": 4,
"minimum": 1
},
{
"enum": [
"only",
"none"
],
"type": "string"
}
]
},
"mountains": {
"oneOf": [
{
"type": "integer",
"maximum": 4,
"minimum": 1
},
{
"enum": [
"only",
"none"
],
"type": "string"
}
]
},
"old_towns": {
"oneOf": [
{
"type": "integer",
"maximum": 4,
"minimum": 1
},
{
"enum": [
"only",
"none"
],
"type": "string"
}
]
},
"small_towns": {
"oneOf": [
{
"type": "integer",
"maximum": 4,
"minimum": 1
},
{
"enum": [
"only",
"none"
],
"type": "string"
}
]
}
},
"description": "Kinds of place, from our notes on each city: per kind, \"only\" (every stop is one), \"none\" (no stop is one) or at least n stops of it (1-4), e.g. {\"beaches\": 2, \"capitals\": \"none\"}. One kind can be \"only\". Ski counts only from December to mid-April, and only in Europe. The start and the return don't count as stops.",
"additionalProperties": false
},
"skip_countries": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 20,
"description": "ISO country codes to leave out of the trip."
},
"cities_per_country": {
"type": "integer",
"maximum": 3,
"minimum": 0,
"description": "Most cities in any one country. Default 1; 0 for any number (answers write it \"any\")."
}
},
"additionalProperties": false
}The cheapest one-way fare seen on each day of the next three months or so from one city to another in Europe or Southeast Asia (non-stop flights), or on a long flight between a big airport outside the region and one of its cities (any stops): each day's price, its age and airline, the cheapest by month, the airlines with how many days they fly it and their cabin bag rule, the cheapest the other way, and a link to the route's page on faredice.com.
| Argument | Type | Description |
|---|---|---|
| to* | string | A city by name ("Berlin", "Krakow", "Saigon") or IATA city code ("BER"). For a long flight, one end can be a big airport outside the region we have fares from (Vancouver, Toronto, New York, Sydney, London for Southeast Asia ...). |
| from* | string | A city by name ("Berlin", "Krakow", "Saigon") or IATA city code ("BER"). For a long flight, one end can be a big airport outside the region we have fares from (Vancouver, Toronto, New York, Sydney, London for Southeast Asia ...). |
| month | string | Only this month's days: YYYY-MM or a month's name ("november"). Default every day we have. |
| region | string | europe or southeast-asia. Default: the first region where both places are found, Europe first. |
{
"type": "object",
"required": [
"from",
"to"
],
"properties": {
"to": {
"type": "string",
"description": "A city by name (\"Berlin\", \"Krakow\", \"Saigon\") or IATA city code (\"BER\"). For a long flight, one end can be a big airport outside the region we have fares from (Vancouver, Toronto, New York, Sydney, London for Southeast Asia ...)."
},
"from": {
"type": "string",
"description": "A city by name (\"Berlin\", \"Krakow\", \"Saigon\") or IATA city code (\"BER\"). For a long flight, one end can be a big airport outside the region we have fares from (Vancouver, Toronto, New York, Sydney, London for Southeast Asia ...)."
},
"month": {
"type": "string",
"description": "Only this month's days: YYYY-MM or a month's name (\"november\"). Default every day we have."
},
"region": {
"enum": [
"europe",
"southeast-asia"
],
"type": "string",
"description": "europe or southeast-asia. Default: the first region where both places are found, Europe first."
}
},
"additionalProperties": false
}Every city one city in Europe or Southeast Asia flies to non-stop over the next three months or so (or that a big airport outside the region flies to, any stops), cheapest first: each with its cheapest fare, the day, its age and airline, how many days have fares and the airlines, and links to each route's page on faredice.com.
| Argument | Type | Description |
|---|---|---|
| from* | string | A city by name ("Berlin", "Krakow", "Saigon") or IATA city code ("BER"). For a long flight, one end can be a big airport outside the region we have fares from (Vancouver, Toronto, New York, Sydney, London for Southeast Asia ...). |
| region | string | europe or southeast-asia. Default: the first region where both places are found, Europe first. |
| max_results | integer | Most cities to list, cheapest first. Default 30. |
{
"type": "object",
"required": [
"from"
],
"properties": {
"from": {
"type": "string",
"description": "A city by name (\"Berlin\", \"Krakow\", \"Saigon\") or IATA city code (\"BER\"). For a long flight, one end can be a big airport outside the region we have fares from (Vancouver, Toronto, New York, Sydney, London for Southeast Asia ...)."
},
"region": {
"enum": [
"europe",
"southeast-asia"
],
"type": "string",
"description": "europe or southeast-asia. Default: the first region where both places are found, Europe first."
},
"max_results": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Most cities to list, cheapest first. Default 30."
}
},
"additionalProperties": false
}