# Netatmo API

> Netatmo API on Apizie: 19 endpoints (Links a callback url to a user., The method createnewschedule creates a new schedule stored in the backup list., Dissociates a webhook from a user., Returns the snapshot associated to an event., …) returned as clean JSON through one API key. Send your own provider key in the x-upstream-key header. Call it over REST at https://apizie.tech/v1/iot:netatmo/{endpoint} or from Claude, ChatGPT and Cursor through the Apizie MCP server. Free plan: 1,000 requests a month.

- Project key: `iot:netatmo`
- Category: IoT
- Status: byok
- Source: https://netatmo.net
- Page: https://apizie.tech/api/iot/netatmo
- OpenAPI: https://apizie.tech/api/iot/netatmo/openapi.json

Welcome to the Netatmo swagger on-line documentation ! This site is a complement to the official Netatmo developper documentation using swagger to bring interactivity and easy testing of requests with the "try it"…

## Endpoints

### Links a callback url to a user.
`GET https://apizie.tech/v1/iot:netatmo/addwebhook` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| url | string | yes | Your webhook callback url |
| app_type | string | yes | Webhooks are only available for Welcome, enter app_camera. |

### The method createnewschedule creates a new schedule stored in the backup list.
`POST https://apizie.tech/v1/iot:netatmo/createnewschedule` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| device_id | string | yes | The relay id |
| module_id | string | yes | The thermostat id |

### Dissociates a webhook from a user.
`GET https://apizie.tech/v1/iot:netatmo/dropwebhook` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| app_type | string | yes | For Welcome, use app_camera |

