🌏 Property Location Intelligence · Multi-Country Coverage

Terrain Intelligence & Location Profile
for Your Property or Site

High-performance REST API and MCP server delivering elevation, slope statistics, composite terrain maps (including contours) and 3-D visualisations. Every location is analysed at three zoom levels — site, neighbourhood and wide area.

Built for people who weigh up locations every day — real estate and property-information professionals, insurance & risk analysts, asset managers and disaster & emergency management teams. Screen a listing’s slope before inspection, profile the terrain around an exposure, or flag flood- and landslide-prone landforms across a portfolio — handy property location intelligence, right at your fingertips.

AI-native via MCP for Claude, GPT, VS Code, Gemini and modern agents. Ask "What is the slope at this address?" in plain English — the AI calls the right tool for you.

📄 Explore API Docs 📍 Open Web Map Request API Key
Multi-Country
Elevation data
8 REST API
Endpoints
8 MCP Tools
Claude / GPT
GET + POST
Both methods
<30 ms
Pixel latency
PNG/SVG/ PDF
Chart/Map export

One Address, Three Zoom Levels

From a single suburban house to the surrounding terrain: every property or site is examined at three nested scales, each backed by its own family of endpoints. Zoom out from the front door to the landform it sits on.

1

Site

Single-pixel elevation at the property itself — 5 m resolution, <30 ms, batchable to 100 points.

2

Neighbourhood

Min/Avg/Max elevation & slope over 3×3, 5×5 and 7×7 pixel windows (~15–35 m) around the site.

3

Wide Area

Full cartographic production — satellite + contour composites and 3-D surfaces over a configurable radius.

Coverage by country
world NASA SRTM ● Live · 30 m 🇺🇸 United States ● Live · 10 m 🇦🇺 Australia ● Live · 5 m 🇳🇿 New Zealand ● Live · 5 m other countries or regions ⧖ Expanding

New regions onboard as required — same API, same three levels, new dataset IDs. Need a delivery service for a region not listed? Let us know.

What's in the catalogue

Multi-country: open-source government elevation datasets from 1m to 5m to 30m resolution. Multi-Level API calls. Level 1 single-pixel access is free. Level 2 and 3 analysis endpoints require a Pro API key.

Preview — Elevation Dataset 10 World - NASA SRTM-GL1
ID: file100_elevation
Elevation — NASA SRTM-GL1
Resolution: ~30 m · CRS: WGS 1984
Source: NASA


● OnlineFree L1
Preview — Elevation Dataset 20 US - CONUS
ID: file200_elevation
Elevation — CONUS NED 1/3 arc-second
Resolution: ~10 m · CRS: NAD 1983
Source: USGS

● OnlineFree L1
Preview — Elevation Dataset 30 AU
ID: file300_elevation
Elevation — Australian DTM
Resolution: 5 m · CRS: GDA2020 / Australian Albers
Source: Geoscience Australia (GA)

● OnlineFree L1
Preview — Elevation Dataset 31 AU East Coast
ID: file301_elevation
Elevation — Australian East Coast DTM
Resolution: 5 m · CRS: GDA2020 / MGA Zone 56
Source: Geoscience Australia (GA)
● OnlineFree L1
Preview — Elevation Dataset 40 NZ
ID: file400_elevation
Elevation — NZ DTM (populated areas)
Resolution: 5 m · CRS: NZGD2000
Source: Land Information New Zealand (LINZ)
● OnlineFree L1
Preview — Elevation Dataset 251 US - Houston, TX
ID: file251_elevation
Elevation — NED 1/9 arc-second (2008)
Resolution: ~3 m · CRS: NAD 1983
Source: USGS

● OnlineFree L1
Preview — Elevation Dataset 341 AU - Brisbane
ID: file341_elevation
Elevation — Brisbane DTM 2009
Resolution: 1 m · CRS: GDA94 / MGA Zone 56
Source: Queensland Government

● OnlineFree L1
— coming soon —
Elevation or raster data for other regions
Request new datasets
⧖ request

Three Levels of Terrain Intelligence

Location Profile (LP) endpoint supports GET and POST.
Free tier covers Level 1; Pro / Enterprise unlocks Level 2 and 3.

1

Pixel-Level Extraction Free

Single-pixel elevation from any coordinate (in latitude/longitude), applicable to all data sources. Batch up to 100 points per call.

  • GETPOST
    /lp/elevation
    Elevation (m) at one lat/lon
  • POST
    /lp/elevation/batch
    Up to 100 points per call
