StableTravel
GET stabletravel.dev/api/google-flights/booking
Why an agent can trust this route.
Sonar evidence is advisory. Paid delivery is shown as verified only when paid probes are available; otherwise route estimates use the unpaid handshake as a clearly labeled proxy.
Observed outcomes
Get booking options for a specific flight. Requires a departure_token from a search result.
Resource: stabletravel.dev/api/google-flights/booking
Network: eip155:8453, solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp · Asset: 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 · Pay to: 0xDd257723b86B4947483905cdAcBbBC70fACF2ec0
Payment methods: — · Last validation: 2026-10-15 11:36:46.053+00
{
"input": {
"type": "object",
"required": [
"type",
"method"
],
"properties": {
"type": {
"type": "string",
"const": "http"
},
"method": {
"enum": [
"GET",
"HEAD",
"DELETE"
],
"type": "string"
},
"queryParams": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"departure_id",
"arrival_id",
"outbound_date",
"type",
"adults",
"children",
"infants_in_seat",
"infants_on_lap",
"currency",
"hl",
"departure_token"
],
"properties": {
"hl": {
"type": "string",
"default": "en"
},
"type": {
"enum": [
"1",
"2",
"3"
],
"type": "string",
"default": "1",
"description": "1 = Round trip, 2 = One way, 3 = Multi-city"
},
"adults": {
"type": "integer",
"default": 1,
"maximum": 9,
"minimum": 1
},
"children": {
"type": "integer",
"default": 0,
"maximum": 9,
"minimum": 0
},
"currency": {
"type": "string",
"default": "USD",
"maxLength": 3,
"minLength": 3
},
"arrival_id": {
"type": "string"
},
"return_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"departure_id": {
"type": "string"
},
"travel_class": {
"enum": [
"1",
"2",
"3",
"4"
],
"type": "string",
"description": "1 = Economy, 2 = Premium economy, 3 = Business, 4 = First"
},
"outbound_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"infants_on_lap": {
"type": "integer",
"default": 0,
"maximum": 9,
"minimum": 0
},
"departure_token": {
"type": "string",
"description": "Token from a search result to get booking options"
},
"infants_in_seat": {
"type": "integer",
"default": 0,
"maximum": 9,
"minimum": 0
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"output": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string"
},
"example": {
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"price_insights": {
"type": "object",
"properties": {
"price_level": {
"type": "string"
},
"lowest_price": {
"type": "number"
},
"price_history": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
}
}
},
"typical_price_range": {
"type": "array",
"items": {
"type": "number"
}
}
},
"additionalProperties": false
},
"booking_options": {
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"price": {
"type": "number"
},
"book_with": {
"type": "string"
},
"extensions": {
"type": "array",
"items": {
"type": "string"
}
},
"airline_logo": {
"type": "string"
},
"local_prices": {
"type": "array",
"items": {
"type": "object",
"properties": {
"price": {
"type": "number"
},
"currency": {
"type": "string"
}
},
"additionalProperties": false
}
},
"option_title": {
"type": "string"
},
"baggage_prices": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
}
},
"search_metadata": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"selected_flights": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"price": {
"type": "number"
},
"flights": {
"type": "array",
"items": {
"type": "object",
"properties": {
"airline": {
"type": "string"
},
"legroom": {
"type": "string"
},
"airplane": {
"type": "string"
},
"duration": {
"type": "number"
},
"overnight": {
"type": "boolean"
},
"extensions": {
"type": "array",
"items": {
"type": "string"
}
},
"airline_logo": {
"type": "string"
},
"travel_class": {
"type": "string"
},
"flight_number": {
"type": "string"
},
"arrival_airport": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"time": {
"type": "string"
}
},
"additionalProperties": false
},
"departure_airport": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"time": {
"type": "string"
}
},
"additionalProperties": false
},
"often_delayed_by_over_30_min": {
"type": "boolean"
}
},
"additionalProperties": false
}
},
"layovers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"duration": {
"type": "number"
},
"overnight": {
"type": "boolean"
}
},
"additionalProperties": false
}
},
"extensions": {
"type": "array",
"items": {
"type": "string"
}
},
"airline_logo": {
"type": "string"
},
"total_duration": {
"type": "number"
},
"departure_token": {
"type": "string"
},
"carbon_emissions": {
"type": "object",
"properties": {
"this_flight": {
"type": "number"
},
"difference_percent": {
"type": "number"
},
"typical_for_this_route": {
"type": "number"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
},
"search_parameters": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"additionalProperties": false
}
}
},
"paymentRequirements": [
{
"raw": {
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"payTo": "0xDd257723b86B4947483905cdAcBbBC70fACF2ec0",
"amount": "20000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 300
},
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"payTo": "0xDd257723b86B4947483905cdAcBbBC70fACF2ec0",
"scheme": "exact",
"network": "eip155:8453",
"amountAtomic": "20000"
},
{
"raw": {
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"extra": {
"feePayer": "CjNFTjvBhbJJd2B5ePPMHRLx1ELZpa8dwQgGL727eKww",
"recentBlockhash": "23RbBjpzJdyJPK9RpmuNqMTQHo8hwyc4UFbtj6ZwGs1M",
"lastValidBlockHeight": "435229586"
},
"payTo": "6u5LMGQC2qk9peNibahmRWxGVXrBypk8nhTCcqtiuqMY",
"amount": "20000",
"scheme": "exact",
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"maxTimeoutSeconds": 300
},
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"payTo": "6u5LMGQC2qk9peNibahmRWxGVXrBypk8nhTCcqtiuqMY",
"scheme": "exact",
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"amountAtomic": "20000"
}
]
}Source catalog records are retained separately from live endpoint observations. Sonar score, uptime, and latency are advisory metrics. CDP indexing is not inferred from validation.