Up to 5 airports with scheduled service nearest a named place, ranked by real road driv…
Up to 5 airports with scheduled service nearest a named place, ranked by real road drive time (never a straight-line guess), with IATA and ICAO codes. airport_size 'large' keeps large airports only. Within 300 km; none in range is a 422; airports with no road…
by api.flipvo.com · discovered, not yet claimed by its owner · updated 2026-10-08
Mirrored from Coinbase's public x402 Bazaar. The description is the provider's own text and has not been reviewed here; the payment requirements are copied as published.
What it does
Up to 5 airports with scheduled service nearest a named place, ranked by real road drive time (never a straight-line guess), with IATA and ICAO codes. airport_size 'large' keeps large airports only. Within 300 km; none in range is a 422; airports with no road route are left out. OpenStreetMap routing, OurAirports data, worldwide.
Tags: geo · routing · distance · travel · airports · bazaar
Call contract
- Method
- POST
- Input
- json
- Output
- json
- Last paid call
- 2026-10-08
{
"k": 3,
"location": "Lakeland, FL"
}{
"airports": [
{
"distance_m": 13197,
"duration_s": 1020,
"iata": "LAL",
"icao": "KLAL",
"lat": 27.989267,
"lon": -82.020715,
"miles": 8.2,
"minutes": 17,
"municipality": "Lakeland",
"name": "Lakeland Linder International Airport",
"type": "medium_airport"
},
{
"distance_m": 67913,
"duration_s": 3780,
"iata": "TPA",
"icao": "KTPA",
"lat": 27.9755,
"lon": -82.533203,
"miles": 42.2,
"minutes": 63,
"municipality": "Tampa",
"name": "Tampa International Airport",
"type": "large_airport"
}
],
"airports_data_as_of": "2026-09-19T03:23:00Z",
"attribution": "© OpenStreetMap contributors | © openrouteservice.org by HeiGIT | Airport data: OurAirports (public domain)",
"origin": {
"confidence": 0.95,
"kind": "address",
"lat": 28.0395,
"lon": -81.9498,
"name": "Lakeland, Florida, United States",
"source": "photon"
}
}Use with an agent
- Discover. Agents find this listing with
GET https://bazaar.saylorinnovations.com/discovery/search?query=…, the MCP toolsearch_resources, or/discovery/resources. - Inspect. Fetch
/resources/36155.jsonfor the price and payment options. - Pay. Call
GET https://api.flipvo.com/v1/airport/nearest. The provider answers402with its payment requirements. An x402 client signs one of the options below and retries withPAYMENT-SIGNATURE. - Execute. The provider returns
200with the data. Agent Bazaar is not in the request path and never sees your payment.
For humans
You don't need an account or an API key; you need a wallet holding a small amount of USDC on Base, and an x402-capable client (see the examples below). Call the endpoint unpaid first to see exactly what it asks for.
Pricing & payment
- Price
- $0.02 / request
- Protocol
- x402 v2
- Auth
- No account or API key. Pay per request.
- Networks
- Base
- Demand
- 2 calls · 2 unique payers in 30d (public x402 Bazaar data)
x402 payment requirements
| Scheme | Network | Asset | Amount | Pay to | Timeout |
|---|---|---|---|---|---|
| exact | Base eip155:8453 | USDC | $0.02 | 0x849610c11c1e9b309235932faab6368cee7f7c57 | 300s |
accepts[] (raw JSON)
[
{
"scheme": "exact",
"network": "eip155:8453",
"payTo": "0x849610c11c1e9b309235932faab6368cee7f7c57",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "20000",
"amountUsd": 0.02,
"maxTimeoutSeconds": 300
}
]Schemas
Output schema (JSON Schema)
{
"properties": {
"example": {
"properties": {
"airports": {
"description": "Nearest first by road drive time",
"items": {
"properties": {
"distance_m": {
"title": "Distance M",
"type": "integer"
},
"duration_s": {
"title": "Duration S",
"type": "integer"
},
"iata": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "null for the few scheduled airports without one",
"title": "Iata"
},
"icao": {
"description": "OurAirports ident: the ICAO code where one exists",
"title": "Icao",
"type": "string"
},
"lat": {
"title": "Lat",
"type": "number"
},
"lon": {
"title": "Lon",
"type": "number"
},
"miles": {
"title": "Miles",
"type": "number"
},
"minutes": {
"title": "Minutes",
"type": "number"
},
"municipality": {
"title": "Municipality",
"type": "string"
},
"name": {
"title": "Name",
"type": "string"
},
"type": {
"description": "OurAirports type: large_airport, medium_airport, ...",
"title": "Type",
"type": "string"
}
},
"required": [
"iata",
"icao",
"name",
"municipality",
"type",
"lat",
"lon",
"distance_m",
"duration_s",
"miles",
"minutes"
],
"title": "AirportOut",
"type": "object"
},
"title": "Airports",
"type": "array"
},
"airports_data_as_of": {
"description": "When our OurAirports file was fetched (UTC)",
"title": "Airports Data As Of",
"type": "string"
},
"attribution": {
"title": "Attribution",
"type": "string"
},
"origin": {
"properties": {
"confidence": {
"title": "Confidence",
"type": "number"
},
"kind": {
"title": "Kind",
"type": "string"
},
"lat": {
"title": "Lat",
"type": "number"
},
"lon": {
"title": "Lon",
"type": "number"
},
"name": {
"title": "Name",
"type": "string"
},
"source": {
"title": "Source",
"type": "string"
}
},
"required": [
"name",
"lat",
"lon",
"kind",
"source",
"confidence"
],
"title": "PlaceOut",
"type": "object"
}
},
"required": [
"origin",
"airports",
"attribution",
"airports_data_as_of"
],
"title": "NearestAirportResponse",
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}Example shape — generated from the schema, not a captured live response
{
"example": {
"airports": [
{
"distance_m": 0,
"duration_s": 0,
"iata": null,
"icao": "string",
"lat": 0,
"lon": 0,
"miles": 0,
"minutes": 0,
"municipality": "string",
"name": "string",
"type": "string"
}
],
"airports_data_as_of": "string",
"attribution": "string",
"origin": {
"confidence": 0,
"kind": "string",
"lat": 0,
"lon": 0,
"name": "string",
"source": "string"
}
},
"type": "string"
}Examples
curl "https://api.flipvo.com/v1/airport/nearest"
# -> 402 Payment Required, accepts[] lists how to pay
# retry with a PAYMENT-SIGNATURE (or PAYMENT header) once paidconst res = await fetch("https://api.flipvo.com/v1/airport/nearest");
if (res.status === 402) {
const { accepts } = await res.json();
// pay one of accepts[] via an x402 client, then retry with the payment header
}import httpx
res = httpx.get("https://api.flipvo.com/v1/airport/nearest")
if res.status_code == 402:
accepts = res.json()["accepts"]
# pay one of accepts[] via an x402 client, then retry with the payment headerDetails
- Provider
- api.flipvo.com
- Endpoint
- https://api.flipvo.com/v1/airport/nearest
- Machine-readable
/resources/36155.json