2

Close Neighbourhood Analysis Pro

Min/Avg/Max elevation and slope across three window sizes — 3×3, 5×5 and 7×7 pixels (~15 m, 25 m, 35 m). Charts export PNG / SVG / PDF. Data source is acknowledged on each chart.

  • GETPOST
    /lp/elevation_stats
    Elevation Min/Avg/Max, 3 window sizes
  • GETPOST
    /lp/slope_stats
    Slope (°) Min/Avg/Max, 3 window sizes
  • GETPOST
    /lp/elevation_chart
    Range-box chart URL · PNG/SVG/PDF
  • GETPOST
    /lp/slope_chart
    Slope range-box chart URL · PNG/SVG/PDF
3

Area Terrain Mapping Pro

Full cartographic production over a configurable pixel radius. Google Hybrid satellite background in EPSG:3857 with reprojected contours (no overlay mismatch). 3-D surface map exports PNG or interactive HTML. All outputs include source attribution.

  • GETPOST
    /lp/terrain_map
    Satellite + smoothed contours · PNG · offset 10–50 px
  • GETPOST
    /lp/terrain_3d
    3-D surface map · PNG / HTML (interactive)

Every Endpoint — GET & POST Examples

Base URL: https://api.geospatialsystem.com · Auth: X-API-Key: YOUR_KEY header on every request. Other options:

- For personal convenient use (less secure), copy & paste the whole url in a browser address bar; or, via curl

- curl "https://api.geospatialsystem.com/lp/elevation?lat=-30&lon=150&dataset_id=file100_elevation&api_key=YOUR_KEY"

GETPOST
/lp/elevation Free Single-pixel elevation in metres

Parameters

Name Type Required Notes
lat float required Latitude (WGS-84), −90 to 90
lon float required Longitude (WGS-84), −180 to 180
dataset_id string required e.g. file100_elevation — see /datasets
GET
POST
Response
curl "https://api.geospatialsystem.com/lp/elevation?lat=-30&lon=150&dataset_id=file100_elevation" \ -H "X-API-Key: YOUR_KEY"
curl -X POST "https://api.geospatialsystem.com/lp/elevation" \ -H "X-API-Key: YOUR_KEY" -H "Content-Type: application/json" \ -d '{"lat":-30,"lon":150,"dataset_id":"file100_elevation"}'
{"dataset":"file100_elevation", "lat":-30.0, "lon":150.0, "value":357.0, "units":"metres", "nodata":false, "crs":"EPSG:4326", "elapsed_ms":24.1}
POST
/lp/elevation/batch Free Up to 100 points in one request
POST
Response
curl -X POST "https://api.geospatialsystem.com/lp/elevation/batch" \ -H "X-API-Key: YOUR_KEY" -H "Content-Type: application/json" \ -d '{"queries":[ {"lat":-30.0,"lon":150.0,"dataset_id":"file100_elevation"}, {"lat":-30.5,"lon":150.5,"dataset_id":"file100_elevation"}, {"lat":-31.0,"lon":151.0,"dataset_id":"file100_elevation"} ]}'
{"results":[ {"value":357.0,"lat":-30.0,"lon":150.0}, {"value":698.0,"lat":-30.5,"lon":150.5}, {"value":499.0,"lat":-31.0,"lon":151.0} ], "count":3}
GETPOST
/lp/elevation_stats Pro Min/Avg/Max elevation across 3 window sizes
GET
POST
Response
curl "https://api.geospatialsystem.com/lp/elevation_stats?lat=-30&lon=150&dataset_id=file100_elevation" \ -H "X-API-Key: YOUR_KEY"
curl -X POST "https://api.geospatialsystem.com/lp/elevation_stats" \ -H "X-API-Key: YOUR_KEY" -H "Content-Type: application/json" \ -d '{"lat":-30,"lon":150,"dataset_id":"file100_elevation"}'
{"windows":[ {"offset":1,"window":"3×3 px","area_m":"~86.3 × 86.3 m", "min_m":357.0,"avg_m":357.778,"max_m":359.0,"std_m":0.629}, {"offset":2,"window":"5×5 px", /* ... */ }, {"offset":3,"window":"7×7 px", /* ... */ } ], "elapsed_ms":41.2}
GETPOST
/lp/slope_stats Pro Min/Avg/Max slope in degrees across 3 window sizes
GET
POST
Response
curl "https://api.geospatialsystem.com/lp/slope_stats?lat=-30&lon=150&dataset_id=file100_elevation" \ -H "X-API-Key: YOUR_KEY"
curl -X POST "https://api.geospatialsystem.com/lp/slope_stats" \ -H "X-API-Key: YOUR_KEY" -H "Content-Type: application/json" \ -d '{"lat":-30,"lon":150,"dataset_id":"file100_elevation"}'
{"slope_window_offset":4, /* 9×9 px used for WGS-84 accuracy */ "windows":[ {"offset":1,"window":"3×3 px", "min_deg":1.07,"avg_deg":2.167,"max_deg":3.503}, {"offset":2,"window":"5×5 px", /* ... */}, {"offset":3,"window":"7×7 px", /* ... */} ]}
GETPOST
/lp/elevation_chart Pro Elevation range-box chart → URL (PNG/SVG/PDF)

