Introduction
API reference
The TerraLab REST API serves the same 29 tools as the MCP server, as HTTPS endpoints: each tool is a POST with a JSON body, the account endpoints are GET.
Base URL
https://mcp.terra-lab.ai
Send your API key as a Bearer token on every call except the two public documents. See Authentication.
Account and discovery
| Endpoint | Auth | What it returns |
|---|---|---|
GET /v1/me | Key | The account, its calls this month and today, its balance and its activation state. |
GET /v1/tools | Key | Every tool with its input and output JSON Schema. |
GET /v1/openapi.json | None | This reference as an OpenAPI 3.1 document: https://mcp.terra-lab.ai/v1/openapi.json. |
GET /v1/meta/pricing | None | The price grid as JSON: https://mcp.terra-lab.ai/v1/meta/pricing. |
Check your key and your remaining calls:
curl https://mcp.terra-lab.ai/v1/me \
-H "Authorization: Bearer $TERRALAB_API_KEY"
import os
import requests
response = requests.get(
"https://mcp.terra-lab.ai/v1/me",
headers={"Authorization": f"Bearer {os.environ['TERRALAB_API_KEY']}"},
timeout=120,
)
response.raise_for_status()
print(response.json())
const response = await fetch('https://mcp.terra-lab.ai/v1/me', {
headers: {
Authorization: `Bearer ${process.env.TERRALAB_API_KEY}`,
},
});
const data = await response.json();
console.log(data);
{
"account": "3f9c0a1e7b2d4c6a8e0f1b3d",
"auth": "key",
"today": {
"calls": 3,
"limit": 100
},
"month": {
"calls": 12,
"included": 100,
"resets_at": "2026-11-01T00:00:00.000Z"
},
"balance": {
"currency": "EUR",
"amount": 0,
"micros": 0
},
"activation": {
"first_call_at": null,
"first_call_client": null
}
}
An illustrative answer for a new account. month.included is the number of calls included this calendar month (UTC); later calls are taken from the balance. today.limit carries the same number for older clients.
Tools
Places
| Tool | What it gives |
|---|---|
| Find places and addresses | Coordinates of an address or place name, the address at a point, or a list of up to 100 addresses placed on a map with a CSV for QGIS. |
| Convert coordinates | Coordinates converted between decimal degrees, degrees minutes seconds, UTM, MGRS, Lambert 93 or any EPSG code, with the format detected for you. |
| Measure distance, area, radius or buffer | Geodesic distance and bearing between places, the length of a line, the area and perimeter of a polygon, or a circle or buffer around a shape. |
Map data
| Tool | What it gives |
|---|---|
| Extract open map data for an area | OpenStreetMap and Overture layers for any area: buildings, roads, addresses, points of interest, land use, water and more, as GIS files. |
| Open, map and convert GIS data | Any GeoJSON, KML, KMZ, GPX, Shapefile, CSV or WKT read, checked, shown on a map and converted to another format. |
| Buffer, merge, clip or simplify features | One GIS operation on a set of features: buffer, union, dissolve, intersection, difference, clip or simplify, returned as a file. |
Terrain and routes
| Tool | What it gives |
|---|---|
| Elevation, profile and contour lines | Elevation of points, a profile along a path, or a DEM, hillshade, slope and contour lines for an area, worldwide at 30 m. |
| Road route between places | Driving, walking or cycling route through 2 to 25 places, with distance and travel time per leg and the route line. |
| Area reachable in a travel time | The area reachable from 1 to 10 places within a travel time or a distance on the road network, driving, walking or cycling (isochrones). |
Imagery and land
| Tool | What it gives |
|---|---|
| Satellite image of an area | A recent Sentinel-2 image of an area in true colour, false colour or NDVI, or an IGN aerial photo in France, as a GeoTIFF. |
| Forest type (natural, planted, plantation) | Whether a forest is natural, naturally regenerating, planted, a plantation or tree crops, mapped at 10 m for 2020. |
| Estimate the population of an area | A modelled estimate of the people living in a circle, a bounding box, a travel area or an administrative boundary, from the GHS-POP 2025 grid. |
France
| Tool | What it gives |
|---|---|
| French cadastral parcel and zoning | The French cadastral parcel at an address or point, its reference and area, and the urban plan zone that applies there. |
| French building heights | Height in metres, floors, main use and year built of every building around an address or in a small area in France, from IGN BD TOPO. |
| Natural risks at an address or a point | Natural risks at an address or point: flood zones, clay, seismic zone, cavities and commune risks in France, river flood depth elsewhere. |
Data catalog
| Tool | What it gives |
|---|---|
| Find a dataset in the TerraLab catalogue | Search the TerraLab catalogue of open datasets by need or place, with each licence, coverage, size and the call that gets it. |
| Extract a hosted dataset for an area | A hosted dataset from the TerraLab catalogue cut to an area: a GeoTIFF or a vector file with its licence, or only the statistics. |
| Ask TerraLab to add data it does not have | Ask TerraLab to add geographic data the catalogue does not have yet, with what you need and up to five places where you need it. |
OpenAPI
Import https://mcp.terra-lab.ai/v1/openapi.json into Postman, Insomnia, Bruno or a client generator. It is built from the tool schemas the server runs, so it is never behind the server.
Updated 2026-10-27