FETCH402
← Protocol index

Resource / 175

healthy

2s.

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, ... }] }.

Eligibility
probeable
Failures
0
Last quote
2026-08-12 22:00:00 UTC
Last probe
2026-08-12 22:00:00 UTC
Payment requirements / accepts[] 2 options
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.

Probe evidence 1 recent
healthy 2026-08-12 22:00:00 UTC GET · HTTP 402 · 39ms · accepts 2 · base 1 ok
Request
GET https://2s.io/api/airport/near
Robots
allow
Note
http_402;accepts=2;base=1
Accepts fingerprint
6fcb2e53e8049ab29748ddd9a2e9ed532a49654f11ec569f4e7b9fb89b260a10

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.

InputJSON
{
  "method": "GET",
  "queryParams": {
    "country": "example",
    "lat": -90,
    "limit": 20,
    "lon": -180,
    "radius_km": 200,
    "scheduled_service": false,
    "type": "large_airport"
  },
  "type": "http"
}
OutputJSON
{}