Skip to main content

API Reference

Every EOSYN Atlas endpoint, parameter, and error code. All requests use HTTPS + Bearer auth.

GET/v1/risk

Return a confidence-scored risk assessment for a location and peril.

Parameters

NameTypeDescription
latnumberLatitude in decimal degrees.
lngnumberLongitude in decimal degrees.
perilstringOne of: flood, subsidence, wildfire, storm.

Request

curl "https://api.eosynspace.com/v1/risk?lat=51.5074&lng=-0.1278&peril=flood" \
  -H "Authorization: Bearer $EOSYN_API_KEY"

Response

{
  "risk_score": 0.72,
  "confidence": 0.942,
  "model_version": "flood-v2.3.1"
}
GET/v1/risk/batch

Return risk assessments for up to 1,000 locations per request.

Parameters

NameTypeDescription
locationsarrayArray of {lat,lng,peril} objects.

Request

curl -X POST https://api.eosynspace.com/v1/risk/batch \
  -H "Authorization: Bearer $EOSYN_API_KEY" \
  -d '{"locations":[{"lat":51.5,"lng":-0.1,"peril":"flood"}]}'

Response

{ "results": [ { "risk_score": 0.72, "confidence": 0.942 } ] }
GET/v1/changes

List detected changes within an area of interest.

Parameters

NameTypeDescription
aoi_idstringArea of interest identifier.
sincestringISO-8601 timestamp filter.

Request

curl "https://api.eosynspace.com/v1/changes?aoi_id=aoi_42" \
  -H "Authorization: Bearer $EOSYN_API_KEY"

Response

{ "changes": [ { "id": "chg_1", "type": "vegetation_loss", "confidence": 0.91 } ] }
GET/v1/changes/{id}

Retrieve a single change event with full provenance.

Parameters

NameTypeDescription
idstringChange event id.

Request

curl "https://api.eosynspace.com/v1/changes/chg_1" \
  -H "Authorization: Bearer $EOSYN_API_KEY"

Response

{ "id": "chg_1", "type": "vegetation_loss", "detected_at": "2026-07-01" }
GET/v1/anomalies

List anomalies across your subscribed feeds.

Parameters

NameTypeDescription
sincestringISO-8601 timestamp filter.

Request

curl "https://api.eosynspace.com/v1/anomalies" -H "Authorization: Bearer $EOSYN_API_KEY"

Response

{ "anomalies": [ { "id": "an_1", "severity": "high" } ] }
POST/v1/anomalies/subscribe

Subscribe to anomaly alerts for an AOI + peril combination.

Parameters

NameTypeDescription
aoi_idstringArea of interest.
perilsarrayPerils to watch.

Request

curl -X POST https://api.eosynspace.com/v1/anomalies/subscribe \
  -H "Authorization: Bearer $EOSYN_API_KEY" \
  -d '{"aoi_id":"aoi_42","perils":["flood"]}'

Response

{ "subscription_id": "sub_9", "status": "active" }
GET/v1/historical

Return historical time-series for a location and metric.

Parameters

NameTypeDescription
latnumberLatitude.
lngnumberLongitude.
metricstringMetric key (e.g. ndvi, moisture).
fromstringISO-8601 start date.
tostringISO-8601 end date.

Request

curl "https://api.eosynspace.com/v1/historical?lat=51.5&lng=-0.1&metric=ndvi&from=2020-01-01&to=2026-01-01" \
  -H "Authorization: Bearer $EOSYN_API_KEY"

Response

{ "series": [ { "t": "2020-01-01", "v": 0.42 } ] }
POST/v1/webhooks

Register a webhook endpoint for real-time events.

Parameters

NameTypeDescription
urlstringHTTPS callback URL.
eventsarrayEvent types to subscribe to.

Request

curl -X POST https://api.eosynspace.com/v1/webhooks \
  -H "Authorization: Bearer $EOSYN_API_KEY" \
  -d '{"url":"https://your.app/hook","events":["risk.threshold_exceeded"]}'

Response

{ "id": "wh_1", "secret": "whsec_..." }

Error Codes

StatusCodeMeaning
400bad_requestMalformed request or missing required parameter.
401unauthorizedMissing or invalid API key.
403forbiddenAPI key lacks scope for this resource.
404not_foundResource does not exist.
429rate_limitedRate limit exceeded. See Retry-After header.
500server_errorUnexpected server error. Retry with backoff.

