---
title: "Request contour (Contoor) data (async, delivered by email)"
description: "Queues generation of contour data for a parcel. The result is emailed to `target_email` asynchronously; the HTTP response only confirms the request was received."
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.aireon.ch/llms.txt
> Use this file to discover all available pages before exploring further.

Path: RES API (public) › Parcel

`POST /res_api/contour_data`

Queues generation of contour data for a parcel. The result is emailed to `target_email` asynchronously; the HTTP response only confirms the request was received.

## Authentication

- `ResApiToken`, apiKey, in header, header `token`

## Request body

_Required._

- `target_email` (`requestContourData.target_email`; string, required): Address the contour result is sent to.
  - format `email`
- `parcel_id` (`requestContourData.parcel_id`; string, required): Parcel EGRID.

## Example request

```json
{
  "target_email": "user@example.com",
  "parcel_id": "string"
}
```

## Code samples

### cURL

```bash
curl --request POST \
  --url https://res.aireon.ch/res_api/contour_data \
  --header 'Content-Type: application/json' \
  --header 'token: <token>' \
  --data '
{
  "target_email": "user@example.com",
  "parcel_id": "string"
}
'
```

### TypeScript

```typescript
const url = 'https://res.aireon.ch/res_api/contour_data';
const options = {
  method: 'POST',
  headers: {'Content-Type': 'application/json', token: '<token>'},
  body: JSON.stringify({target_email: 'user@example.com', parcel_id: 'string'})
};

fetch(url, options)
  .then(res => res.json())
  .then(json => console.log(json))
  .catch(err => console.error(err));
```

### Python

```python
import requests

url = "https://res.aireon.ch/res_api/contour_data"

payload = {
    "target_email": "user@example.com",
    "parcel_id": "string"
}
headers = {
    "Content-Type": "application/json",
    "token": "<token>"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
```

## Responses

### 200

Request acknowledged, or a plain-text error body.

#### Example

```text
Request recieved... The Contoor will be sent to user@example.com
```

### 401

Authentication missing or invalid.

#### Example

```json
{
  "error": "string",
  "message": "string"
}
```

- `error` (`requestContourData.response.401.error`; string, required): Human-readable error description.
- `message` (`requestContourData.response.401.message`; string, optional): Optional underlying error message.


Source: https://docs.aireon.ch/res/request-contour-data/index.md
