> ## Documentation Index
> Fetch the complete documentation index at: https://docs.oneshotagent.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Radar Imagery

> List Sentinel-1 radar scenes over a point or box, through cloud and at night.

Lists radar scenes newest first. Radar shows surface roughness and water, not colour; flood extent and ships stand out, but interpretation is the agent's job. Coverage counts acquisitions, not detected objects. An empty scene list means no recorded pass, so no evidence either way. Derived entries explain computed fields; other scene fields are observed.

Contains Copernicus Sentinel-1 data under the Copernicus Sentinel Data licence. Credit: Copernicus and ESA; archive served by Alaska Satellite Facility.

## Authentication

Requires x402 payment in the `payment-signature` header.

## Request Body

**latitude** `number`

Latitude in decimal degrees; supply longitude too. From -90 to 90.

**longitude** `number`

Longitude in decimal degrees. From -180 to 180.

**bbox** `number[]`

\[west, south, east, north], at most 1 degree a side; instead of a point.

**since** `string`

First UTC date, YYYY-MM-DD; defaults to 30 days ago, at most 1 year back.

**limit** `integer`

Most scenes to return; default 5, maximum 25. From 1 to 25. Defaults to `5`.

<Snippet file="audit-context-params.mdx" />

## Response (200 OK)

Top-level envelope: `success` (boolean) and `data` (object). All fields below are nested under `data`.

**data.request\_id** `string`

Durable job ID for audit and lookup

**data.status** `string`

Job status: `completed`

**data.tool** `string`

Always `place_radar_imagery`

**data.result** `object`

The answer, described under Result below

**data.evidence** `object`

Where the answer came from and when

**data.evidence.source** `string`

The public body the data comes from. Always `Alaska Satellite Facility`.

**data.evidence.source\_kind** `string`

`public` when the data comes from a public body, `commercial` otherwise

**data.evidence.retrieved\_at** `string`

When the lookup was made, as an ISO 8601 UTC time

**data.evidence.as\_of** `string | null`

Acquisition time of the newest scene returned by the source; null when no scene was recorded.

## Result

Nested under `data.result`.

**data.result.scenes** `object[]`

Scenes.

**data.result.scenes\[].id** `string`

Id.

**data.result.scenes\[].acquired\_at** `string`

Acquired at.

**data.result.scenes\[].beam\_mode** `string | null`

Beam mode. `null` when the source gives no value.

**data.result.scenes\[].polarization** `string | null`

Polarization. `null` when the source gives no value.

**data.result.scenes\[].flight\_direction** `string`

Flight direction.

**data.result.scenes\[].relative\_orbit** `integer`

Relative orbit.

**data.result.scenes\[].browse\_url** `string | null`

Public ASF browse JPEG, or null when no verified public link is supplied.

**data.result.scenes\[].scene\_url** `string`

ASF catalogue page; full data downloads may require Earthdata credentials.

**data.result.scenes\[].observed** `object`

Observed.

**data.result.scenes\[].observed.flight\_direction** `string`

Flight direction.

**data.result.scenes\[].derived** `object`

Derived.

**data.result.scenes\[].derived.flight\_direction** `object`

Flight direction.

**data.result.scenes\[].derived.flight\_direction.value** `string`

Value.

**data.result.scenes\[].derived.flight\_direction.rule** `string`

Rule.

**data.result.scenes\[].derived.flight\_direction.from** `string[]`

From.

**data.result.scenes\[].derived.scene\_url** `object`

Scene url.

**data.result.scenes\[].derived.scene\_url.value** `string`

Value.

**data.result.scenes\[].derived.scene\_url.rule** `string`

Rule.

**data.result.scenes\[].derived.scene\_url.from** `string[]`

From.

**data.result.latest** `object | null`

Latest. `null` when the source gives no value.

**data.result.latest.id** `string`

Id.

**data.result.latest.acquired\_at** `string`

Acquired at.

**data.result.latest.beam\_mode** `string | null`

