REST API Overview
The VWire REST API lets you manage devices, projects, widgets, and data programmatically — from server-side integrations, scripts, dashboards, and third-party platforms.
Base URL
https://app.vwire.io/api/v1
Versioning
The API is versioned via the URL path (/api/v1). Breaking changes increment the major version. Minor additions are backward-compatible within a version.
Authentication
All API requests require a User API Key or Session Token in the Authorization header:
Authorization: Bearer <api-key-or-session-token>
See Authentication for how to generate API keys.
Request format
- Content-Type:
application/json - All timestamps are ISO 8601 strings in UTC:
"2024-03-15T10:30:00.000Z" - All IDs are UUIDs (v4)
Response format
All responses return JSON:
{
"success": true,
"data": { ... }
}
Errors follow:
{
"success": false,
"error": "Device not found",
"code": "DEVICE_NOT_FOUND",
"statusCode": 404
}
HTTP status codes
| Code | Meaning |
|---|---|
200 | OK |
201 | Created |
204 | No content (DELETE success) |
400 | Bad request / validation error |
401 | Unauthorized (missing or invalid token) |
403 | Forbidden (insufficient permissions) |
404 | Resource not found |
429 | Rate limited |
500 | Internal server error |
Rate limiting
| Plan | Limit |
|---|---|
| Free | 100 req/min |
| Pro | 1,000 req/min |
| Enterprise | Custom |
Rate limit headers:
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 987
X-RateLimit-Reset: 1710500000
API sections
- Authentication — API keys, login tokens
- Devices — Create, update, delete, read devices
- Projects — Manage projects and members
- Widgets — CRUD on dashboard widgets
- Data — Read/write time-series pin data
- Notifications — List and manage notifications
- External API — Machine-to-machine integrations
- MQTT Topics — Broker topic reference