curl --request POST \
--url https://api.anysite.io/api/omio/routes \
--header 'Content-Type: application/json' \
--header 'access-token: <api-key>' \
--data '
{
"origin": "<string>",
"destination": "<string>",
"timeout": 300
}
'import requests
url = "https://api.anysite.io/api/omio/routes"
payload = {
"origin": "<string>",
"destination": "<string>",
"timeout": 300
}
headers = {
"access-token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'access-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({origin: '<string>', destination: '<string>', timeout: 300})
};
fetch('https://api.anysite.io/api/omio/routes', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.anysite.io/api/omio/routes",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'origin' => '<string>',
'destination' => '<string>',
'timeout' => 300
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"access-token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.anysite.io/api/omio/routes"
payload := strings.NewReader("{\n \"origin\": \"<string>\",\n \"destination\": \"<string>\",\n \"timeout\": 300\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("access-token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.anysite.io/api/omio/routes")
.header("access-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"origin\": \"<string>\",\n \"destination\": \"<string>\",\n \"timeout\": 300\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.anysite.io/api/omio/routes")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["access-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"origin\": \"<string>\",\n \"destination\": \"<string>\",\n \"timeout\": 300\n}"
response = http.request(request)
puts response.read_body[
{
"@type": "OmioRoute",
"departure_id": 123,
"arrival_id": 123,
"departure_name": "<string>",
"arrival_name": "<string>",
"departure_country_code": "<string>",
"arrival_country_code": "<string>",
"departure_city_code": "<string>",
"arrival_city_code": "<string>",
"travel_mode": "<string>",
"distance_km": 123,
"duration_minutes": 123,
"cheapest_price": 123,
"cheapest_mode": "<string>",
"available_modes": [],
"provider_names": [],
"provider_codes": [],
"rating": 123,
"rating_count": 123,
"offer_count": 123,
"low_price": 123,
"mode_comparison": [],
"providers": []
}
]{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}/omio/routes
Get an overview of an Omio route (mode, origin and destination city): the departure and arrival places (name, country and city codes, Omio position ids), total distance and duration, cheapest price and mode, all available modes and operating providers, the aggregate traveller rating and offer count, a per-mode comparison (train vs bus vs flight: cheapest and average price, duration, CO2 range, directness, popularity and speed flags) and a provider breakdown with per-provider cheapest price, frequency and detail page links. Origin and destination are city slugs as used in Omio route URLs.
Price: 20 credits
⚠️ Common errors: 412: No route found for the given mode, origin and destination
curl --request POST \
--url https://api.anysite.io/api/omio/routes \
--header 'Content-Type: application/json' \
--header 'access-token: <api-key>' \
--data '
{
"origin": "<string>",
"destination": "<string>",
"timeout": 300
}
'import requests
url = "https://api.anysite.io/api/omio/routes"
payload = {
"origin": "<string>",
"destination": "<string>",
"timeout": 300
}
headers = {
"access-token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'access-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({origin: '<string>', destination: '<string>', timeout: 300})
};
fetch('https://api.anysite.io/api/omio/routes', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.anysite.io/api/omio/routes",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'origin' => '<string>',
'destination' => '<string>',
'timeout' => 300
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"access-token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.anysite.io/api/omio/routes"
payload := strings.NewReader("{\n \"origin\": \"<string>\",\n \"destination\": \"<string>\",\n \"timeout\": 300\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("access-token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.anysite.io/api/omio/routes")
.header("access-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"origin\": \"<string>\",\n \"destination\": \"<string>\",\n \"timeout\": 300\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.anysite.io/api/omio/routes")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["access-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"origin\": \"<string>\",\n \"destination\": \"<string>\",\n \"timeout\": 300\n}"
response = http.request(request)
puts response.read_body[
{
"@type": "OmioRoute",
"departure_id": 123,
"arrival_id": 123,
"departure_name": "<string>",
"arrival_name": "<string>",
"departure_country_code": "<string>",
"arrival_country_code": "<string>",
"departure_city_code": "<string>",
"arrival_city_code": "<string>",
"travel_mode": "<string>",
"distance_km": 123,
"duration_minutes": 123,
"cheapest_price": 123,
"cheapest_mode": "<string>",
"available_modes": [],
"provider_names": [],
"provider_codes": [],
"rating": 123,
"rating_count": 123,
"offer_count": 123,
"low_price": 123,
"mode_comparison": [],
"providers": []
}
]{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
API token from the dashboard
Headers
Body
Response
Successful Response
Show child attributes
Show child attributes
Show child attributes
Show child attributes