Beam mode. `null` when the source gives no value.

**data.result.latest.polarization** `string | null`

Polarization. `null` when the source gives no value.

**data.result.latest.flight\_direction** `string`

Flight direction.

**data.result.latest.relative\_orbit** `integer`

Relative orbit.

**data.result.latest.browse\_url** `string | null`

Public ASF browse JPEG, or null when no verified public link is supplied.

**data.result.latest.scene\_url** `string`

ASF catalogue page; full data downloads may require Earthdata credentials.

**data.result.latest.observed** `object`

Observed.

**data.result.latest.observed.flight\_direction** `string`

Flight direction.

**data.result.latest.derived** `object`

Derived.

**data.result.latest.derived.flight\_direction** `object`

Flight direction.

**data.result.latest.derived.flight\_direction.value** `string`

Value.

**data.result.latest.derived.flight\_direction.rule** `string`

Rule.

**data.result.latest.derived.flight\_direction.from** `string[]`

From.

**data.result.latest.derived.scene\_url** `object`

Scene url.

**data.result.latest.derived.scene\_url.value** `string`

Value.

**data.result.latest.derived.scene\_url.rule** `string`

Rule.

**data.result.latest.derived.scene\_url.from** `string[]`

From.

**data.result.coverage** `object`

Coverage.

**data.result.coverage.catalogue\_available** `boolean`

The catalogue returned a valid response; failures are typed errors, never empty results.

**data.result.coverage.since** `string`

Since.

**data.result.coverage.until** `string`

Last UTC date searched, inclusive.

**data.result.coverage.scenes\_considered** `integer`

Acquisitions in the fetched page, including the extra scene used to detect truncation.

**data.result.coverage.complete** `boolean`

False when more scenes exist than limit; total is then a lower bound.

**data.result.observed** `object`

Observed.

**data.result.observed.scenes** `object[]`

Scenes.

**data.result.observed.scenes\[].sceneName** `string`

SceneName.

**data.result.observed.scenes\[].startTime** `string`

StartTime.

**data.result.observed.scenes\[].beamModeType** `string | null`

BeamModeType. `null` when the source gives no value.

**data.result.observed.scenes\[].polarization** `string | null`

Polarization. `null` when the source gives no value.

**data.result.observed.scenes\[].flightDirection** `string`

FlightDirection.

**data.result.observed.scenes\[].pathNumber** `integer`

PathNumber.

**data.result.observed.scenes\[].browse** `string[]`

Browse.

**data.result.total** `integer`

Total.

**data.result.returned** `integer`

Returned.

**data.result.truncated** `boolean`

Truncated.

**data.result.derived** `object`

Derived.

**data.result.derived.latest** `object`

Latest.

**data.result.derived.latest.value** `string | null`

Value. `null` when the source gives no value.

**data.result.derived.latest.rule** `string`

Rule.

**data.result.derived.latest.from** `string[]`

From.

**data.result.derived.coverage** `object`

Coverage.

**data.result.derived.coverage.value** `object`

Value.

**data.result.derived.coverage.value.catalogue\_available** `boolean`

The catalogue returned a valid response; failures are typed errors, never empty results.

**data.result.derived.coverage.value.since** `string`

Since.

**data.result.derived.coverage.value.until** `string`

Last UTC date searched, inclusive.

**data.result.derived.coverage.value.scenes\_considered** `integer`

Acquisitions in the fetched page, including the extra scene used to detect truncation.

**data.result.derived.coverage.value.complete** `boolean`

False when more scenes exist than limit; total is then a lower bound.

**data.result.derived.coverage.rule** `string`

Rule.

**data.result.derived.coverage.from** `string[]`

From.

**data.result.derived.total** `object`

Total.

**data.result.derived.total.value** `integer`

Value.

**data.result.derived.total.rule** `string`

Rule.

**data.result.derived.total.from** `string[]`

From.

**data.result.derived.returned** `object`

Returned.

**data.result.derived.returned.value** `integer`

Value.

