Weblockr API

Device Management & Kiosk Control API

Version 1.7.9

Base URL

https://weblockr.app

Use this base URL for all API requests from your device clients.

Authentication

Most endpoints require authentication using one of these methods:

  • Device API Key: Include X-API-Key header
  • Session Auth: Web dashboard uses session cookies
  • Bearer Token: Alternative to API key header
Example Header
X-API-Key: your-device-api-key-here

Device Endpoints

POST /api/devices/register Public

Register a new device with the server. Requires groupUuid.

Request Body
{
  "deviceId": "unique-device-id",
  "groupUuid": "group-uuid-from-admin",
  "deviceName": "My Kiosk",
  "version": "1.0.0",
  "operatingSystem": "Windows 11",
  "ipAddress": "192.168.1.100",
  "macAddress": "AA:BB:CC:DD:EE:FF",
  "systemInfo": {
    "cpuType": "Intel i7",
    "osName": "Windows 11",
    "ramGB": 16,
    "hddGB": 512
  }
}
POST /api/devices/:deviceId/heartbeat Auth Required

Send periodic heartbeat to keep device status active. Include metrics data.

GET /api/devices/:deviceId/commands Auth Required

Poll for pending commands from the server (settings updates, reboot, etc.).

POST /api/devices/:deviceId/metrics Auth Required

Upload device performance metrics (CPU, memory, disk usage).

POST /api/devices/:deviceId/logs/urls Auth Required

Upload URL navigation logs for analytics.

POST /api/devices/:deviceId/sessions/complete Auth Required

Upload completed user session data.

POST /api/devices/screenshot Auth Required

Upload device screenshot (tvOS player mode).

Utility Endpoints

GET /api/ping Public

Simple ping endpoint to check server connectivity.

GET /health Public

Health check with version and database status.

Rate Limits

  • Global: 1000 requests per 15 minutes
  • Device: 600 requests per 15 minutes
  • Registration: 20 requests per 15 minutes
  • Commands: 100 requests per 15 minutes

Response Format

All API responses are in JSON format:

Success Response
{
  "status": "active",
  "message": "Device registered successfully",
  "apiKey": "your-api-key"
}
Error Response
{
  "error": "Device not found",
  "message": "Please register first"
}