Find an API

Search public APIs with auth details & Postman guides

← All APIs

Netatmo

netatmo · IoT

IoT No Auth Free & Open iot

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" button (authenticate with the authorization code OAuth2 flow by clicking the authenticate button in the methods). You can find the source code for this site can be found in the project <a href="https://github.com/cbornet/netatmo-swagger-u

Authentication

No authentication requiredFree to use with no key needed.

Sample Requests

GET addwebhook

Links a callback url to a user.

https://api.apis.guru/v2/specs/netatmo.net/1.1.5/addwebhook?url=https://example.com&app_type=example

Hover any highlighted part to learn what it does

curl -X GET "https://api.apis.guru/v2/specs/netatmo.net/1.1.5/addwebhook?url=https%3A%2F%2Fexample.com&app_type=example"
import requests
params = {
    "url": "https://example.com",
    "app_type": "example"
}
response = requests.get(
    "https://api.apis.guru/v2/specs/netatmo.net/1.1.5/addwebhook",
    params=params,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/netatmo.net/1.1.5/addwebhook');
url.searchParams.set('url', 'https://example.com');
url.searchParams.set('app_type', 'example');

const response = await fetch(url); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
	"net/url"
)

func main() {
	baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/netatmo.net/1.1.5/addwebhook")
	q := baseURL.Query()
	q.Set("url", "https://example.com")
	q.Set("app_type", "example")
	baseURL.RawQuery = q.Encode()
	targetURL := baseURL.String()
	req, _ := http.NewRequest("GET", targetURL, nil)

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
require "net/http"
require "json"

uri = URI("https://api.apis.guru/v2/specs/netatmo.net/1.1.5/addwebhook")
uri.query = URI.encode_www_form({
  "url" => "https://example.com",
  "app_type" => "example"
})

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Get.new(uri)

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/netatmo.net/1.1.5/addwebhook?" . http_build_query([
    "url" => "https://example.com",
    "app_type" => "example"
]);
$opts = ["http" => [
    "method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));
GET dropwebhook

Dissociates a webhook from a user.

https://api.apis.guru/v2/specs/netatmo.net/1.1.5/dropwebhook?app_type=example

Hover any highlighted part to learn what it does

curl -X GET "https://api.apis.guru/v2/specs/netatmo.net/1.1.5/dropwebhook?app_type=example"
import requests
params = {
    "app_type": "example"
}
response = requests.get(
    "https://api.apis.guru/v2/specs/netatmo.net/1.1.5/dropwebhook",
    params=params,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/netatmo.net/1.1.5/dropwebhook');
url.searchParams.set('app_type', 'example');

const response = await fetch(url); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
	"net/url"
)

func main() {
	baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/netatmo.net/1.1.5/dropwebhook")
	q := baseURL.Query()
	q.Set("app_type", "example")
	baseURL.RawQuery = q.Encode()
	targetURL := baseURL.String()
	req, _ := http.NewRequest("GET", targetURL, nil)

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
require "net/http"
require "json"

uri = URI("https://api.apis.guru/v2/specs/netatmo.net/1.1.5/dropwebhook")
uri.query = URI.encode_www_form({
  "app_type" => "example"
})

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Get.new(uri)

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/netatmo.net/1.1.5/dropwebhook?" . http_build_query([
    "app_type" => "example"
]);
$opts = ["http" => [
    "method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));
GET getcamerapicture

Returns the snapshot associated to an event.

https://api.apis.guru/v2/specs/netatmo.net/1.1.5/getcamerapicture?key=YOUR_API_KEY&image_id=example

Hover any highlighted part to learn what it does

curl -X GET "https://api.apis.guru/v2/specs/netatmo.net/1.1.5/getcamerapicture?key=YOUR_API_KEY&image_id=example"
import requests
params = {
    "key": "YOUR_API_KEY",
    "image_id": "example"
}
response = requests.get(
    "https://api.apis.guru/v2/specs/netatmo.net/1.1.5/getcamerapicture",
    params=params,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/netatmo.net/1.1.5/getcamerapicture');
url.searchParams.set('key', 'YOUR_API_KEY');
url.searchParams.set('image_id', 'example');

const response = await fetch(url); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
	"net/url"
)

func main() {
	baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/netatmo.net/1.1.5/getcamerapicture")
	q := baseURL.Query()
	q.Set("key", "YOUR_API_KEY")
	q.Set("image_id", "example")
	baseURL.RawQuery = q.Encode()
	targetURL := baseURL.String()
	req, _ := http.NewRequest("GET", targetURL, nil)

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
require "net/http"
require "json"

uri = URI("https://api.apis.guru/v2/specs/netatmo.net/1.1.5/getcamerapicture")
uri.query = URI.encode_www_form({
  "key" => "YOUR_API_KEY",
  "image_id" => "example"
})

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Get.new(uri)

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/netatmo.net/1.1.5/getcamerapicture?" . http_build_query([
    "key" => "YOUR_API_KEY",
    "image_id" => "example"
]);
$opts = ["http" => [
    "method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));

Postman Setup Guide

Get Postman ↗
  1. See official documentation for authentication and setup.

What can you build with Netatmo?

Netatmo is a IoT API. Developers commonly use iot APIs for:

  • collecting and streaming sensor and device data
  • monitoring and controlling connected devices
  • building smart-home and industrial dashboards
  • processing device telemetry at scale
  • automating device provisioning and alerting

No authentication required. This API is open — no signup or key needed. Ideal for quick prototypes and public-facing features. Netatmo is free to use, making it a low-risk choice to experiment with.

New to APIs? Read our beginner's guide · Learn about API keys · What is REST?

Open documentation ↗