Extra parameter

Name Type Required Notes
fmt string optional png (default) · svg · pdf
GET
POST
Response
curl "https://api.geospatialsystem.com/lp/elevation_chart?lat=-30&lon=150&dataset_id=file100_elevation&fmt=png" \ -H "X-API-Key: YOUR_KEY"
curl -X POST "https://api.geospatialsystem.com/lp/elevation_chart" \ -H "X-API-Key: YOUR_KEY" -H "Content-Type: application/json" \ -d '{"lat":-30,"lon":150,"dataset_id":"file100_elevation","fmt":"pdf"}'
{"chart_url":"https://api.geospatialsystem.com/static/output/elev_chart_a3f9d12c.png", "elapsed_ms":285.4}
GETPOST
/lp/slope_chart Pro Slope range-box chart → URL (PNG/SVG/PDF)
GET
POST
Response
curl "https://api.geospatialsystem.com/lp/slope_chart?lat=-30&lon=150&dataset_id=file100_elevation" \ -H "X-API-Key: YOUR_KEY"
curl -X POST "https://api.geospatialsystem.com/lp/slope_chart" \ -H "X-API-Key: YOUR_KEY" -H "Content-Type: application/json" \ -d '{"lat":-30,"lon":150,"dataset_id":"file100_elevation","fmt":"svg"}'
{"chart_url":"https://api.geospatialsystem.com/static/output/slope_chart_b7c2e9.png", "elapsed_ms":292.1}
GETPOST
/lp/terrain_map Pro Composite satellite + contours + flow arrows

Parameters

Name Type Required Notes
lat, lon, dataset_id required As above
offset int optional Half-window pixels · default 20 (range 10–50)
fmt string optional png (default · only supported format)
GET
POST
Response
curl "https://api.geospatialsystem.com/lp/terrain_map?lat=-30&lon=150&dataset_id=file100_elevation&offset=20&fmt=png" \ -H "X-API-Key: YOUR_KEY"
curl -X POST "https://api.geospatialsystem.com/lp/terrain_map" \ -H "X-API-Key: YOUR_KEY" -H "Content-Type: application/json" \ -d '{ "lat":-30,"lon":150,"dataset_id":"file100_elevation", "offset":20,"fmt":"png" }'
{"map_url":"https://api.geospatialsystem.com/static/output/terrain_map_c9a1.png", "offset_px":20,"area_px":"41×41","elapsed_ms":3240.3}
GETPOST
/lp/terrain_3d Pro 3-D surface map coloured by elevation

Parameters

Name Type Required Notes
lat, lon, dataset_id required As above
offset int optional Half-window pixels · default 20 (range 10–50)
elev_angle float optional Camera elevation angle · default 45°
azim_angle float optional Camera azimuth angle · default 135°
fmt string optional png (default) · html (interactive Plotly)
GET
POST
Response
curl "https://api.geospatialsystem.com/lp/terrain_3d?lat=-30&lon=150&dataset_id=file100_elevation&elev_angle=45&azim_angle=135&fmt=png" \ -H "X-API-Key: YOUR_KEY"
curl -X POST "https://api.geospatialsystem.com/lp/terrain_3d" \ -H "X-API-Key: YOUR_KEY" -H "Content-Type: application/json" \ -d '{ "lat":-30,"lon":150,"dataset_id":"file100_elevation", "offset":20,"elev_angle":45,"azim_angle":135,"fmt":"html" }'
{"map_url":"https://api.geospatialsystem.com/static/output/terrain_3d_f2b8.png", "html_url":"https://api.geospatialsystem.com/static/output/terrain_3d_c0ef643d35.html", "elev_angle":45.0,"azim_angle":135.0,"elapsed_ms":3820.1}

