# 2s Geo Nearby — Points of Interest & Hazards by Coordinates

> 2s Geo Nearby — Points of Interest & Hazards by Coordinates is a paid API for AI agents from 2s.io, paid per call via x402, $0.0036/call, status unknown (last checked 2026-09-14).

Returns nearby airports, schools, climate stations, and earthquake records for a given latitude/longitude within a configurable radius

## Facts

- Endpoint: GET https://2s.io/api/geo/nearby
- Price: $0.0036/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/2s-geo-nearby-points-of-interest-hazards-by-coordinates-fd3ba673
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_aJfXbBffMDGQ65HQE7ZtN

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability 2s-geo-nearby-points-of-interest-hazards-by-coordinates-fd3ba673
```

Example prompt: What airports, schools, climate stations, and earthquake records are within 10 km of latitude 40.7484, longitude -73.9857? Show me up to 5 results per category.

## When to prefer this

Use this endpoint when you need a single call that aggregates multiple geospatial lookup categories (airports, schools, climate stations, seismic events) around a coordinate pair without building separate integrations. Ideal for real estate analysis, location intelligence, site selection, or any agent workflow that needs ambient infrastructure context around a point. Prefer over raw USGS/NOAA/OurAirports APIs when you want a unified, pay-per-call response with no API key setup.

## Known failure modes

- Missing lat or lon parameter returns a 400/validation error
- Coordinates outside valid range (-90 to 90 lat, -180 to 180 lon) rejected by schema
- Very remote coordinates may return found:false with empty items arrays for all categories
- radiusKm above 200 or limit above 20 rejected as out of range
- Payment not provided or insufficient USDC triggers x402 payment-required response

## How this service works

Everything around a coordinate in one call: nearby airports (IATA/ICAO, type, distance), public K-12 schools (name, district, enrollment, distance), NOAA climate stations (for chaining into /api/climate/station-history), and earthquakes from the past week (magnitude, depth, time). Pass lat/lon plus optional radiusKm (default 25, max 200) and per-category limit (default 5). Each category returns an independent found/error block, so one slow source never empties the rest. Site assessment, relocation research, travel planning, and risk screening. Each category is also a standalone endpoint (/api/airport/near, /api/edu/school-lookup, /api/climate/station-near, /api/quakes/recent).

## Output

A JSON object keyed by category (airports, schools, climateStations, quakes) each containing a count, found flag, error field, and an array of items with name, distance in km, and category-specific fields (IATA code, enrollment, station ID, etc.), plus a sources array listing the underlying open-data providers.

## Example request

```json
{
 "input": {
  "type": "http",
  "method": "GET",
  "queryParams": {
   "lat": 40.7128,
   "lon": -74.006,
   "limit": 5,
   "radiusKm": 25
  }
 }
}
```

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method",
    "queryParams"
   ],
   "properties": {
    "type": {
     "const": "http"
    },
    "method": {
     "const": "GET"
    },
    "queryParams": {
     "required": [
      "lat",
      "lon"
     ],
     "properties": {
      "lat": {
       "type": "number",
       "maximum": 90,
       "minimum": -90
      },
      "lon": {
       "type": "number",
       "maximum": 180,
       "minimum": -180
      },
      "limit": {
       "type": "integer",
       "default": 5,
       "maximum": 20,
       "minimum": 1,
       "description": "Max results per category."
      },
      "radiusKm": {
       "type": "number",
       "default": 25,
       "maximum": 200,
       "minimum": 1
      }
     }
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/2s-geo-nearby-points-of-interest-hazards-by-coordinates-fd3ba673/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from 2s.io](https://www.zero.xyz/host/2s.io/llms.txt)