**data.result.derived.returned.rule** `string`

Rule.

**data.result.derived.returned.from** `string[]`

From.

**data.result.derived.truncated** `object`

Truncated.

**data.result.derived.truncated.value** `boolean`

Value.

**data.result.derived.truncated.rule** `string`

Rule.

**data.result.derived.truncated.from** `string[]`

From.

```bash cURL theme={null}
curl -X POST https://win.oneshotagent.com/v1/tools/lookup/place-radar-imagery \
  -H "Content-Type: application/json" \
  -H "payment-signature: <base64 x402 payment>" \
  -d '{
    "latitude": 34.05,
    "longitude": -118.25
  }'
```

```javascript JavaScript theme={null}
const response = await fetch("https://win.oneshotagent.com/v1/tools/lookup/place-radar-imagery", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "payment-signature": paymentProof,
  },
  body: JSON.stringify({
    "latitude": 34.05,
    "longitude": -118.25
  }),
});
```

```typescript SDK theme={null}
const result = await agent.tool('lookup/place-radar-imagery', {
  latitude: 34.05,
  longitude: -118.25
});
console.log(result.result);
console.log(result.evidence);
```

```json Response (200) theme={null}
{
  "success": true,
  "data": {
    "request_id": "uuid",
    "receipt_id": "rcpt_...",
    "status": "completed",
    "tool": "place_radar_imagery",
    "result": {
      "scenes": [
        {
          "id": "S1D_IW_GRDH_1SDV_20261026T135159_20261026T135224_005187_009D92_9FF7",
          "acquired_at": "2026-10-26T13:51:59Z",
          "beam_mode": "IW",
          "polarization": "VV+VH",
          "flight_direction": "descending",
          "relative_orbit": 71,
          "browse_url": "https://datapool.asf.alaska.edu/BROWSE/SD/S1D_IW_GRDH_1SDV_20261026T135159_20261026T135224_005187_009D92_9FF7.jpg",
          "scene_url": "https://search.asf.alaska.edu/#/?granule=S1D_IW_GRDH_1SDV_20261026T135159_20261026T135224_005187_009D92_9FF7",
          "observed": {
            "flight_direction": "DESCENDING"
          },
          "derived": {
            "flight_direction": {
              "value": "descending",
              "rule": "lowercase_source_direction",
              "from": [
                "observed.flight_direction"
              ]
            },
            "scene_url": {
              "value": "https://search.asf.alaska.edu/#/?granule=S1D_IW_GRDH_1SDV_20261026T135159_20261026T135224_005187_009D92_9FF7",
              "rule": "vertex_granule_link",
              "from": [
                "id"
              ]
            }
          }
        }
      ],
      "latest": {
        "id": "S1D_IW_GRDH_1SDV_20261026T135159_20261026T135224_005187_009D92_9FF7",
        "acquired_at": "2026-10-26T13:51:59Z",
        "beam_mode": "IW",
        "polarization": "VV+VH",
        "flight_direction": "descending",
        "relative_orbit": 71,
        "browse_url": "https://datapool.asf.alaska.edu/BROWSE/SD/S1D_IW_GRDH_1SDV_20261026T135159_20261026T135224_005187_009D92_9FF7.jpg",
        "scene_url": "https://search.asf.alaska.edu/#/?granule=S1D_IW_GRDH_1SDV_20261026T135159_20261026T135224_005187_009D92_9FF7",
        "observed": {
          "flight_direction": "DESCENDING"
        },
        "derived": {
          "flight_direction": {
            "value": "descending",
            "rule": "lowercase_source_direction",
            "from": [
              "observed.flight_direction"
            ]
          },
          "scene_url": {
            "value": "https://search.asf.alaska.edu/#/?granule=S1D_IW_GRDH_1SDV_20261026T135159_20261026T135224_005187_009D92_9FF7",
            "rule": "vertex_granule_link",
            "from": [
              "id"
            ]
          }
        }
      },
      "coverage": {
        "since": "2026-09-29",
        "until": "2026-10-29",
        "scenes_considered": 1,
        "complete": true,
        "catalogue_available": true
      },
      "total": 1,
      "returned": 1,
      "truncated": false,
      "observed": {
        "scenes": [
          {
            "sceneName": "S1D_IW_GRDH_1SDV_20261026T135159_20261026T135224_005187_009D92_9FF7",
            "startTime": "2026-10-26T13:51:59Z",
            "beamModeType": "IW",
            "polarization": "VV+VH",
            "flightDirection": "DESCENDING",
            "pathNumber": 71,
            "browse": [
              "https://datapool.asf.alaska.edu/BROWSE/SD/S1D_IW_GRDH_1SDV_20261026T135159_20261026T135224_005187_009D92_9FF7.jpg"
            ]
          }
        ]
      },
      "derived": {
        "latest": {
          "value": "S1D_IW_GRDH_1SDV_20261026T135159_20261026T135224_005187_009D92_9FF7",
          "rule": "newest_acquisition_then_id",
          "from": [
            "observed.scenes.startTime",
            "observed.scenes.sceneName"
          ]
        },
        "coverage": {
          "value": {
            "since": "2026-09-29",
            "until": "2026-10-29",
            "scenes_considered": 1,
            "complete": true,
            "catalogue_available": true
          },
          "rule": "validated_catalogue_window_and_count_received",
          "from": [
            "input.since",
            "input.limit",
            "evidence.retrieved_at",
            "observed.scenes"
          ]
        },
        "total": {
          "value": 1,
          "rule": "count_received_scenes_lower_bound_if_capped",
          "from": [
            "observed.scenes"
          ]
        },
        "returned": {
          "value": 1,
          "rule": "count_listed_scenes",
          "from": [
            "scenes"
          ]
        },
        "truncated": {
          "value": false,
          "rule": "received_limit_plus_one",
          "from": [
            "observed.scenes",
            "input.limit"
          ]
        }
      }
    },
    "evidence": {
      "source": "Alaska Satellite Facility",
      "source_kind": "public",
      "retrieved_at": "2026-10-29T00:00:00Z",
      "calls": [
        {
          "retrieved_at": "2026-10-29T00:00:00Z"
        }
      ],
      "as_of": "2026-10-26T13:51:59Z"
    }
  }
}
```