### Returns the snapshot associated to an event.
`GET https://apizie.tech/v1/iot:netatmo/getcamerapicture` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| image_id | string | yes | id of the image (can be retrieved as 'id' in 'face' in Gethomedata, or as 'id' in 'snapshot' in Getnextevents, Getlasteventof and… |
| key | string | yes | Security key to access snapshots. |

### Returns the snapshot associated to an event.
`GET https://apizie.tech/v1/iot:netatmo/geteventsuntil` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| home_id | string | yes | ID of the Home you're interested in |
| event_id | string | yes | Your request will retrieve all the events until this one |

### The method gethomecoachsdata Returns data from a user Healthy Home Coach Station (measures and device…
`GET https://apizie.tech/v1/iot:netatmo/gethomecoachsdata` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| device_id | string | no | Id of the device you want to retrieve information of |

### Returns information about users homes and cameras.
`GET https://apizie.tech/v1/iot:netatmo/gethomedata` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| home_id | string | no | Specify if you're looking for the events of a specific Home. |
| size | integer | no | Number of events to retrieve. Default is `30`. |

### Returns most recent events.
`GET https://apizie.tech/v1/iot:netatmo/getlasteventof` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| home_id | string | yes | ID of the Home you're interested in |
| person_id | string | yes | Your request will retrieve all events of the given home until the most recent event of the given person |
| offset | integer | no | Number of events to retrieve. Default is 30. |

### The method getmeasure returns the measurements of a device or a module.
`GET https://apizie.tech/v1/iot:netatmo/getmeasure` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| device_id | string | yes | Id of the device whose module's measurements you want to retrieve. This _id can be found in the user's devices field. |
| module_id | string | no | If you don't specify any module_id you will retrieve the device's measurements. If you specify a module_id you will retrieve the module's… |
| scale | string | yes | Defines the time interval between two measurements. Possible values : max -> every value stored will be returned 30min -> 1 value every 30… |
| type | array | yes | Measures you are interested in. Data you can request depends on the scale. **For Weather Station:** * max -> Temperature (°C), CO2 (ppm),… |
| date_begin | integer | no | Starting timestamp (utc) of the requested measurements. Please note measurement retrieving is limited to 1024 measurements. |
| date_end | string | no | Ending timestamp (utc) of the request measurements. If you want only the last measurement, do not provide date_begin, and set date_end to… |
| limit | integer | no | Limits the number of measurements returned (default & max is 1024) |
| optimize | boolean | no | Allows you to choose the format of the answer. If you build a mobile app and bandwith usage is an issue, use `optimize = true`. Use… |
| real_time | boolean | no | In scales higher than max, since the data is aggregated, the timestamps returned are by default offset by +(scale/2). For instance, if you… |

### Returns previous events.
`GET https://apizie.tech/v1/iot:netatmo/getnextevents` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| home_id | string | yes | ID of the Home you're interested in |
| event_id | string | yes | Your request will retrieve events occured before this one |
| size | integer | no | Number of events to retrieve. Default is 30. |

### Retrieves publicly shared weather data from Outdoor Modules within a predefined area.
`GET https://apizie.tech/v1/iot:netatmo/getpublicdata` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| lat_ne | integer | yes | Latitude of the north east corner of the requested area. -85 lat_sw |
| lon_ne | integer | yes | Longitude of the north east corner of the requested area. -180 lon_sw |
| lat_sw | integer | yes | Latitude of the south west corner of the requested area. -85 <= lat_sw <= 85 |
| lon_sw | integer | yes | Longitude of the south west corner of the requested area. -180 <= lon_sw <= 180 |
| required_data | array | no | To filter stations based on relevant measurements you want (e.g. rain will only return stations with rain gauges). Default is no filter.… |
| filter | boolean | no | True to exclude stations with abnormal temperature measures. Default is false. |

### The method getstationsdata Returns data from a user's Weather Stations (measures and device specific data).
`GET https://apizie.tech/v1/iot:netatmo/getstationsdata` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| device_id | string | no | Id of the device you want to retrieve information of |
| get_favorites | boolean | no | Whether to include the user's favorite Weather Stations in addition to the user's own Weather Stations |

### The method getthermostatsdata returns information about user's thermostats such as their last measurements.
`GET https://apizie.tech/v1/iot:netatmo/getthermostatsdata` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| device_id | string | no | Id of the device you want to retrieve information of |

### The method partnerdevices returns the list of device_id to which your partner application has access to.
`GET https://apizie.tech/v1/iot:netatmo/partnerdevices` (byok)

### Sets a person as 'Away' or the Home as 'Empty'. The event will be added to the user’s timeline.
`POST https://apizie.tech/v1/iot:netatmo/setpersonsaway` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| home_id | string | yes | ID of the Home you're interested in |
| person_id | string | no | If a person_id is specified, that person will be set as 'Away'. If no person_id is specified, the Home will be set as 'Empty'. |

### Sets a person as 'At home'.
`POST https://apizie.tech/v1/iot:netatmo/setpersonshome` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| home_id | string | yes | ID of the Home you're interested in |
| person_ids | string | yes | List of persons IDs |

### The method setthermpoint changes the Thermostat manual temperature setpoint.
`POST https://apizie.tech/v1/iot:netatmo/setthermpoint` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| device_id | string | yes | The relay id |
| module_id | string | yes | The thermostat id |
| setpoint_mode | string | yes | Chosen setpoint_mode |
| setpoint_endtime | integer | no | When using the manual or max setpoint_mode, this parameter defines when the setpoint expires. |
| setpoint_temp | number | no | When using the manual setpoint_mode, this parameter defines the temperature setpoint (in Celcius) to use. |

### The method switchschedule switches the Thermostat's schedule to another existing schedule.
`POST https://apizie.tech/v1/iot:netatmo/switchschedule` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| device_id | string | yes | The relay id |
| module_id | string | yes | The thermostat id |
| schedule_id | string | yes | The schedule id. It can be found in the getthermstate response, under the keys `therm_program_backup` and `therm_program`. |

### The method syncschedule changes the Thermostat weekly schedule.
`POST https://apizie.tech/v1/iot:netatmo/syncschedule` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| device_id | string | yes | The relay id |
| module_id | string | yes | The thermostat id |

## Example
```
curl "https://apizie.tech/v1/iot:netatmo/addwebhook" \
  -H "x-api-key: $APIZIE_KEY" \
  -H "x-upstream-key: $PROVIDER_KEY"
```

## FAQ

### How do I call the Netatmo API?
Create a free Apizie key, then send GET https://apizie.tech/v1/iot:netatmo/addwebhook with the header x-api-key. Every endpoint returns { project, data, timestamp }.

### Is the Netatmo API free on Apizie?
Yes. The Free plan includes 1,000 requests a month at 100 requests a minute, no credit card. Netatmo itself also needs your own key from netatmo.net.

### Can AI agents use the Netatmo API?
Yes. Add the Apizie MCP server (https://apizie.tech/mcp) to Claude, ChatGPT, Cursor or VS Code, then ask in plain language. The agent calls run_scraper with project key iot:netatmo.

### What is the status of the Netatmo API?
Needs your own provider key (bring your own key)
