Solaris

Solaris Control API v1 — REST Endpoints & Action Control System

This document provides a comprehensive REST endpoint reference for Solaris Control API v1, including state query endpoints, Granular Security masking rules (ApiPermissionsFilter), per-monitor resolution via Friendly Slugs, and complete documentation for all 28 Action Control System commands (POST /api/v1/control).


📑 Table of Contents

  1. State Query Endpoints & Granular Data Privacy
    • GET /api/v1/health (Unrestricted Liveness Probe)
    • GET /api/v1/status (Full State Snapshot & Masking)
    • GET /api/v1/presets (Partial Presets Masking)
    • GET /api/v1/solar
    • GET /api/v1/sleep/sessions
    • GET /api/v1/docs (Interactive RapiDoc Playground)
    • GET /api/v1/openapi.json (Dynamic OpenAPI 3.0.3 Spec)
  2. Per-Monitor Endpoints & Slug Resolver
    • GET /api/v1/monitors
    • GET /api/v1/monitors/:slug
    • POST /api/v1/monitors/:slug/brightness
    • POST /api/v1/monitors/:slug/temperature
  3. Per-App Overrides Endpoints (/api/v1/app-overrides)
    • GET /api/v1/app-overrides
    • GET /api/v1/app-overrides/active
    • POST /api/v1/app-overrides
    • DELETE /api/v1/app-overrides/:exe
    • POST /api/v1/app-overrides/reset-builtin
  4. Action Control System (POST /api/v1/control)
  5. Webhook & Sleep Integration Endpoints
    • /api/v1/webhooks*
    • GET /api/v1/webhooks/events
    • /api/v1/sleep/* & /api/sleep/*

🔍 State Query Endpoints & Granular Data Privacy

1. GET /api/v1/health

Lightweight health check endpoint. Useful for liveness probes, load balancers, and status pinging.


2. GET /api/v1/status

Returns the complete application state graph: connected monitors, hardware brightness/temperature readings, active presets, solar elevation/azimuth, weather adjustments, sleep tracking engine status, smart circadian state, and LAN API server configuration.


3. GET /api/v1/presets

Returns all built-in brightness presets, color temperature presets, active preset selections, and custom user-defined presets.


4. GET /api/v1/solar

Returns real-time solar tracking parameters, elevation, azimuth, zenith angle, day phase, upcoming solar events, and trends.


5. GET /api/v1/sleep/sessions

Returns paginated sleep tracking sessions stored in memory/database.


6. GET /api/v1/docs

Hosts the embedded interactive RapiDoc HTML playground (<rapi-doc>).


7. GET /api/v1/openapi.json

Generates a dynamic OpenAPI 3.0.3 Specification JSON document.


🖥️ Per-Monitor Endpoints & Slug Resolver

Solaris Control API features a Friendly Slug Resolver (MonitorSlugResolver) allowing monitors to be targeted by easy-to-read identifiers instead of long Windows device paths (\\\\.\\DISPLAY1).

Supported Slug Matchers:

  1. Ordinal Slugs: display-1, display-2, display-3 (Recommended)
  2. Model Base Slugs: dell-u2720q, lg-ultragear (Automatically resolved when monitor model is unique across connected displays)
  3. Friendly Name Slugs: lg-ultragear-a1f9, dell-u2720q-e34b
  4. Keyword Slugs: primary, main (Resolves to primary display), all (Targets all displays).

1. GET /api/v1/monitors

Returns a list of all currently connected physical monitors.


2. GET /api/v1/monitors/:slug

Returns status summary for a single monitor identified by :slug.


3. Point-Mutation Endpoints

Example Request:

POST /api/v1/monitors/display-1/brightness HTTP/1.1
Content-Type: application/json
X-API-Key: sol_sec_ae1302d9e99a8b6aad30264417a64cec8ac1b17c20f5abc5cea38b5dea368eae01234567

{
  "value": 70.0
}

Example Response (HTTP 202 Accepted):

{
  "status": "accepted",
  "action": "set_monitor_brightness",
  "slug": "display-1",
  "target_monitor": "\\\\.\\DISPLAY1",
  "queued": {
    "value": 70.0
  },
  "timestamp": "2026-07-25T14:30:00.000Z"
}

Example Game Mode Request:

POST /api/v1/monitors/display-2/game-mode HTTP/1.1
Content-Type: application/json
X-API-Key: sol_sec_ae1302d9e99a8b6aad30264417a64cec8ac1b17c20f5abc5cea38b5dea368eae01234567

{
  "enabled": false
}

Example Game Mode Response (HTTP 200 OK):

{
  "status": "ok",
  "action": "set_monitor_game_mode",
  "slug": "display-2",
  "target_monitor": "\\\\.\\DISPLAY2",
  "game_mode": {
    "enabled": false
  },
  "timestamp": "2026-07-25T14:30:00.000Z"
}

🎯 Per-App Overrides Endpoints (/api/v1/app-overrides)

1. GET /api/v1/app-overrides

Returns all configured per-application override rules and hold interval.

2. GET /api/v1/app-overrides/active

Queries the current foreground Win32 process, window title, game status, applied profile rule, and evaluated brightness/temperature state.

3. POST /api/v1/app-overrides

Creates or updates a per-application override rule (AppOverrideRule).

4. DELETE /api/v1/app-overrides/:exe

Removes a custom per-application override rule by executable name. Enforces the same Path Traversal and filename regex validation.

5. POST /api/v1/app-overrides/reset-builtin

Restores factory built-in app override rules to their default settings.


⚙️ Action Control System (POST /api/v1/control)

The Action Control System provides a unified mutation gateway supporting 28 canonical action types and 17 convenience aliases.

Single Action vs. Batch Execution

Batch Execution Payload:

{
  "mode": "fail_fast",
  "actions": [
    { "action": "set_brightness", "value": 75.0 },
    { "action": "set_temperature", "value": 5000 }
  ]
}

Catalog of All 28 Canonical Action Commands

Below is the complete reference of all 28 canonical action commands supported by POST /api/v1/control, grouped into 7 permission categories.

Category 1: monitors (3 Actions)

Category 2: presets (7 Actions)

Category 3: circadian (4 Actions)

Category 4: gaming (3 Actions)

Category 5: environment (6 Actions)

Category 6: sleep (1 Action)

Category 7: system (4 Actions)

🔔 Webhook & Sleep Integration Endpoints

Webhook Management (/api/v1/webhooks*)

Sleep Integration Endpoints (/api/v1/sleep/* & /api/sleep/*)

Solaris exposes canonical /api/v1/sleep/* endpoints while maintaining legacy /api/sleep/* aliases for 100% backward compatibility with external integrations (Sleep as Android, Tasker, automation scripts):

[!NOTE] Decoupled Subsystem Lifecycle: Sleep endpoints (/api/v1/sleep/* and legacy /api/sleep/*) are governed independently via the Sleep Integration API switch on the “Sleep” screen. If disabled, they return RFC 7807 503 Service Unavailable (Sleep Integration API Disabled). Disabling the general Solaris Control API in Settings does NOT deactivate or interfere with Sleep API endpoints.