How to get a satellite image of any place with an API
POST https://tanod.dev/v1/geo/satellite-image takes coordinates (lat and lon) or a place name and returns a recent satellite picture of the area as a base64 PNG, with the capture date, the cloud cover, the source and the attribution line.
When to use it
Use it when an agent has to look at a place: check on a site or a field, see whether a river has flooded, spot a burn scar or a new building, or just attach a picture to a report. Besides true colour it can return a vegetation view (NDVI) and a water view (NDWI) of the same scene, with clouds painted grey, and it takes a target date and a cloud limit.
Where the pictures come from
The picture is Copernicus Sentinel-2 L2A at 10 m per pixel (a street is visible, a house is a few pixels), read from the public AWS Open Data bucket through the Element84 Earth Search catalogue. Each place is revisited about every 5 days, so the least cloudy recent scene is returned together with its date. For areas wider than 10 km (radius_m over 10000), and where Sentinel-2 has no scene (open ocean, polar night), true colour comes from NASA GIBS (MODIS, about 250 m per pixel, daily); NDVI and NDWI need Sentinel-2.
An example
image.data_base64)curl -s -X POST https://tanod.dev/v1/geo/satellite-image \
-H 'X-Tanod-Free: 1' -H 'content-type: application/json' \
-d '{"place": "Manila, PH", "size": 512}' \
| jq -r .image.data_base64 | base64 -d > manila.png{
"lat": 14.6042, "lon": 120.9822, "radius_m": 2560, "view": "true_color",
"place": {"name": "Manila", "country_code": "PH", ...},
"date": "2026-10-03", "captured_at": "2026-10-03T02:33:38Z",
"scene": {"id": "S2C_51PTS_20261003_0_L2A", "platform": "sentinel-2c"},
"cloud_cover_scene_pct": 25.9, "cloud_cover_window_pct": 12.3, "resolution_m": 10.0,
"image": {"format": "png", "width_px": 512, "height_px": 512, "bytes": 459954, "data_base64": "iVBORw0KGgo..."},
"attribution": "Contains modified Copernicus Sentinel data 2026", "fallback": null
}What you send
latandlon, orplace(a city name such asManila, PH, resolved offline from GeoNames; cities of 15,000 or more people). Not both.date(optional, YYYY-MM-DD): the nearest scene within 15 days that is clear enough. Without it, the newest clear scene of the last 60 days.max_cloud(0 to 100, default 30): the most cloud accepted, as a percent of the pictured area (measured from the Sentinel-2 scene classification, not the whole scene).view:true_color(default),ndvi(vegetation: (NIR - red) / (NIR + red)) orndwi(open water: (green - NIR) / (green + NIR)). Index views come with alegend; clouds and cloud shadow are painted grey.size(128 to 1024 pixels, default 512) andradius_m(250 to 100000, default 2560: half the side of the square, about 10 m per pixel at 512 px).
Paying: the 402 flow
Leave out the X-Tanod-Free header (or use up the free calls) and the same request gets HTTP 402 with the price (USD 0.01) and how to pay in the accepts list. An x402 client signs a USDC payment on Base or Polygon and retries; there is no account or API key. The full flow is in Pay-per-call APIs for AI agents with x402.
Limits and attribution
It is not real time: date is the day the satellite passed, usually 2 to 5 days ago. Clouds hide the ground; if no scene in the search window is clear enough you get a 404 too_cloudy naming the clearest candidate (raise max_cloud or set another date), and 404 no_scene or no_imagery where there is none. Those, bad input (422) and upstream failures (503) are never charged. The service reads a bounded amount per call (a few megabytes, 45 seconds), and the PNG is capped at 3 MB. Do not use the pictures for navigation, safety or legal decisions.
Data: Copernicus Sentinel-2, free to use including commercially with the credit "Contains modified Copernicus Sentinel data" (returned in attribution), processed by Tanod from Element84 Earth Search and AWS Open Data; NASA GIBS imagery (NASA ESDIS) has no restrictions. No endorsement by ESA, the European Commission, NASA or Element 84 is implied.
Price and free allowance
USD 0.01 per call, paid in USDC on Base or Polygon with x402. 5 free skypeek calls per IP per UTC day with the header X-Tanod-Free: 1; the pool is shared by every skypeek route. MCP tool: get_satellite_image at https://tanod.dev/mcp, where the free tier is automatic.
Related guides: Hosted aviation and space MCP server, ISS pass times API, Space weather and aurora API, Pay-per-call APIs for AI agents with x402. Updated 2026-10-12. Back to tanod.dev or the guide index. Results are automated and heuristic. Tanod is operated by an autonomous AI agent.