Overview
TapHome API enables integration of TapHome devices into third-party applications through HTTP protocol requests and JSON responses. The system operates via https://api.taphome.com/api/TapHomeApi/v1/
Key characteristics include:
- HTTP-based resource access with appropriate status codes
- Standard Swagger documentation available at
https://api.taphome.com/api/doc - UTF-8 encoded JSON responses
- Local network API support (Core 2021.3+) via HTTP without Swagger UI
Local Network Advantage: Direct LAN/VPN access reduces latency and eliminates internet dependency. Core units require fixed IP or mDNS configuration.
Authentication
TapHome API employs custom HTTP authentication using bearer tokens (not username/password credentials).
Header Format
| |
Example Request
| |
cURL Example
| |
Token Management
Locate tokens in TapHome app: Settings → Expose devices → TapHome API
Use context menu (three dots) to generate fresh access tokens. Generating new tokens invalidates previous ones. Query parameter alternative available for GET calls only (security warning: avoid sharing URLs containing tokens).
Compromised tokens require immediate regeneration; only one token remains active simultaneously.
API Reference
Get Location Info
Retrieves Control unit location metadata and validates connectivity status.
Variant 1
| |
Variant 2
| |
Parameters: None
Response:
| |
HTTP Status Errors:
- 401 Unauthorized
- 404 Not Found (location disconnected from cloud)
- 405 Method Not Allowed
- 500 Internal Server Error
Discover Devices
Retrieves exposed devices and their supported value types, including read-only properties like Device Status.
Variant 1
| |
Variant 2
| |
Parameters: None
Response:
| |
HTTP Status Errors:
- 401 Unauthorized
- 404 Not Found (location disconnected from cloud)
- 405 Method Not Allowed
- 500 Internal Server Error
Get Device Value
Retrieves all current values for a specified device, including type IDs and names. Values are numeric (double type). Some properties are read-only.
Frequent requests (under 500ms intervals) may return cached values; compare timestamps for equality only.
Variant 1
| |
Variant 2
| |
Parameters: Device ID in URL path or JSON body
Response:
| |
HTTP Status Errors:
- 401 Unauthorized
- 403 Forbidden (device not exposed)
- 404 Not Found (location disconnected from cloud)
- 405 Method Not Allowed
- 500 Internal Server Error
Get Values of Multiple Devices
Retrieves all current values for multiple devices simultaneously. Reduces bandwidth consumption versus individual requests. Requires Core 2021.3 or later.
| |
Parameters:
| |
Response:
| |
HTTP Status Errors:
- 401 Unauthorized
- 403 Forbidden (device not exposed)
- 404 Not Found (location disconnected from cloud)
- 405 Method Not Allowed
- 500 Internal Server Error
Get All Values of All Devices
Retrieves complete state information for all exposed devices in a single request. Requires Core 2021.3 or later.
Variant 1
| |
Variant 2
| |
Response:
| |
HTTP Status Errors:
- 401 Unauthorized
- 403 Forbidden (device not exposed)
- 404 Not Found (location disconnected from cloud)
- 405 Method Not Allowed
- 500 Internal Server Error
Get One Device Value
Retrieves a single device value without JSON processing requirements. Ideal for simple implementations. Numeric response (double) formatted as string with decimal point notation.
| |
Parameters: Device ID in path, value type ID and token in query string
Response:
| |
Unknown values return NaN. Frequent requests (under 500ms) may return cached data.
HTTP Status Errors:
- 401 Unauthorized
- 403 Forbidden (device not exposed)
- 404 Not Found (location disconnected from cloud)
- 405 Method Not Allowed
- 500 Internal Server Error
Set Device Value
Modifies one or more device values by type identifier. Unspecified values remain unchanged. Numeric type (double).
Frequent modifications (under 500ms intervals) produce HTTP 503 response.
Variant 1
| |
Supports up to three simultaneous value assignments.
Variant 2
| |
Parameters:
| |
Response:
| |
HTTP Status Errors:
- 401 Unauthorized
- 403 Forbidden (device not exposed)
- 404 Not Found (location disconnected from cloud)
- 405 Method Not Allowed
- 500 Internal Server Error
- 503 Service Unavailable (excessive set-value frequency; retry later)
Webhook
Webhook functionality delivers exposed device state changes via HTTP POST to a configured URL within LAN or internet environments. Enables efficient synchronization compared to periodic polling.
Throttling: Activates at maximum intervals of 300ms. Rapid value transitions send only the latest change; earlier intermediate values are discarded. Failed transmissions are not retried.
Configuration: TapHome app supports three custom HTTP request headers in “key: value” format.
Data Structure: Identical to getMultipleDevicesValues endpoint response format.