API REFERENCE

GlobMaps
API Reference

Production-grade Climate Intelligence API. Real drought data (ERA5/SPEI), disease surveillance, and supply chain intelligence — all behind a single API key.

Request Early AccessView Pricing

Authentication

All endpoints require an X-API-Key header. Get your key from the GlobMaps dashboard.

X-API-Key: <your_api_key>
Content-Type: application/json(POST only)

Base URL

PRODUCTION
https://api.globmaps.com

Requires X-API-Key. Rate limits apply per plan.

DASHBOARD API
https://app.globmaps.com/api

Session-authenticated. Used by the dashboard UI.

Drought Severity Scale (USDM / EU CDI)

LevelDescriptionScoreSPEI-1
🟡 D0Abnormally Dry≥40-0.5 to -0.8
🟠 D1Moderate Drought≥50-0.8 to -1.3
🔴 D2Severe Drought≥65-1.3 to -1.6
🚨 D3Extreme Drought≥80-1.6 to -2.0
D4Exceptional Drought≥95< -2.0

Risk Level Reference

Low
029
Medium
3059
High
6079
Critical
80100

Risk Score API

Composite risk scoring for any coordinate. Drought uses real ERA5/SPEI data; other types use aggregated live feeds.

POST/api/risk-map/scoreREAL DATA

Get a composite risk score for any coordinate. Supports drought (real data via ERA5/SPEI), flood, wildfire, heatwave, and storm risk types.

Request Body
latnumberreq
Latitude (-90 to 90)
lngnumberreq
Longitude (-180 to 180)
riskTypestringreq
drought · flood · wildfire · heatwave · storm · sea_level_rise
includeHistoricalbooleanopt
Include historical context (default: false)
timeframestringopt
7d · 30d · 90d · 1y (default: 30d)
Example Request
curl -X POST "https://api.globmaps.com/api/risk-map/score" \
  -H "X-API-Key: <your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{
  "lat": 13.7563,
  "lng": 100.5018,
  "riskType": "drought",
  "timeframe": "30d"
}'
Example Response
{
  "success": true,
  "data": {
    "location": { "lat": 13.7563, "lng": 100.5018 },
    "riskType": "drought",
    "riskScore": 67,
    "riskLevel": "high",
    "summary": "Drought severity: D2 (SPEI-1: -1.42). 3.2km from nearest grid point.",
    "details": {
      "currentConditions": {
        "spei1": -1.42, "spei3": -1.18, "spei6": -0.91, "spei12": -0.54,
        "severity": "D2", "distanceKm": 3.2, "month": "2026-04"
      }
    },
    "dataSources": ["ERA5 Climate Reanalysis", "GlobMaps Drought Pipeline"],
    "timestamp": "2026-05-10T08:00:00Z"
  }
}
POST/api/risk-map/score?format=geojson

Same as above but returns a GeoJSON Feature — ready for QGIS, ArcGIS, Mapbox, and Kepler.gl.

Example Request
curl -X POST "https://api.globmaps.com/api/risk-map/score" \
  -H "X-API-Key: <your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{
  "lat": 13.7563,
  "lng": 100.5018,
  "riskType": "drought"
}'
Example Response
{
  "type": "Feature",
  "geometry": { "type": "Point", "coordinates": [100.5018, 13.7563] },
  "properties": {
    "riskType": "drought",
    "riskScore": 67,
    "riskLevel": "high",
    "summary": "Drought severity: D2 (SPEI-1: -1.42).",
    "spei1": -1.42, "spei3": -1.18,
    "dataSources": ["ERA5 Climate Reanalysis", "GlobMaps Drought Pipeline"],
    "timestamp": "2026-05-10T08:00:00Z"
  }
}

Drought APIs

Full SPEI/SPI drought intelligence powered by ERA5 reanalysis data. Grid-level and province-level queries available.

GET/api/risk-map/droughtREAL DATA

Query drought indices (SPEI-1/3/6/12, SPI-1, MCDI) for any coordinate. Returns the nearest grid point with full climatology detail.

Query Parameters
latnumberreq
Latitude (-90 to 90)
lngnumberreq
Longitude (-180 to 180)
monthstringopt
YYYY-MM format (default: latest)
Example Request
curl "https://api.globmaps.com/api/risk-map/drought?lat=13.7563&lng=100.5018" \
  -H "X-API-Key: <your_api_key>"
Example Response
{
  "success": true,
  "data": {
    "location": {
      "requestedLat": 13.7563, "requestedLng": 100.5018,
      "gridId": "THA_1234", "gridLat": 13.75, "gridLng": 100.50,
      "distanceKm": 0.8, "country": "THA"
    },
    "period": {
      "month": "2026-04",
      "climatologyBaseline": "1991-2020"
    },
    "drought": {
      "score": 67, "level": "high",
      "indices": { "spei1": -1.42, "spei3": -1.18, "spei6": -0.91, "spei12": -0.54, "spi1": -1.31, "mcdi": -1.05 },
      "severity": { "spei1": "D2" }
    }
  }
}
GET/api/risk-map/drought/provinceREAL DATA

Query drought data by province name. Currently supports all 77 Thai provinces (country=THA).

Query Parameters
namestringreq
Province name (e.g. Bangkok, Chiang Mai)
countrystringopt
ISO 3166-1 alpha-3 (default: THA)
monthstringopt
YYYY-MM format (default: latest)
Example Request
curl "https://api.globmaps.com/api/risk-map/drought/province?name=Chiang+Mai&country=THA" \
  -H "X-API-Key: <your_api_key>"
Example Response
GET /api/risk-map/drought/province?name=Chiang+Mai&country=THA