MCP — 8 Tools Ready for Claude, GPT, VS Code, Gemini & Modern Agents

Terrain intelligence at your fingertips. Whether you work interactively in a chat window or fully automated through agents, scripts and pipelines — you are three small steps from your first AI terrain query.

1

Get a key

Request a free trial key — it lands in your inbox within minutes. No credit card, no account, and Level 1 queries are free.

2

Simple installation

Pick your client below — Claude, VS Code, ChatGPT, Gemini, etc. — refer to the demo (slides) or copy the snippet below, drop in your key, restart. Under 2 minutes, no code, no SDK.

3

Ask in plain English

"What’s the slope at this address?" — ask interactively in chat, or wire the same tools into automated agent workflows and batch pipelines. The AI picks the right tool every time.

AI-native via MCP for Claude, GPT, VS Code, Gemini and modern agents.

Every Location Profile (LP) endpoint is exposed as a named MCP tool. Any AI client that supports the Model Context Protocol (MCP) can call Geospatial System directly — no code, no SDK, no server to run. You connect to the MCP endpoint or add one JSON block to your client config, paste your API key, restart, and your AI assistant gains real-time access to various country-level high-resolution elevation data.

Ask questions like "What is the elevation and terrain slope at my home address?" or "Which of these 50 property coordinates has the steepest average slope — batch query" — and the agent selects the right tool, calls the API, and returns a formatted answer. For Pro users, it can also generate and return URLs to elevation charts, slope charts, composite satellite terrain maps including contours and modelled surface water flow directions, and interactive 3-D surfaces (HTML), all inline in the conversation.

The security model is key-forward: your X-API-Key travels from your client config to the MCP server and then to API on each request. It is never stored server-side. Free-tier keys unlock LP_Get_Elevation, LP_Get_Elevation_Batch, and list_datasets — perfect for evaluating the platform. Pro keys unlock all 8 tools including Level 2 neighbourhood analysis and Level 3 area mapping.

MCP is supported natively in Claude Desktop, Claude Code, VS Code (GitHub Copilot agent mode, Cline, Continue, etc.), ChatGPT / Codex and Gemini / Antigravity, Cursor, Windsurf, Zed, and any agent that accepts a streamable HTTP MCP server URL.

Configuration examples for all major clients (Claude, Codex, VS Code and Antigravity) are shown in these SLIDES and below — each takes under 2 minutes to set up.

MCP endpoints: https://api.geospatialsystem.com/mcp · https://api.geospatialsystem.com/openapi.json
MCP endpoint (with api_key included): https://api.geospatialsystem.com/mcp?api_key=grk_YOUR_KEY

🖥 Claude Desktop

Windows: %APPDATA%\Roaming\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/

Get Claude Desktop ↗
{ "mcpServers": { "location-profile": { "command": "mcp-remote", "args": [ "https://api.geospatialsystem.com/mcp", "--transport", "http-only", "--header", "Authorization: Bearer grk_YOUR_KEY" ] } } }

⌨ Claude Code (CLI)

Run once from your terminal — Claude Code adds the server to your project config automatically.

Docs ↗
# One-line install in your terminal claude mcp add --transport http location-profile \ https://api.geospatialsystem.com/mcp \ --header "X-API-Key: grk_YOUR_KEY" # Or edit ~/.claude/settings.json manually "mcpServers": { "location-profile": { "url": "https://api.geospatialsystem.com/mcp" } }

💻 VS Code — GitHub Copilot / Cline

Create .vscode/mcp.json in your project root. Works with Copilot Agent mode, Cline, and Continue extensions.

Open VS Code Settings ↗
{ "servers": { "location-profile": { "url": "https://api.geospatialsystem.com/mcp", "type": "http", "headers": { "X-API-Key": "grk_YOUR_KEY" } } }, "inputs": [] }

🖱 Cursor

Settings → MCP tab → Add Server. Or edit ~/.cursor/mcp.json directly. Works in Agent mode (Composer).

Open Cursor Settings ↗
{ "mcpServers": { "location-profile": { "url": "https://api.geospatialsystem.com/mcp", "transport": "http", "headers": { "X-API-Key": "grk_YOUR_KEY" } } } }

🌊 Windsurf (Codeium)

Settings → MCP Servers → Add Server. Or edit ~/.codeium/windsurf/mcp_config.json directly.

