# Natural risks at an address or a point

> Index of the TerraLab docs for agents: [llms.txt](https://terra-lab.ai/docs/llms.txt). Every docs page is also served as markdown: add .md to its URL.

Natural risks at an address or point: flood zones, clay, seismic zone, cavities and commune risks in France, river flood depth elsewhere.

| | |
| --- | --- |
| REST | `POST https://mcp.terra-lab.ai/v1/tools/get_natural_risks` |
| MCP tool | `get_natural_risks` on `https://mcp.terra-lab.ai/mcp` |
| Group | France |

## Request

```bash
curl -X POST https://mcp.terra-lab.ai/v1/tools/get_natural_risks \
  -H "Authorization: Bearer $TERRALAB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"address":"12 quai Saint-Antoine, 69002 Lyon"}'
```

```python
import os
import requests

response = requests.post(
    "https://mcp.terra-lab.ai/v1/tools/get_natural_risks",
    headers={"Authorization": f"Bearer {os.environ['TERRALAB_API_KEY']}"},
    json={
        "address": "12 quai Saint-Antoine, 69002 Lyon",
    },
    timeout=120,
)
response.raise_for_status()
print(response.json()["structuredContent"])
```

```javascript
const response = await fetch('https://mcp.terra-lab.ai/v1/tools/get_natural_risks', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.TERRALAB_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "address": "12 quai Saint-Antoine, 69002 Lyon"
  }),
});
const data = await response.json();
console.log(data.structuredContent);
```

Other valid request bodies:

```json
{"latitude":24.45,"longitude":89.7,"risks":["flood"]}
```

## Parameters

A JSON object in the request body; in an MCP client, the arguments of the tool call.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `address` | string | No | An address or place. The place the user asks about, not the user's own location. Up to 300 characters. |
| `latitude` | number | No | From -90 to 90. |
| `longitude` | number | No | From -180 to 180. |
| `risks` | array of string | No | Keep only these risks. Leave out for all. 0 to 8 items. |

## Response

`structuredContent` holds the result, `content` the same result as text for a model, and `isError` is `true` when the tool refused the request or failed; then `structuredContent.code`, `message` and `hint` say what to change.

```json
{
  "structuredContent": {
    "sources": [{ "name": "...", "licence": "...", "url": "..." }],
    "downloads": [{ "label": "...", "format": "...", "url": "...", "name": "..." }]
  },
  "content": [{ "type": "text", "text": "..." }],
  "isError": false
}
```

Every result lists its `sources` with their licence. File results come as `downloads`: each link builds its file when opened.

## Errors

A missing key answers `401`, an empty balance `402`, too many calls `429`. A call that fails or finds nothing is not counted. See [Errors and rate limits](https://terra-lab.ai/docs/errors).

## Description for agents

The text the server gives an agent to decide when to call this tool:

> Use this when the user asks about the natural risks of an address or a point: "is 12 quai Saint-Antoine, Lyon in a flood zone?", "clay shrink-swell hazard at this address", "100-year flood depth at 24.45, 89.70 in Sirajganj, Bangladesh". Give exactly one of: address, or latitude with longitude. In France (TerraLab copies of Géorisques files, refreshed weekly): flood zones of the 124 TRI, clay shrink-swell exposure, seismic zone and cavities within 500 m at the point; flood, radon, landslide, wildfire and industrial risks of the commune (scope says point or commune). Elsewhere: JRC river flood depth for 10, 100 and 500-year floods (about 1 km cells). risks keeps some of them. Each value has a status: ok, absent (the source maps this place and finds nothing), failed (the source did not answer: say it is unknown and can be retried, never that there is no risk) or not_mapped (no source covers it here: unknown, not safe). Read the status before the value. One point per call. Regulatory zones are not a building decision; give the Géorisques report link for France. Never use the user's current location unless they type it.


Source: https://terra-lab.ai/docs/api/get_natural_risks · Updated 2026-10-27
