Vera API Documentation: Complete Developer Guide
The Vera API provides developers and advanced users with direct access to Vera controllers through a collection of HTTP-based endpoints. These interfaces make it possible to monitor devices, trigger scenes, modify variables, and build custom integrations without relying solely on the graphical user interface.
Whether you’re developing a mobile application, integrating a third-party platform, or automating complex smart home workflows, the Vera API offers a flexible way to interact with your controller programmatically.
This guide explains the API architecture, authentication methods, common endpoints, request formats, and practical examples to help you get started.
What Is the Vera API?
The Vera API is a collection of HTTP endpoints exposed by the controller that allow applications and scripts to communicate directly with the automation engine.
Using these endpoints, you can:
- Read device information
- Control switches
- Lock and unlock doors
- Trigger scenes
- Read sensors
- Modify variables
- Query system status
- Execute Luup code
- Build custom dashboards
Most API requests return data in JSON format, making integration straightforward for many programming languages.
How the Vera API Works
Every API request follows a similar process.
Application
↓
HTTP Request
↓
Vera Controller
↓
Luup Engine
↓
Device
↓
JSON Response
Example:
Your application sends a request to turn on a smart switch.
The Vera controller validates the request, forwards it to the Luup engine, communicates with the device, and returns a response confirming the result.
Local vs Remote API Access
Local API
The local API communicates directly with the controller over your home network.
Example: http://192.168.1.xxx:3480/
Advantages:
- Faster response
- No internet dependency
- Lower latency
- Better privacy
Most integrations use local access whenever possible.
Remote API
Remote access allows applications to communicate with the controller over the internet.
Advantages:
- Access while away from home
- Mobile applications
- Cloud integrations
Considerations:
- Depends on internet connectivity
- May introduce additional latency
- Follow secure authentication practices
API Architecture
The Vera platform consists of several interacting components.
Client Application
↓
HTTP API
↓
Luup Engine
↓
Device Plugins
↓
Z-Wave / Zigbee Devices
Each layer has a specific role:
Client Application
Your custom software.
Examples:
- Mobile app
- Dashboard
- Home automation server
- Voice assistant
- Integration platform
HTTP API
Processes incoming requests.
Responsibilities:
- Parse parameters
- Validate commands
- Return responses
Luup Engine
The automation engine responsible for:
- Device control
- Variables
- Scenes
- Plugins
- Event handling
Device Plugins
Plugins translate API requests into commands understood by individual devices.
Examples:
- Lighting
- Locks
- Sensors
- Thermostats
Authentication
Authentication depends on whether you’re using local or remote access.
Local API access on trusted home networks is typically simpler, while remote access generally requires account-based authentication and secure communication.
Always:
- Use strong passwords.
- Protect administrator accounts.
- Restrict unnecessary network exposure.
- Prefer encrypted connections where available.
Request Format
Most requests follow a standard HTTP structure.
General format:
http://controller_ip:3480/data_request?id=REQUEST_NAME
Additional parameters are appended to specify the desired action or target device.
For example, a request might include:
- Request identifier
- Device number
- Service identifier
- Action name
- Variable values
Using a consistent URL structure makes the API predictable and easy to integrate.
Response Format
Most Vera API responses are returned as JSON.
A response may include:
- Device identifiers
- Current status
- Variable values
- Success or error information
- Timestamps
JSON is supported by virtually every modern programming language, making it ideal for custom integrations.
Common API Endpoints
The Vera API provides endpoints for a wide range of controller functions.
Common categories include:
System Information
Retrieve:
- Controller status
- Firmware version
- Device count
- System information
Device Information
Read:
- Device names
- Device IDs
- Current states
- Room assignments
- Categories
Device Control
Execute commands such as:
- Turn lights on/off
- Lock or unlock doors
- Adjust dimmer levels
- Change thermostat settings
- Activate switches
Scene Control
Available actions include:
- Start scenes
- Stop scenes
- Query available scenes
- Check execution status
Variable Management
Read and update:
- Device variables
- Plugin variables
- User-defined values
- Automation settings
Luup Functions
Advanced users can:
- Execute Luup code
- Trigger custom scripts
- Read Lua variables
- Build plugin integrations
HTTP Methods
Most Vera API interactions rely on standard HTTP methods.
GET
Used to retrieve information without modifying controller state.
Examples include:
- Device status
- Variables
- Scene lists
POST
Used when sending data that changes the controller’s state.
Examples include:
- Executing actions
- Updating variables
- Triggering automations
Understanding JSON Responses
A typical response contains structured data representing the requested resource.
Common fields include:
- Device number
- Device name
- Service identifier
- Variable value
- Timestamp
- Status code
Learning to parse JSON responses is essential when building applications that communicate with the Vera controller.
Device Control API
One of the most common uses of the Vera API is controlling smart devices.
Typical operations include:
- Turn lights on or off
- Dim lighting
- Lock or unlock doors
- Change thermostat settings
- Open or close garage doors
- Activate switches
- Trigger plugins
Most device actions require:
- Device ID
- Service ID
- Action name
Reading Device Information
Applications often need to retrieve the current state of a device before taking action.
Common information includes:
- Device Name
- Device Number
- Category
- Room
- Current Status
- Battery Level
- Last Update Time
- Parent Device
- Manufacturer
Typical use cases include:
- Dashboard applications
- Mobile apps
- Home monitoring systems
- Reporting tools
Lock Control
Supported lock actions generally include:
- Lock
- Unlock
- Read lock status
- Retrieve battery level
Many smart locks also expose:
- Last user
- PIN events
- Failed attempts
- Tamper notifications
Locks are commonly integrated with:
- Security systems
- Welcome Home scenes
- Vacation mode
- Lighting automation
Thermostat Control
Supported operations may include:
- Set temperature
- Change HVAC mode
- Read indoor temperature
- Fan control
- Energy-saving mode
Automations often combine thermostat control with:
- Motion sensors
- Window sensors
- Occupancy detection
- Time schedules
Sensor Data
The API allows applications to read information from many sensor types.
Examples include:
Motion Sensors
Retrieve:
- Motion state
- Last trip time
- Battery level
Door Sensors
Read:
- Open
- Closed
- Last changed
Leak Sensors
Retrieve:
- Water detected
- Dry state
- Battery
Temperature Sensors
Read:
- Current temperature
- Historical values (where supported)
Humidity Sensors
Retrieve:
- Relative humidity
- Reporting interval
Scene API
Scenes automate multiple actions simultaneously.
The API allows applications to:
- Start scenes
- Stop scenes
- Query available scenes
- Check execution state
Example scene:
Movie Night
Actions:
- Dim lights
- Close blinds
- Turn on TV
- Start AV receiver
- Set thermostat
Instead of issuing multiple device commands individually, a single scene request performs the entire sequence.
Variable Management
Nearly every Vera device exposes variables.
Variables represent:
- Current status
- Configuration values
- Sensor readings
- Plugin settings
Examples:
- Switch state
- Brightness level
- Temperature
- Battery percentage
- Alarm state
Applications frequently read variables to determine current conditions before making automation decisions.
Updating Variables
Some variables can also be modified through the API.
Examples include:
- User preferences
- Plugin settings
- Automation parameters
- Configuration values
Always verify whether a variable is intended to be writable before attempting to change it.
Polling Device Status
Many integrations periodically check device status.
Typical polling intervals:
| Device Type | Recommended Interval |
|---|---|
| Lights | 5–30 seconds |
| Motion Sensors | Event-driven when possible |
| Thermostats | 30–60 seconds |
| Door Locks | 30–60 seconds |
| Weather Devices | 5–15 minutes |
Avoid excessive polling, especially on larger installations.
Event-Driven Automation
Instead of constantly polling devices, many systems react to events.
Example:
Motion detected
↓
API receives notification
↓
Automation evaluates rules
↓
Hallway lights turn on
↓
Security log updated
Event-driven automation is generally more efficient than frequent polling.
Luup Integration
The API works closely with the Luup engine.
Applications can interact with:
- Luup variables
- Plugins
- Automation logic
- Device services
- Scene execution
This makes Vera highly extensible for advanced users and developers.
Plugin Communication
Plugins expose additional functionality through the same API architecture.
Examples include:
- Weather plugins
- Security integrations
- Energy monitoring
- Camera plugins
- Audio systems
Applications interact with plugins using service identifiers and variables in the same way they communicate with built-in devices.
Error Handling
Applications should always check for errors when communicating with the controller.
Common categories include:
Invalid Device
Occurs when the requested device ID does not exist.
Invalid Action
The requested action is unsupported for that device or service.
Missing Parameters
A required parameter was omitted from the request.
Authentication Failure
The application does not have permission to perform the requested operation.
Network Timeout
The controller or target device did not respond within the expected time.
Applications should retry carefully rather than sending repeated rapid requests.
Logging
Good applications maintain detailed logs.
Useful information includes:
- Request time
- Endpoint
- Parameters
- Response
- Execution time
- Error messages
Logging greatly simplifies troubleshooting and performance monitoring.
Performance Considerations
Large smart homes may contain:
- Hundreds of devices
- Thousands of variables
- Dozens of plugins
- Hundreds of daily automations
To maintain good performance:
- Cache frequently used information.
- Minimize unnecessary requests.
- Group related operations where practical.
- Prefer event-driven updates over constant polling.
- Avoid repeatedly requesting unchanged data.
Security Best Practices
When building applications with the Vera API:
- Use secure administrator credentials.
- Restrict access to trusted networks.
- Keep controller firmware updated.
- Remove unused integrations.
- Validate all user input.
- Log administrative actions.
- Back up configurations regularly.
Development Best Practices
For reliable integrations:
- Handle network failures gracefully.
- Validate every API response.
- Expect temporary device unavailability.
- Use meaningful error messages.
- Document custom integrations.
- Test against multiple firmware versions where possible.
- Design automations to recover cleanly after controller restarts.
Frequently Asked Questions
What is the Vera API?
The Vera API is an HTTP-based interface that allows applications, scripts, and third-party services to communicate with a Vera controller. It enables developers to monitor devices, execute scenes, read variables, and control smart home devices programmatically.
Does the Vera API use REST?
The Vera API follows many REST-style principles by using HTTP requests and structured responses. While not a fully RESTful implementation in the strict architectural sense, it provides predictable endpoints for interacting with the controller.
What data format does the API return?
Most responses are returned in JSON, making them easy to parse in virtually every modern programming language.
Can I use the API without Luup?
Yes.
Many common operations—such as controlling devices or running scenes—can be performed directly through API requests. Luup becomes valuable when building more advanced automation logic or plugins.
Which programming languages can use the Vera API?
Any language capable of making HTTP requests can interact with the API, including:
- Python
- JavaScript
- PHP
- C#
- Java
- Go
- Ruby
- PowerShell
Does the API support local access?
Yes.
Most developers prefer local access because it offers:
- Faster response times
- Lower latency
- Better privacy
- Continued operation without internet access
Can I access the API remotely?
Yes.
Remote access is possible when the controller is configured appropriately and the necessary authentication and network security measures are in place.
Can I trigger scenes through the API?
Yes.
Applications can start predefined automation scenes, making it easy to execute multiple actions with a single request.
Can I read sensor data?
Yes.
The API can retrieve information from compatible devices such as:
- Motion sensors
- Door and window sensors
- Temperature sensors
- Humidity sensors
- Leak detectors
- Smart locks
- Thermostats
Can I control Z-Wave devices?
Yes.
The Vera controller communicates with compatible Z-Wave devices, allowing API requests to control switches, dimmers, locks, thermostats, and more.
Can I update device variables?
Some variables are writable, while others are read-only. Always consult the device or plugin documentation before attempting to modify values.
Is authentication required?
Authentication requirements vary depending on whether access is local or remote. Administrative access should always be protected with strong credentials and secure network practices.
Is the API suitable for commercial applications?
Yes.
Many developers use the Vera API to build dashboards, monitoring tools, mobile applications, and custom automation solutions.
Can multiple applications access the controller simultaneously?
Yes.
However, developers should avoid excessive polling or unnecessary requests that could impact controller performance.
Is the API backward compatible?
Many endpoints remain stable across firmware versions, but developers should verify compatibility when upgrading controllers or firmware.
Conclusion
The Vera API provides developers with a powerful interface for building custom smart home integrations, dashboards, and automation workflows. By exposing device control, scene management, variable access, and status monitoring through standard HTTP requests and JSON responses, it enables virtually any programming language or platform to interact with the Vera ecosystem.
Whether you’re creating a personal automation project or developing a commercial application, understanding the API architecture, implementing robust error handling, and following security best practices will help you build stable and scalable solutions.
