/hopper/flights/prices
curl --request POST \
--url https://api.anysite.io/api/hopper/flights/prices \
--header 'Content-Type: application/json' \
--header 'access-token: <api-key>' \
--data '
{
"origin": "<string>",
"destination": "<string>",
"timeout": 300,
"trip_type": "round_trip",
"origin_type": "airport",
"destination_type": "airport"
}
'import requests
url = "https://api.anysite.io/api/hopper/flights/prices"
payload = {
"origin": "<string>",
"destination": "<string>",
"timeout": 300,
"trip_type": "round_trip",
"origin_type": "airport",
"destination_type": "airport"
}
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,
trip_type: 'round_trip',
origin_type: 'airport',
destination_type: 'airport'
})
};
fetch('https://api.anysite.io/api/hopper/flights/prices', 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/hopper/flights/prices",
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,
'trip_type' => 'round_trip',
'origin_type' => 'airport',
'destination_type' => 'airport'
]),
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/hopper/flights/prices"
payload := strings.NewReader("{\n \"origin\": \"<string>\",\n \"destination\": \"<string>\",\n \"timeout\": 300,\n \"trip_type\": \"round_trip\",\n \"origin_type\": \"airport\",\n \"destination_type\": \"airport\"\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/hopper/flights/prices")
.header("access-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"origin\": \"<string>\",\n \"destination\": \"<string>\",\n \"timeout\": 300,\n \"trip_type\": \"round_trip\",\n \"origin_type\": \"airport\",\n \"destination_type\": \"airport\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.anysite.io/api/hopper/flights/prices")
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 \"trip_type\": \"round_trip\",\n \"origin_type\": \"airport\",\n \"destination_type\": \"airport\"\n}"
response = http.request(request)
puts response.read_body[
{
"@type": "HopperFlightPriceBucket",
"price_label": "<string>",
"category": "<string>",
"dates": []
}
]{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}/hopper
/hopper/flights/prices
Get Hopper’s flight price calendar between an origin and destination (IATA airport codes or city codes). Returns price buckets that colour-code departure dates by how cheap they are — each bucket has a price label (e.g. $250+), a category (lowest, lower, higher, highest) and the list of dates that fall in that price band, so you can see when it is cheapest to fly. Resolve codes via the locations search (kind=flight).
Price: 5 credits
⚠️ Common errors: 412: No price calendar available for this route
POST
/
api
/
hopper
/
flights
/
prices
/hopper/flights/prices
curl --request POST \
--url https://api.anysite.io/api/hopper/flights/prices \
--header 'Content-Type: application/json' \
--header 'access-token: <api-key>' \
--data '
{
"origin": "<string>",
"destination": "<string>",
"timeout": 300,
"trip_type": "round_trip",
"origin_type": "airport",
"destination_type": "airport"
}
'import requests
url = "https://api.anysite.io/api/hopper/flights/prices"
payload = {
"origin": "<string>",
"destination": "<string>",
"timeout": 300,
"trip_type": "round_trip",
"origin_type": "airport",
"destination_type": "airport"
}
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,
trip_type: 'round_trip',
origin_type: 'airport',
destination_type: 'airport'
})
};
fetch('https://api.anysite.io/api/hopper/flights/prices', 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/hopper/flights/prices",
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,
'trip_type' => 'round_trip',
'origin_type' => 'airport',
'destination_type' => 'airport'
]),
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/hopper/flights/prices"
payload := strings.NewReader("{\n \"origin\": \"<string>\",\n \"destination\": \"<string>\",\n \"timeout\": 300,\n \"trip_type\": \"round_trip\",\n \"origin_type\": \"airport\",\n \"destination_type\": \"airport\"\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/hopper/flights/prices")
.header("access-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"origin\": \"<string>\",\n \"destination\": \"<string>\",\n \"timeout\": 300,\n \"trip_type\": \"round_trip\",\n \"origin_type\": \"airport\",\n \"destination_type\": \"airport\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.anysite.io/api/hopper/flights/prices")
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 \"trip_type\": \"round_trip\",\n \"origin_type\": \"airport\",\n \"destination_type\": \"airport\"\n}"
response = http.request(request)
puts response.read_body[
{
"@type": "HopperFlightPriceBucket",
"price_label": "<string>",
"category": "<string>",
"dates": []
}
]{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
API token from the dashboard
Headers
Body
application/json
Minimum string length:
1Minimum string length:
1Required range:
20 <= x <= 1500Available options:
round_trip, one_way Available options:
airport, city Available options:
airport, city ⌘I