> [!NOTE]
>
> See [Pricing](https://docs.oneshotagent.com/pricing.md) for this tool's price. A wallet (x402) call receives it in the 402 quote before anything is charged; a call paid from prepaid credits is charged when the API accepts the request and answers `200`.

## Notes

* Sentinel-1 covers most land every 6 to 12 days; cloud and darkness do not prevent radar imaging. An acquisition does not prove visibility of every feature within its footprint.
* Give latitude and longitude or bbox, not both. Boxes must be at most 1 degree a side. since defaults to 30 days ago and may be at most 1 year back; limit defaults to 5, maximum 25.
* One search fetches at most limit plus one scenes. total counts that page, including the withheld extra scene, and is a lower bound when truncated is true. coverage.complete is false then. coverage.since and until are inclusive UTC dates.
* observed.scenes preserves the source metadata for every considered scene. latest, coverage, total, returned and truncated have provenance under derived. Each listed scene also explains its lowercase flight\_direction and constructed scene\_url under derived; observed.flight\_direction preserves the source spelling. relative\_orbit is ASF pathNumber, not the absolute orbit number.
* browse\_url is a public JPEG checked without credentials during the build; null if the source supplies no verified public link. scene\_url opens the ASF catalogue. Full-resolution downloads may need an Earthdata login.
* coverage.catalogue\_available is true when the catalogue returned a valid response. An empty scenes list then means no matching acquisition in the requested window, never evidence of absence of floods, ships or other features. An unreachable catalogue, HTTP error or invalid response fails with a typed error instead of returning an empty result. This tool does not classify imagery.
* Results return inline. The finished job stays available at `/v1/requests/{request_id}`


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.