Resource / 175
healthy2s.
Airports within a radius of a coordinate, sorted by distance. Query: lat (-90..90), lon (-180..180), radius_km (1-2000, default 200), limit (1-100, default 20), type (optional: large_airport|medium_airport|small_airport|heliport|seaplane_base|balloonport|closed), country (optional 2-letter ISO 3166-1), scheduled_service (optional bool, true = commercial-service airports only). Returns { query, count, airports: [{ id, ident, name, iataCode, icaoCode, type, latitude, longitude, distanceKm, ... }] }.
| State | Network | Scheme | Atomic amount | Asset | payTo / untrusted |
|---|---|---|---|---|---|
| active | eip155:8453 | exact | 2500 | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 | 0x2b6D4988Db4723E6908Db86Ab2b8dFBc51FC32C5 |
| active | solana:5eykt4usfv8p8njdtrepy1vzqkqzkvdp | exact | 2500 | EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v | TW6ntaGzvj63ZgPjszd4FCGmVTGfzv1MAYZbjYcyWhn |
All advertised payment options are stored. Base (`eip155:8453`) is the operational network for ranking and canaries; non-Base options remain visible for transparency.
healthy 2026-08-12 22:00:00 UTC GET · HTTP 402 · 39ms · accepts 2 · base 1 ok
Accepts snapshot
[
{
"amount": "2500",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"assetTransferMethod": null,
"extra": {
"name": "USD Coin",
"version": "2"
},
"maxTimeoutSeconds": 60,
"network": "eip155:8453",
"payTo": "0x2b6D4988Db4723E6908Db86Ab2b8dFBc51FC32C5",
"paymentFlow": null,
"raw": {
"amount": "2500",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"maxTimeoutSeconds": 60,
"max_timeout_seconds": 60,
"network": "eip155:8453",
"payTo": "0x2b6D4988Db4723E6908Db86Ab2b8dFBc51FC32C5",
"pay_to": "0x2b6D4988Db4723E6908Db86Ab2b8dFBc51FC32C5",
"scheme": "exact"
},
"scheme": "exact"
},
{
"amount": "2500",
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"assetTransferMethod": null,
"extra": {
"feePayer": "Hc3sdEAsCGQcpgfivywog9uwtk8gUBUZgsxdME1EJy88",
"name": "USDC",
"version": "1"
},
"maxTimeoutSeconds": 60,
"network": "solana:5eykt4usfv8p8njdtrepy1vzqkqzkvdp",
"payTo": "TW6ntaGzvj63ZgPjszd4FCGmVTGfzv1MAYZbjYcyWhn",
"paymentFlow": null,
"raw": {
"amount": "2500",
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"extra": {
"feePayer": "Hc3sdEAsCGQcpgfivywog9uwtk8gUBUZgsxdME1EJy88",
"name": "USDC",
"version": "1"
},
"maxTimeoutSeconds": 60,
"max_timeout_seconds": 60,
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"payTo": "TW6ntaGzvj63ZgPjszd4FCGmVTGfzv1MAYZbjYcyWhn",
"pay_to": "TW6ntaGzvj63ZgPjszd4FCGmVTGfzv1MAYZbjYcyWhn",
"scheme": "exact"
},
"scheme": "exact"
}
]
PaymentRequired raw
{
"accepts": [
{
"amount": "2500",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"maxTimeoutSeconds": 60,
"network": "eip155:8453",
"payTo": "0x2b6D4988Db4723E6908Db86Ab2b8dFBc51FC32C5",
"scheme": "exact"
},
{
"amount": "2500",
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"extra": {
"feePayer": "Hc3sdEAsCGQcpgfivywog9uwtk8gUBUZgsxdME1EJy88",
"name": "USDC",
"version": "1"
},
"maxTimeoutSeconds": 60,
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"payTo": "TW6ntaGzvj63ZgPjszd4FCGmVTGfzv1MAYZbjYcyWhn",
"scheme": "exact"
}
],
"error": "PAYMENT-SIGNATURE required",
"extensions": {
"bazaar": {
"info": {
"input": {
"method": "GET",
"queryParams": {
"country": "example",
"lat": -90,
"limit": 20,
"lon": -180,
"radius_km": 200,
"scheduled_service": false,
"type": "large_airport"
},
"type": "http"
}
},
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"properties": {
"method": {
"const": "GET"
},
"queryParams": {
"additionalProperties": false,
"properties": {
"country": {
"description": "Filter by ISO 3166-1 alpha-2 country code (e.g. US).",
"type": "string"
},
"lat": {
"description": "Latitude in decimal degrees (-90 to 90).",
"maximum": 90,
"minimum": -90,
"type": "number"
},
"limit": {
"default": 20,
"description": "Max airports to return (1-100). Default 20.",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"lon": {
"description": "Longitude in decimal degrees (-180 to 180).",
"maximum": 180,
"minimum": -180,
"type": "number"
},
"radius_km": {
"default": 200,
"description": "Search radius in kilometers (1-2000). Default 200.",
"maximum": 2000,
"minimum": 1,
"type": "number"
},
"scheduled_service": {
"description": "When true, only commercial-service airports.",
"type": "boolean"
},
"type": {
"description": "Filter by airport type.",
"enum": [
"large_airport",
"medium_airport",
"small_airport",
"heliport",
"seaplane_base",
"balloonport",
"closed"
],
"type": "string"
}
},
"required": [
"lat",
"lon"
],
"type": "object"
},
"type": {
"const": "http"
}
},
"required": [
"type",
"method",
"queryParams"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}
}
},
"resource": {
"description": "Airports within a radius of a coordinate, sorted by distance. Query: lat (-90..90), lon (-180..180), radius_km (1-2000, default 200), limit (1-100, default 20), type (optional: large_airport|medium_airport|small_airport|heliport|seaplane_base|balloonport|closed), country (optional 2-letter ISO 3166-1), scheduled_service (optional bool, true = commercial-service airports only). Returns { query, count, airports: [{ id, ident, name, iataCode, icaoCode, type, latitude, longitude, distanceKm, ... }] }.",
"iconUrl": "https://2s.io/icon-512.png",
"mimeType": "application/json",
"serviceName": "2s",
"tags": [
"public-records",
"identifiers",
"ai-agents",
"us-gov-data",
"x402",
"upto-billing",
"ai-gateway",
"agent-infrastructure"
],
"url": "https://2s.io/api/airport/near"
},
"x402Version": 2
}
Response headers
{
"access-control-allow-headers": "Authorization, Content-Type",
"access-control-allow-methods": "GET, POST, OPTIONS",
"access-control-allow-origin": "*",
"access-control-max-age": "86400",
"age": "0",
"cache-control": "public, max-age=0, must-revalidate",
"content-security-policy": "default-src 'none'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; connect-src 'self'; frame-ancestors 'none'; base-uri 'none'",
"content-type": "application/json",
"date": "Wed, 12 Aug 2026 22:00:00 GMT",
"payment-required": "eyJ4NDAyVmVyc2lvbiI6MiwiYWNjZXB0cyI6W3sic2NoZW1lIjoiZXhhY3QiLCJuZXR3b3JrIjoiZWlwMTU1Ojg0NTMiLCJhbW91bnQiOiIyNTAwIiwiYXNzZXQiOiIweDgzMzU4OWZDRDZlRGI2RTA4ZjRjN0MzMkQ0ZjcxYjU0YmRBMDI5MTMiLCJwYXlUbyI6IjB4MmI2RDQ5ODhEYjQ3MjNFNjkwOERiODZBYjJiOGRGQmM1MUZDMzJDNSIsIm1heFRpbWVvdXRTZWNvbmRzIjo2MCwiZXh0cmEiOnsibmFtZSI6IlVTRCBDb2luIiwidmVyc2lvbiI6IjIifX0seyJzY2hlbWUiOiJleGFjdCIsIm5ldHdvcmsiOiJzb2xhbmE6NWV5a3Q0VXNGdjhQOE5KZFRSRXBZMXZ6cUtxWkt2ZHAiLCJhbW91bnQiOiIyNTAwIiwiYXNzZXQiOiJFUGpGV2RkNUF1ZnFTU3FlTTJxTjF4enliYXBDOEc0d0VHR2tad3lURHQxdiIsInBheVRvIjoiVFc2bnRhR3p2ajYzWmdQanN6ZDRGQ0dtVlRHZnp2MU1BWVpialljeVdobiIsIm1heFRpbWVvdXRTZWNvbmRzIjo2MCwiZXh0cmEiOnsibmFtZSI6IlVTREMiLCJ2ZXJzaW9uIjoiMSIsImZlZVBheWVyIjoiSGMzc2RFQXNDR1FjcGdmaXZ5d29nOXV3dGs4Z1VCVVpnc3hkTUUxRUp5ODgifX1dLCJyZXNvdXJjZSI6eyJ1cmwiOiJodHRwczovLzJzLmlvL2FwaS9haXJwb3J0L25lYXIiLCJkZXNjcmlwdGlvbiI6IkFpcnBvcnRzIHdpdGhpbiBhIHJhZGl1cyBvZiBhIGNvb3JkaW5hdGUsIHNvcnRlZCBieSBkaXN0YW5jZS4gUXVlcnk6IGxhdCAoLTkwLi45MCksIGxvbiAoLTE4MC4uMTgwKSwgcmFkaXVzX2ttICgxLTIwMDAsIGRlZmF1bHQgMjAwKSwgbGltaXQgKDEtMTAwLCBkZWZhdWx0IDIwKSwgdHlwZSAob3B0aW9uYWw6IGxhcmdlX2FpcnBvcnR8bWVkaXVtX2FpcnBvcnR8c21hbGxfYWlycG9ydHxoZWxpcG9ydHxzZWFwbGFuZV9iYXNlfGJhbGxvb25wb3J0fGNsb3NlZCksIGNvdW50cnkgKG9wdGlvbmFsIDItbGV0dGVyIElTTyAzMTY2LTEpLCBzY2hlZHVsZWRfc2VydmljZSAob3B0aW9uYWwgYm9vbCwgdHJ1ZSA9IGNvbW1lcmNpYWwtc2VydmljZSBhaXJwb3J0cyBvbmx5KS4gUmV0dXJucyB7IHF1ZXJ5LCBjb3VudCwgYWlycG9ydHM6IFt7IGlkLCBpZGVudCwgbmFtZSwgaWF0YUNvZGUsIGljYW9Db2RlLCB0eXBlLCBsYXRpdHVkZSwgbG9uZ2l0dWRlLCBkaXN0YW5jZUttLCAuLi4gfV0gfS4iLCJtaW1lVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24iLCJzZXJ2aWNlTmFtZSI6IjJzIiwiaWNvblVybCI6Imh0dHBzOi8vMnMuaW8vaWNvbi01MTIucG5nIiwidGFncyI6WyJwdWJsaWMtcmVjb3JkcyIsImlkZW50aWZpZXJzIiwiYWktYWdlbnRzIiwidXMtZ292LWRhdGEiLCJ4NDAyIiwidXB0by1iaWxsaW5nIiwiYWktZ2F0ZXdheSIsImFnZW50LWluZnJhc3RydWN0dXJlIl19LCJlcnJvciI6IlBBWU1FTlQtU0lHTkFUVVJFIHJlcXVpcmVkIiwiZXh0ZW5zaW9ucyI6eyJiYXphYXIiOnsiaW5mbyI6eyJpbnB1dCI6eyJ0eXBlIjoiaHR0cCIsIm1ldGhvZCI6IkdFVCIsInF1ZXJ5UGFyYW1zIjp7ImxhdCI6LTkwLCJsb24iOi0xODAsInJhZGl1c19rbSI6MjAwLCJsaW1pdCI6MjAsInR5cGUiOiJsYXJnZV9haXJwb3J0IiwiY291bnRyeSI6ImV4YW1wbGUiLCJzY2hlZHVsZWRfc2VydmljZSI6ZmFsc2V9fX0sInNjaGVtYSI6eyIkc2NoZW1hIjoiaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQvMjAyMC0xMi9zY2hlbWEiLCJ0eXBlIjoib2JqZWN0IiwicHJvcGVydGllcyI6eyJpbnB1dCI6eyJ0eXBlIjoib2JqZWN0IiwicHJvcGVydGllcyI6eyJ0eXBlIjp7ImNvbnN0IjoiaHR0cCJ9LCJtZXRob2QiOnsiY29uc3QiOiJHRVQifSwicXVlcnlQYXJhbXMiOnsidHlwZSI6Im9iamVjdCIsInByb3BlcnRpZXMiOnsibGF0Ijp7InR5cGUiOiJudW1iZXIiLCJtaW5pbXVtIjotOTAsIm1heGltdW0iOjkwLCJkZXNjcmlwdGlvbiI6IkxhdGl0dWRlIGluIGRlY2ltYWwgZGVncmVlcyAoLTkwIHRvIDkwKS4ifSwibG9uIjp7InR5cGUiOiJudW1iZXIiLCJtaW5pbXVtIjotMTgwLCJtYXhpbXVtIjoxODAsImRlc2NyaXB0aW9uIjoiTG9uZ2l0dWRlIGluIGRlY2ltYWwgZGVncmVlcyAoLTE4MCB0byAxODApLiJ9LCJyYWRpdXNfa20iOnsidHlwZSI6Im51bWJlciIsIm1pbmltdW0iOjEsIm1heGltdW0iOjIwMDAsImRlZmF1bHQiOjIwMCwiZGVzY3JpcHRpb24iOiJTZWFyY2ggcmFkaXVzIGluIGtpbG9tZXRlcnMgKDEtMjAwMCkuIERlZmF1bHQgMjAwLiJ9LCJsaW1pdCI6eyJ0eXBlIjoiaW50ZWdlciIsIm1pbmltdW0iOjEsIm1heGltdW0iOjEwMCwiZGVmYXVsdCI6MjAsImRlc2NyaXB0aW9uIjoiTWF4IGFpcnBvcnRzIHRvIHJldHVybiAoMS0xMDApLiBEZWZhdWx0IDIwLiJ9LCJ0eXBlIjp7InR5cGUiOiJzdHJpbmciLCJlbnVtIjpbImxhcmdlX2FpcnBvcnQiLCJtZWRpdW1fYWlycG9ydCIsInNtYWxsX2FpcnBvcnQiLCJoZWxpcG9ydCIsInNlYXBsYW5lX2Jhc2UiLCJiYWxsb29ucG9ydCIsImNsb3NlZCJdLCJkZXNjcmlwdGlvbiI6IkZpbHRlciBieSBhaXJwb3J0IHR5cGUuIn0sImNvdW50cnkiOnsidHlwZSI6InN0cmluZyIsImRlc2NyaXB0aW9uIjoiRmlsdGVyIGJ5IElTTyAzMTY2LTEgYWxwaGEtMiBjb3VudHJ5IGNvZGUgKGUuZy4gVVMpLiJ9LCJzY2hlZHVsZWRfc2VydmljZSI6eyJ0eXBlIjoiYm9vbGVhbiIsImRlc2NyaXB0aW9uIjoiV2hlbiB0cnVlLCBvbmx5IGNvbW1lcmNpYWwtc2VydmljZSBhaXJwb3J0cy4ifX0sInJlcXVpcmVkIjpbImxhdCIsImxvbiJdLCJhZGRpdGlvbmFsUHJvcGVydGllcyI6ZmFsc2V9fSwicmVxdWlyZWQiOlsidHlwZSIsIm1ldGhvZCIsInF1ZXJ5UGFyYW1zIl19fSwicmVxdWlyZWQiOlsiaW5wdXQiXX19fX0=",
"permissions-policy": "geolocation=(), camera=(), microphone=()",
"referrer-policy": "no-referrer",
"server": "Vercel",
"strict-transport-security": "max-age=63072000; includeSubDomains; preload",
"transfer-encoding": "chunked",
"x-content-type-options": "nosniff",
"x-frame-options": "DENY",
"x-matched-path": "/api/airport/near",
"x-payment-requirements": "x402",
"x-vercel-cache": "MISS",
"x-vercel-id": "iad1::iad1::2whlp-1786572000745-7fb92541417b"
}
Response body
{
"accepts": [
{
"amount": "2500",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"maxTimeoutSeconds": 60,
"network": "eip155:8453",
"payTo": "0x2b6D4988Db4723E6908Db86Ab2b8dFBc51FC32C5",
"scheme": "exact"
},
{
"amount": "2500",
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"extra": {
"feePayer": "Hc3sdEAsCGQcpgfivywog9uwtk8gUBUZgsxdME1EJy88",
"name": "USDC",
"version": "1"
},
"maxTimeoutSeconds": 60,
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"payTo": "TW6ntaGzvj63ZgPjszd4FCGmVTGfzv1MAYZbjYcyWhn",
"scheme": "exact"
}
],
"error": "PAYMENT-SIGNATURE required",
"extensions": {
"bazaar": {
"info": {
"input": {
"method": "GET",
"queryParams": {
"country": "example",
"lat": -90,
"limit": 20,
"lon": -180,
"radius_km": 200,
"scheduled_service": false,
"type": "large_airport"
},
"type": "http"
},
"output": {
"example": {
"items": [
{
"distanceKm": 1,
"iataCode": "example",
"icaoCode": "example",
"id": 1,
"ident": "example",
"isoCountry": "example",
"isoRegion": "example",
"latitude": 1,
"longitude": 1,
"municipality": "example",
"name": "example",
"scheduledService": false,
"type": "example"
}
],
"meta": {
"query": {
"country": "example",
"latitude": 1,
"limit": 1,
"longitude": 1,
"radiusKm": 1,
"scheduledServiceOnly": false,
"type": "example"
}
},
"ok": true,
"source": {
"license": "example",
"provider": "example",
"url": "example"
},
"total": 1
},
"schema": {
"additionalProperties": false,
"properties": {
"items": {
"items": {
"additionalProperties": false,
"properties": {
"distanceKm": {
"description": "Great-circle distance to (lat, lon), kilometers.",
"type": "number"
},
"iataCode": {
"nullable": true,
"type": "string"
},
"icaoCode": {
"nullable": true,
"type": "string"
},
"id": {
"type": "integer"
},
"ident": {
"type": "string"
},
"isoCountry": {
"nullable": true,
"type": "string"
},
"isoRegion": {
"nullable": true,
"type": "string"
},
"latitude": {
"type": "number"
},
"longitude": {
"type": "number"
},
"municipality": {
"nullable": true,
"type": "string"
},
"name": {
"nullable": true,
"type": "string"
},
"scheduledService": {
"nullable": true,
"type": "boolean"
},
"type": {
"nullable": true,
"type": "string"
}
},
"required": [
"id",
"ident",
"name",
"iataCode",
"icaoCode",
"type",
"latitude",
"longitude",
"distanceKm",
"isoCountry",
"isoRegion",
"municipality",
"scheduledService"
],
"type": "object"
},
"type": "array"
},
"meta": {
"additionalProperties": false,
"properties": {
"query": {
"additionalProperties": false,
"properties": {
"country": {
"nullable": true,
"type": "string"
},
"latitude": {
"type": "number"
},
"limit": {
"type": "integer"
},
"longitude": {
"type": "number"
},
"radiusKm": {
"type": "number"
},
"scheduledServiceOnly": {
"nullable": true,
"type": "boolean"
},
"type": {
"nullable": true,
"type": "string"
}
},
"required": [
"latitude",
"longitude",
"radiusKm",
"limit",
"type",
"country",
"scheduledServiceOnly"
],
"type": "object"
}
},
"required": [
"query"
],
"type": "object"
},
"ok": {
"enum": [
true
],
"type": "boolean"
},
"source": {
"additionalProperties": false,
"properties": {
"license": {
"type": "string"
},
"provider": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"provider",
"url",
"license"
],
"type": "object"
},
"total": {
"description": "Total matching rows upstream; null when unknown.",
"nullable": true,
"type": "integer"
}
},
"required": [
"ok",
"items",
"total",
"source"
],
"type": "object"
},
"type": "json"
}
},
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"properties": {
"method": {
"const": "GET"
},
"queryParams": {
"additionalProperties": false,
"properties": {
"country": {
"description": "Filter by ISO 3166-1 alpha-2 country code (e.g. US).",
"type": "string"
},
"lat": {
"description": "Latitude in decimal degrees (-90 to 90).",
"maximum": 90,
"minimum": -90,
"type": "number"
},
"limit": {
"default": 20,
"description": "Max airports to return (1-100). Default 20.",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"lon": {
"description": "Longitude in decimal degrees (-180 to 180).",
"maximum": 180,
"minimum": -180,
"type": "number"
},
"radius_km": {
"default": 200,
"description": "Search radius in kilometers (1-2000). Default 200.",
"maximum": 2000,
"minimum": 1,
"type": "number"
},
"scheduled_service": {
"description": "When true, only commercial-service airports.",
"type": "boolean"
},
"type": {
"description": "Filter by airport type.",
"enum": [
"large_airport",
"medium_airport",
"small_airport",
"heliport",
"seaplane_base",
"balloonport",
"closed"
],
"type": "string"
}
},
"required": [
"lat",
"lon"
],
"type": "object"
},
"type": {
"const": "http"
}
},
"required": [
"type",
"method",
"queryParams"
],
"type": "object"
},
"output": {
"additionalProperties": false,
"properties": {
"items": {
"items": {
"additionalProperties": false,
"properties": {
"distanceKm": {
"description": "Great-circle distance to (lat, lon), kilometers.",
"type": "number"
},
"iataCode": {
"nullable": true,
"type": "string"
},
"icaoCode": {
"nullable": true,
"type": "string"
},
"id": {
"type": "integer"
},
"ident": {
"type": "string"
},
"isoCountry": {
"nullable": true,
"type": "string"
},
"isoRegion": {
"nullable": true,
"type": "string"
},
"latitude": {
"type": "number"
},
"longitude": {
"type": "number"
},
"municipality": {
"nullable": true,
"type": "string"
},
"name": {
"nullable": true,
"type": "string"
},
"scheduledService": {
"nullable": true,
"type": "boolean"
},
"type": {
"nullable": true,
"type": "string"
}
},
"required": [
"id",
"ident",
"name",
"iataCode",
"icaoCode",
"type",
"latitude",
"longitude",
"distanceKm",
"isoCountry",
"isoRegion",
"municipality",
"scheduledService"
],
"type": "object"
},
"type": "array"
},
"meta": {
"additionalProperties": false,
"properties": {
"query": {
"additionalProperties": false,
"properties": {
"country": {
"nullable": true,
"type": "string"
},
"latitude": {
"type": "number"
},
"limit": {
"type": "integer"
},
"longitude": {
"type": "number"
},
"radiusKm": {
"type": "number"
},
"scheduledServiceOnly": {
"nullable": true,
"type": "boolean"
},
"type": {
"nullable": true,
"type": "string"
}
},
"required": [
"latitude",
"longitude",
"radiusKm",
"limit",
"type",
"country",
"scheduledServiceOnly"
],
"type": "object"
}
},
"required": [
"query"
],
"type": "object"
},
"ok": {
"enum": [
true
],
"type": "boolean"
},
"source": {
"additionalProperties": false,
"properties": {
"license": {
"type": "string"
},
"provider": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"provider",
"url",
"license"
],
"type": "object"
},
"total": {
"description": "Total matching rows upstream; null when unknown.",
"nullable": true,
"type": "integer"
}
},
"required": [
"ok",
"items",
"total",
"source"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}
}
},
"resource": {
"description": "Airports within a radius of a coordinate, sorted by distance. Query: lat (-90..90), lon (-180..180), radius_km (1-2000, default 200), limit (1-100, default 20), type (optional: large_airport|medium_airport|small_airport|heliport|seaplane_base|balloonport|closed), country (optional 2-letter ISO 3166-1), scheduled_service (optional bool, true = commercial-service airports only). Returns { query, count, airports: [{ id, ident, name, iataCode, icaoCode, type, latitude, longitude, distanceKm, ... }] }.",
"iconUrl": "https://2s.io/icon-512.png",
"mimeType": "application/json",
"serviceName": "2s",
"tags": [
"public-records",
"identifiers",
"ai-agents",
"us-gov-data",
"x402",
"upto-billing",
"ai-gateway",
"agent-infrastructure"
],
"url": "https://2s.io/api/airport/near"
},
"x402Version": 2
}
Request headers
{
"accept": "*/*",
"user-agent": "Fetch402Bot/0.1 (+https://fetch402.com/crawler; contact: crawler@fetch402.com)"
}
Machine contract
Schemas.
{
"method": "GET",
"queryParams": {
"country": "example",
"lat": -90,
"limit": 20,
"lon": -180,
"radius_km": 200,
"scheduled_service": false,
"type": "large_airport"
},
"type": "http"
}
{}