Get Windsurf ↗
{ "mcpServers": { "location-profile": { "serverUrl": "https://api.geospatialsystem.com/mcp", "headers": { "X-API-Key": "grk_YOUR_KEY" } } } }

🤖 ChatGPT — Custom GPT Action

My GPTs → Configure → Actions → Add Action. Import the OpenAPI spec and set your key as the auth header.

Open GPT Editor ↗
# ChatGPT → My GPTs → Configure → Actions Schema URL: https://api.geospatialsystem.com/openapi.json Auth type: API Key Header: X-API-Key Value: grk_YOUR_KEY # MCP-compatible GPT agents (HTTP transport) "url": "https://api.geospatialsystem.com/mcp"

✨ Gemini / Google AI Studio

Add as a Function Calling tool via the OpenAPI spec, or use the MCP HTTP URL in Gemini CLI and compatible clients.

Open AI Studio ↗
# Google AI Studio → Extensions → Custom Tool OpenAPI spec: https://api.geospatialsystem.com/openapi.json Auth header: X-API-Key: grk_YOUR_KEY # Gemini CLI / MCP-compatible clients (HTTP) "serverUrl": "https://api.geospatialsystem.com/mcp"

🛠 All 8 MCP Tools + Prompts

All tools require a trial or paid key. Ask these questions in any agent:

list_datasets → catalogue [Free] LP_Get_Elevation → single pixel [Free] LP_Get_Elevation_Batch → ≤100 pts [Free] LP_Get_Elevation_Stats → nbhd elev [Pro] LP_Get_Slope_Stats → nbhd slope [Pro] LP_Get_Elevation_Chart → chart URL [Pro] LP_Get_Slope_Chart → chart URL [Pro] LP_Get_Terrain_Map → map URL·PNG [Pro] LP_Get_Terrain_3D → 3-D·PNG/HTML [Pro]
"Elevation and slope at -30.0, 150.0?" "Batch query 20 property coordinates." "3-D terrain map as HTML for this site." "Which 5 sites in this list have slope >5°?" "Show me both elevation & slope charts PNG for this spot." "Show me terrain map including contours for this address." "Include all charts & maps for a location profile report."

Simple, Transparent Pricing

Start free — no price tags, no credit card. As your API usage grows, upgrade to the tier that matches your call volume. Free covers Level 1 pixel queries; Pro unlocks charts, maps and terrain analysis.

Starter
Free
No credit card required
  • 500 Level 1 API calls
  • Level 1 - /lp/elevation (single pixel)
  • Level 1 - /lp/elevation/batch (up to 100 pts)
  • Full catalogue access
  • MCP access (Level 1 tools)
  • 50 Level 2 + 3 API calls
  • Level 2 — charts & stats
  • Level 3 — terrain maps
Get Free Key →
Enterprise
Let’s talk
tailored quotas, custom data & SLAs
  • Unlimited API calls
  • All 8 LP_ endpoints
  • All 8 MCP tools
  • Custom rate limits
  • Unlimited API keys
  • Custom dataset integration
  • Priority support + SLA
  • On-premise deployment option
Contact →
📈 How upgrades work: start on the free tier and watch your usage. When you need Level 2/3 analysis or a higher call volume, send an upgrade request through the enquiry form — we size your plan to your actual API usage, so you never pay for capacity you don’t use.

Request API Access

Get a free trial key instantly — no credit card needed. For dedicated Pro access, enterprise arrangements, or custom datasets, use the enquiry form.

// Free trial key

Try Level 1 + 2 + 3 free

An active API key allowing for 50 free Level 2 + 3 calls sent directly to your inbox. Level 1 up to 500 calls is free on top. No credit card, no account — your key arrives in minutes.

500 free calls — L1 50 free calls — L2 + L3 ✉ Key sent by email only 🔒 No credit card

Your key is sent here and never shown on-screen. One key per email address.

One key per email · rate-limited by IP · key is never shown on this page.

By continuing you accept our terms of service.

Check your inbox

Your trial key is on its way to

Key generated and emailed
Not stored or shown here — your inbox is the only place it appears.
50 Level 2+3 calls included
Level 1 is free and never deducted from your quota.
!
Check spam if it doesn't arrive in 2 min
Add noreply@geospatialsystem.com to your contacts.
Didn't receive it?
Available in 60s

Project & Enterprise Enquiries

For Pro access, volume pricing, custom datasets, or general questions — we reply within one business day.

📧
Emailcontact@geospatialsystem.com
📄