{
  "success": true,
  "data": {
    "province": "Chiang Mai",
    "country": "THA",
    "month": "2026-04",
    "score": 72,
    "level": "high",
    "indices": { "spei1": -1.61, "spei3": -1.32, "spei6": -1.08 },
    "severity": { "spei1": "D3" }
  }
}

Batch API

Process multiple locations in one call. GeoJSON output ready for GIS tools.

POST/api/risk-map/batchREAL DATA

Process up to 100 locations in a single request. Returns drought indices for each coordinate. Supports JSON and GeoJSON FeatureCollection output.

Request Body
locationsarrayreq
Array of {id?, lat, lng} — max 100
riskTypestringreq
drought (only supported type currently)
formatstringopt
json · geojson (default: json)
Example Request
curl -X POST "https://api.globmaps.com/api/risk-map/batch" \
  -H "X-API-Key: <your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{
  "riskType": "drought",
  "format": "json",
  "locations": [
    { "id": "bkk",  "lat": 13.7563, "lng": 100.5018 },
    { "id": "cnx",  "lat": 18.7883, "lng": 98.9853  },
    { "id": "hkt",  "lat": 7.8804,  "lng": 98.3923  }
  ]
}'
Example Response
{
  "success": true,
  "data": {
    "count": 3,
    "riskType": "drought",
    "results": [
      { "id": "bkk", "lat": 13.7563, "lng": 100.5018, "riskScore": 67, "riskLevel": "high",   "severity": "D2", "spei1": -1.42 },
      { "id": "cnx", "lat": 18.7883, "lng": 98.9853,  "riskScore": 78, "riskLevel": "high",   "severity": "D3", "spei1": -1.68 },
      { "id": "hkt", "lat": 7.8804,  "lng": 98.3923,  "riskScore": 22, "riskLevel": "low",    "severity": null, "spei1":  0.31 }
    ],
    "timestamp": "2026-05-10T08:00:00Z"
  }
}

Outbreak Radar API

Disease surveillance intelligence powered by WHO EIOS, CDC FluNet, ProMED, and HealthMap.

POST/api/outbreak-radar/query

Disease surveillance intelligence for any coordinate. Powered by WHO EIOS, CDC FluNet, ProMED, and HealthMap data feeds.

Request Body
latnumberreq
Latitude (-90 to 90)
lngnumberreq
Longitude (-180 to 180)
diseaseTypestringreq
dengue · influenza · covid · cholera · malaria · general
timeframestringopt
7d · 30d · 90d (default: 30d)
Example Request
curl -X POST "https://api.globmaps.com/api/outbreak-radar/query" \
  -H "X-API-Key: <your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{
  "lat": 13.7563,
  "lng": 100.5018,
  "diseaseType": "dengue",
  "timeframe": "30d"
}'
Example Response
{
  "success": true,
  "data": {
    "location": { "lat": 13.7563, "lng": 100.5018 },
    "diseaseType": "dengue",
    "riskScore": 78,
    "riskLevel": "high",
    "outbreakStatus": "warning",
    "activeClusters": 3,
    "caseEstimate": 1240,
    "trend": "increasing",
    "summary": "Elevated dengue activity confirmed in Bangkok metro area.",
    "details": {
      "intelligence": "WHO EIOS monitoring confirms elevated dengue activity...",
      "keyFindings": [
        "Risk score: 78/100 based on WHO EIOS + CDC FluNet",
        "3 active clusters within 100km radius",
        "Trend: increasing — 30-day rolling average"
      ]
    },
    "dataSources": ["WHO EIOS", "CDC FluNet", "ProMED", "HealthMap", "ECDC"],
    "timestamp": "2026-05-10T08:00:00Z"
  }
}

Supply Chain Intelligence API

Port congestion, vessel tracking, ETA delays, and trade disruption intelligence from AIS and UN Comtrade.

POST/api/supply-chain/query

Port congestion, vessel counts, ETA delays, and trade disruption intelligence. Provide coordinates or a UN/LOCODE port code.

Request Body
latnumberopt
Latitude — required if portCode omitted
lngnumberopt
Longitude — required if portCode omitted
portCodestringopt
UN/LOCODE (e.g. THLCH, SGSIN, NLRTM)
queryTypestringreq
congestion · vessel_count · cargo_delay · trade_risk
Example Request
curl -X POST "https://api.globmaps.com/api/supply-chain/query" \
  -H "X-API-Key: <your_api_key>" \
  -H "Content-Type: application/json" \
  -d '{
  "portCode": "THLCH",
  "queryType": "congestion"
}'
Example Response
{
  "success": true,
  "data": {
    "port": { "code": "THLCH", "name": "Laem Chabang" },
    "queryType": "congestion",
    "congestionIndex": 54,
    "vesselCount": 18,
    "avgDwellDays": 3.2,
    "etaDelayHours": 14,
    "disruptionRisk": "medium",
    "summary": "Moderate congestion at Laem Chabang — above baseline threshold.",
    "details": {
      "keyFindings": [
        "Congestion index: 54/100 — above baseline of 40",
        "18 vessels at anchor — 4 bulk carriers, 9 container ships, 5 tankers",
        "ETA delay: +14 hours average vs scheduled arrival"
      ]
    },
    "dataSources": ["AIS Real-time (MarineTraffic)", "VesselsValue", "UN Comtrade"],
    "timestamp": "2026-05-10T08:00:00Z"
  }
}

Error Codes

400VALIDATION_ERRORMissing or invalid request parameters
401INVALID_API_KEYMissing, invalid, or expired API key
404NOT_FOUNDNo data available for this location
429RATE_LIMIT_EXCEEDEDRequest quota exceeded for your plan
500INTERNAL_ERRORUnexpected server error