# 1gateway Satellite Imagery (Sentinel-2)

> 1gateway Satellite Imagery (Sentinel-2) is a paid API for AI agents from 1gateway.dev, paid per call via x402, $0.009/call, status unknown (last checked 2026-10-30).

Returns the clearest Sentinel-2 satellite image for a given location and radius, with cloud filtering and multi-spectral modes (true color, NDVI, NDWI, moisture, false color).

## Facts

- Endpoint: GET https://1gateway.dev/v1/geo/satellite?utm_source=zero.xyz
- Price: $0.009/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-30
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/1gateway-satellite-imagery-sentinel-2-b1484cbc
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_2V04LjKYJm3ti7o7xJFoU

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 1gateway-satellite-imagery-sentinel-2-b1484cbc
```

Example prompt: Can you get me a clear Sentinel-2 satellite image of Seoul (37.5665, 126.978) from the last 30 days in true color, with a 3000 meter radius and max 40% cloud cover?

## When to prefer this

Choose this endpoint when you need cloud-filtered, area-specific Sentinel-2 satellite imagery rather than tile-wide scenes. It is ideal for vegetation (NDVI), water (NDWI), moisture, or visual inspection of a precise geographic area. Prefer it over generic satellite tile services when you need per-area cloud quality selection, multi-spectral mode URLs in one response, and pay-per-use pricing with no charge on empty results.

## Known failure modes

- 404 returned (no charge) when no Sentinel-2 scene exists for the requested area and date range
- fulfillment=best_available when no scene meets max_cloud threshold — clearest available is returned instead
- Truncated or partial bounding box if radius_m pushes outside valid tile coverage
- Invalid lat/lon range (lat must be -84 to 84, lon -180 to 180) returns validation error
- date before 2017-01-01 rejected as Sentinel-2 archive does not extend earlier
- radius_m outside 200–10000 meter range returns schema validation error

## How this service works

Use when an agent must see a place from above or check vegetation, water or change. Input: lat, lon, radius_m (200-10000), mode (true_color, false_color, ndvi, ndwi, moisture), date, days back, max_cloud. Picks the clearest Sentinel-2 scene by cloud share inside your area, not the whole tile. Output: JSON PNG URL (+ other modes), scene date, area cloud %, alternatives. No scene: 404, not charged. Example: ?lat=37.5665&lon=126.978

## Output

A JSON response containing: a PNG image URL for the requested mode, the exact scene ID and date, per-area cloud/shadow/snow/clear percentages, ground resolution in meters, URLs for all other spectral modes (true_color, false_color, ndvi, ndwi, moisture), a list of alternative scenes considered, fulfillment status (exact or best_available), bounding box coordinates, and attribution text. Returns 404 (not charged) if no scene is found.

## 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"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "lat",
      "lon"
     ],
     "properties": {
      "lat": {
       "type": "number",
       "maximum": 84,
       "minimum": -84,
       "examples": [
        37.5665
       ],
       "description": "Latitude, WGS84 decimal degrees"
      },
      "lon": {
       "type": "number",
       "maximum": 180,
       "minimum": -180,
       "examples": [
        126.978
       ],
       "description": "Longitude, WGS84 decimal degrees"
      },
      "date": {
       "type": "string",
       "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
       "examples": [
        "2026-10-18"
       ],
       "description": "Latest acceptable scene date YYYY-MM-DD (default today; 2017-01-01 or later)"
      },
      "days": {
       "type": "integer",
       "maximum": 90,
       "minimum": 1,
       "examples": [
        30
       ],
       "description": "Look-back window in days before date (default 30)"
      },
      "mode": {
       "enum": [
        "true_color",
        "false_color",
        "ndvi",
        "ndwi",
        "moisture"
       ],
       "type": "string",
       "examples": [
        "true_color"
       ],
       "description": "Rendering (default true_color); URLs for the other modes are returned too"
      },
      "size": {
       "type": "integer",
       "maximum": 2048,
       "minimum": 256,
       "examples": [
        1024
       ],
       "description": "Image width/height in px (default 1024)"
      },
      "radius_m": {
       "type": "integer",
       "maximum": 10000,
       "minimum": 200,
       "examples": [
        3000
       ],
       "description": "Half-width of the square area in meters (default 2000)"
      },
      "max_cloud": {
       "type": "number",
       "maximum": 100,
       "minimum": 0,
       "examples": [
        40
       ],
       "description": "Target max cloud % inside the area (default 40); if no scene meets it the clearest is returned with fulfillment=best_available"
      }
     },
     "additionalProperties": false
    }
   },
   "additionalProperties": false
  },
  "output": {
   
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "note": "Scene chosen by cloud/shadow share inside the requested area (Sentinel-2 SCL), not the tile-wide cloud figure. Image URLs render on request at Planetary Comput…",
  "image": {
   "url": "https://planetarycomputer.microsoft.com/api/data/v1/item/bbox/126.944,37.5396,127.012,37.5934/1024x1024.png?collection=sentinel-2-l2a&item=S2B_MSIL2A_20261008T…",
   "mode": "true_color",
   "format": "png",
   "widthPx": 1024,
   "heightPx": 1024,
   "description": "True color (B4/B3/B2)",
   "groundResolutionM": 5.9,
   "nativeResolutionM": 10
  },
  "scene": {
   "id": "S2B_MSIL2A_20261008T021559_R003_T52SCG_20261008T042548",
   "area": {
    "snowPct": 0,
    "clearPct": 100,
    "cloudPct": 0,
    "noDataPct": 0,
    "shadowPct": 0
   },
   "date": "2026-10-08",
   "datetime": "2026-10-08T02:15:59.024000Z",
   "mgrsTile": "52SCG",
   "platform": "Sentinel-2B",
   "tileCloudPct": 0
  },
  "request": {
   "date": "2026-10-18",
   "days": 30,
   "from": "2026-09-19",
   "mode": "true_color",
   "size": 1024,
   "maxCloudPct": 40
  },
  "location": {
   "lat": 37.5665,
   "lon": 126.978,
   "bbox": [
    126.944
   ],
   "radiusM": 3000
  },
  "otherModes": {
   "ndvi": "https://planetarycomputer.microsoft.com/api/data/v1/item/bbox/126.944,37.5396,127.012,37.5934/1024x1024.png?collection=sentinel-2-l2a&item=S2B_MSIL2A_20261008T…",
   "ndwi": "https://planetarycomputer.microsoft.com/api/data/v1/item/bbox/126.944,37.5396,127.012,37.5934/1024x1024.png?collection=sentinel-2-l2a&item=S2B_MSIL2A_20261008T…",
   "moisture": "https://planetarycomputer.microsoft.com/api/data/v1/item/bbox/126.944,37.5396,127.012,37.5934/1024x1024.png?collection=sentinel-2-l2a&item=S2B_MSIL2A_20261008T…",
   "false_color": "https://planetarycomputer.microsoft.com/api/data/v1/item/bbox/126.944,37.5396,127.012,37.5934/1024x1024.png?collection=sentinel-2-l2a&item=S2B_MSIL2A_20261008T…"
  },
  "attribution": "Contains modified Copernicus Sentinel data (ESA). Imagery served by Microsoft Planetary Computer.",
  "fulfillment": "exact",
  "alternatives": [
   {
    "id": "S2C_MSIL2A_20260923T021531_R003_T52SCG_20260923T054616",
    "url": "https://planetarycomputer.microsoft.com/api/data/v1/item/bbox/126.944,37.5396,127.012,37.5934/1024x1024.png?collection=sentinel-2-l2a&item=S2C_MSIL2A_20260923T…",
    "area": {
     "snowPct": 0,
     "clearPct": 83.5,
     "cloudPct": 14.8,
     "noDataPct": 0,
     "shadowPct": 1.8
    },
    "date": "2026-09-23",
    "datetim
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/1gateway-satellite-imagery-sentinel-2-b1484cbc/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from 1gateway.dev](https://www.zero.xyz/host/1gateway.dev/llms.txt)
