Skip to content

RESTful API

The back end exposes a number of API endpoints which are referenced in the table below.

Method Request URL Authentication POST JSON Body Info
GET /rest/features NONE_REQUIRED none Tells the client which features of the UI should be use
GET /rest/mqttStatus IS_AUTHENTICATED none Current MQTT connection status
GET /rest/mqttSettings IS_ADMIN none Currently used MQTT settings
POST /rest/mqttSettings IS_ADMIN {"enabled":false,"uri":"mqtt://192.168.1.12:1883","username":"","password":"","client_id":"esp32-f412fa4495f8","keep_alive":120,"clean_session":true} Update MQTT settings with new parameters
GET /rest/ntpStatus IS_AUTHENTICATED none Current NTP connection status
GET /rest/ntpSettings IS_ADMIN none Current NTP settings
POST /rest/ntpSettings IS_ADMIN {"enabled": true,"server": "time.google.com","tz_label": "Europe/London","tz_format": "GMT0BST,M3.5.0/1,M10.5.0"} Update the NTP settings
GET /rest/apStatus IS_AUTHENTICATED none Current AP status and client information
GET /rest/apSettings IS_ADMIN none Current AP settings
POST /rest/apSettings IS_ADMIN {"provision_mode": 1,"ssid": "ESP32-SvelteKit-e89f6d20372c","password": "esp-sveltekit","channel": 1,"ssid_hidden": false,"max_clients": 4,"local_ip": "192.168.4.1","gateway_ip": "192.168.4.1","subnet_mask": "255.255.255.0"} Update AP settings
GET /rest/wifiStatus IS_AUTHENTICATED none Current status of the wifi client connection
GET /rest/scanNetworks IS_ADMIN none Async Scan for Networks in Range
GET /rest/listNetworks IS_ADMIN none List networks in range after successful scanning. Otherwise triggers scanning.
GET /rest/wifiSettings IS_ADMIN none Current WiFi settings
POST /rest/wifiSettings IS_ADMIN {"hostname":"esp32-f412fa4495f8","priority_RSSI":true,"wifi_networks":[{"ssid":"YourSSID","password":"YourPassword","static_ip_config":false}]} Update WiFi settings and credentials
GET /rest/systemStatus IS_AUTHENTICATED none Get system information about the ESP.
POST /rest/restart IS_ADMIN none Restart the ESP32
POST /rest/factoryReset IS_ADMIN none Reset the ESP32 and all settings to their default values
POST /rest/uploadFirmware IS_ADMIN none File upload of firmware.bin
POST /rest/signIn NONE_REQUIRED {"password": "admin","username": "admin"} Signs a user in and returns access token
GET /rest/securitySettings IS_ADMIN none retrieves all user information and roles
POST /rest/securitySettings IS_ADMIN {"jwt_secret": "734cb5bb-5597b722", "users": [{"username": "admin", "password": "admin", "admin": true}, {"username": "guest", "password": "guest", "admin": false, }]} retrieves all user information and roles
GET /rest/verifyAuthorization NONE_REQUIRED none Verifies the content of the auth bearer token
GET /rest/generateToken?username={username} IS_ADMIN {"token": "734cb5bb-5597b722"} Generates a new JWT token for the user from username
POST /rest/sleep IS_AUTHENTICATED none Puts the device in deep sleep mode
POST /rest/downloadUpdate IS_ADMIN {"download_url": "https://github.com/theelims/ESP32-sveltekit/releases/download/v0.1.0/firmware_esp32s3.bin"} Download link for OTA. This requires a valid SSL certificate and will follow redirects.