API Reference

Every EOSYN Atlas endpoint, parameter, and error code. All requests use HTTPS + Bearer auth.

GET/v1/risk

Return a confidence-scored risk assessment for a location and peril.

Parameters

NameTypeDescription
latnumberLatitude in decimal degrees.
lngnumberLongitude in decimal degrees.
perilstringOne of: flood, subsidence, wildfire, storm.

Request

curl "https://api.eosynspace.com/v1/risk?lat=51.5074&lng=-0.1278&peril=flood" \
  -H "Authorization: Bearer $EOSYN_API_KEY"

Response

{
  "risk_score": 0.72,
  "confidence": 0.942,
  "model_version": "flood-v2.3.1"
}
GET/v1/risk/batch

Return risk assessments for up to 1,000 locations per request.

Parameters

NameTypeDescription
locationsarrayArray of {lat,lng,peril} objects.

Request

curl -X POST https://api.eosynspace.com/v1/risk/batch \
  -H "Authorization: Bearer $EOSYN_API_KEY" \
  -d '{"locations":[{"lat":51.5,"lng":-0.1,"peril":"flood"}]}'

Response

{ "results": [ { "risk_score": 0.72, "confidence": 0.942 } ] }
GET/v1/changes

List detected changes within an area of interest.

Parameters

NameTypeDescription
aoi_idstringArea of interest identifier.
sincestringISO-8601 timestamp filter.

Request

curl "https://api.eosynspace.com/v1/changes?aoi_id=aoi_42" \
  -H "Authorization: Bearer $EOSYN_API_KEY"

Response

{ "changes": [ { "id": "chg_1", "type": "vegetation_loss", "confidence": 0.91 } ] }
GET/v1/changes/{id}

Retrieve a single change event with full provenance.

Parameters

NameTypeDescription
idstringChange event id.

Request

curl "https://api.eosynspace.com/v1/changes/chg_1" \
  -H "Authorization: Bearer $EOSYN_API_KEY"

Response

{ "id": "chg_1", "type": "vegetation_loss", "detected_at": "2026-07-01" }
GET/v1/anomalies

List anomalies across your subscribed feeds.

Parameters

NameTypeDescription
sincestringISO-8601 timestamp filter.

Request

curl "https://api.eosynspace.com/v1/anomalies" -H "Authorization: Bearer $EOSYN_API_KEY"

Response

{ "anomalies": [ { "id": "an_1", "severity": "high" } ] }
POST/v1/anomalies/subscribe

Subscribe to anomaly alerts for an AOI + peril combination.

Parameters

NameTypeDescription
aoi_idstringArea of interest.
perilsarrayPerils to watch.

Request

curl -X POST https://api.eosynspace.com/v1/anomalies/subscribe \
  -H "Authorization: Bearer $EOSYN_API_KEY" \
  -d '{"aoi_id":"aoi_42","perils":["flood"]}'

Response

{ "subscription_id": "sub_9", "status": "active" }
GET/v1/historical

Return historical time-series for a location and metric.

Parameters

NameTypeDescription
latnumberLatitude.
lngnumberLongitude.
metricstringMetric key (e.g. ndvi, moisture).
fromstringISO-8601 start date.
tostringISO-8601 end date.

Request

curl "https://api.eosynspace.com/v1/historical?lat=51.5&lng=-0.1&metric=ndvi&from=2020-01-01&to=2026-01-01" \
  -H "Authorization: Bearer $EOSYN_API_KEY"

Response

{ "series": [ { "t": "2020-01-01", "v": 0.42 } ] }
POST/v1/webhooks

Register a webhook endpoint for real-time events.

Parameters

NameTypeDescription
urlstringHTTPS callback URL.
eventsarrayEvent types to subscribe to.

Request

curl -X POST https://api.eosynspace.com/v1/webhooks \
  -H "Authorization: Bearer $EOSYN_API_KEY" \
  -d '{"url":"https://your.app/hook","events":["risk.threshold_exceeded"]}'

Response

{ "id": "wh_1", "secret": "whsec_..." }

Error Codes

StatusCodeMeaning
400bad_requestMalformed request or missing required parameter.
401unauthorizedMissing or invalid API key.
403forbiddenAPI key lacks scope for this resource.
404not_foundResource does not exist.
429rate_limitedRate limit exceeded. See Retry-After header.
500server_errorUnexpected server error. Retry with backoff.