Base path /api/v1 on the installation (LAN, mDNS _freedome._tcp); /health and /ready are unversioned.
Conventions: docs/conventions.md (errors RFC 9457, merge-patch, ETag / If-Match, Idempotency-Key, cursor pages).
Versions before 1.0.0 (0.x previews, 1.0.0-rc.N) are not a stability promise; 1.0.0 freezes the API (M-CT2), then
only additive changes within v1 (docs/versioning.md). Other transports: GraphQL /api/v1/graphql
(graphql/mediaserver.graphql), WebSocket /api/v1/ws (asyncapi/ws.yaml), socket.io /v1 (asyncapi/socketio.yaml),
OSC (osc/addresses.yaml), legacy profile (asyncapi/socketio-legacy.yaml, osc/legacy.yaml).
Support: [email protected]. Commercial use → https://freedome.nativemind.us/commercial.
Servers: {scheme}://{host}:{port}/api/v1 · source openapi/mediaserver.yaml
discovery · venues · displays · output · calibration · auth · users · api-keys · system · shows · playback · uploads · assets · audio · engines · gateways · apps · clients · events · scenarios · devices · jobs
GET /info — getInfoServer self-description · scope anon
Product, versions, transports, auth methods, venues summary and capabilities. Anonymous.
| Parameter | In | Required | Description |
|---|---|---|---|
If-None-Match | header | ETag of a cached representation (304 when unchanged). |
| Status | Description | Body |
|---|---|---|
| 200 | Server info. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/info.schema.json","$comment":"NativeMindNONC — f |
| 304 | Representation unchanged (If-None-Match). | |
| 429 | Rate limited. | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /health — getHealthLiveness · scope anon
ok while the process serves requests; degraded lists failing dependencies (engines down do not make the server unhealthy).
| Status | Description | Body |
|---|---|---|
| 200 | Alive. | application/json {"description":"GET /health and /ready (unversioned, anonymous).","type":"object","required":["status"],"properties":{"status":{"enum":["ok","degraded","down"]} |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /ready — getReadyReadiness · scope anon
200 when the server accepts API traffic (storage open, venue loaded); 503 problem otherwise.
| Status | Description | Body |
|---|---|---|
| 200 | Ready. | application/json {"description":"GET /health and /ready (unversioned, anonymous).","type":"object","required":["status"],"properties":{"status":{"enum":["ok","degraded","down"]} |
| 503 | Not ready. | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /metrics — getMetricsPrometheus metrics · scope anon
Prometheus text exposition 0.0.4; metric names are listed in docs/metrics.md. Anonymous by default on the LAN listener; installations may restrict it to system:read (config [metrics] require_auth).
| Status | Description | Body |
|---|---|---|
| 200 | Metrics. | text/plain {"type":"string"} |
| 401 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /openapi.json — getOpenApiThis API description (OpenAPI 3.1 JSON) · scope anon
The bundled contract document the server implements, with servers set to this instance. Swagger UI at /api/v1/docs.
| Status | Description | Body |
|---|---|---|
| 200 | OpenAPI document. | application/json {"type":"object","required":["openapi","info","paths"],"properties":{"openapi":{"type":"string"},"info":{"type":"object"},"paths":{"type":"object"}}} |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /venues — listVenuesList stored venues · scope info:read
Stored venues (one is active per instance; default marks the alias target).
| Parameter | In | Required | Description |
|---|---|---|---|
limit | query | Page size (default 50, max 500). | |
cursor | query | Opaque cursor from the previous page's `nextCursor`. |
| Status | Description | Body |
|---|---|---|
| 200 | Page of venues. | application/json {"description":"GET /venues page.","type":"object","allOf":[{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/sche |
| 429 | Rate limited. | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /venues — createVenueCreate a venue · scope venues:write
Body = .dome venue manifest without format / kind. meta.id becomes the venue id (409 if taken).
| Parameter | In | Required | Description |
|---|---|---|---|
Idempotency-Key | header | UUID; replays within 24 h return the original response, a different body with the same key → 409. |
Request application/json: {"description":"POST /venues and PUT /venues/{venueId} body.","type":"object","allOf":[{"description":"Venue content shared by GET / PUT / POST: the .dome venue
{
"meta": {
"id": "7a2b3c4d-5e6f-4a71-8b8c-9d0e1f2a3b4c",
"title": {
"en": "Prism M"
}
},
"dome": {
"mode": "quantum",
"shape": "pyramid",
"radius": 0.212
},
"displays": [
{
"id": "u1",
"type": "prism_unit",
"resolution": [
1920,
1080
],
"optics": {
"faces": 4,
"faceAngle": 45
},
"output": {
"host": "node-1",
"connector": "HDMI-1"
}
}
]
}| Status | Description | Body |
|---|---|---|
| 201 | Created. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/venue.schema.json","$comment":"NativeMindNONC — |
| 409 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /venues/{venueId} — getVenueGet a venue · scope info:read
Venue = .dome venue sections + id, revision, status, activeShowId; ETag = revision.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
If-None-Match | header | ETag of a cached representation (304 when unchanged). |
| Status | Description | Body |
|---|---|---|
| 200 | The venue. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/venue.schema.json","$comment":"NativeMindNONC — |
| 304 | Representation unchanged (If-None-Match). | |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
PUT /venues/{venueId} — putVenueReplace (or create with a client-chosen id) a venue · scope venues:write
Replace needs If-Match; create needs If-None-Match: * and the path id equal to meta.id.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
If-Match | header | Required to replace an existing resource (428 when missing, 412 when stale). To create with a client-chosen id send `If-None-Match: *` instead. | |
If-None-Match | header | `*` = create only (412 if the id exists). |
Request application/json: {"description":"POST /venues and PUT /venues/{venueId} body.","type":"object","allOf":[{"description":"Venue content shared by GET / PUT / POST: the .dome venue
{
"meta": {
"id": "6f1a2b3c-4d5e-4f60-8a7b-8c9d0e1f2a3b",
"title": {
"en": "Fisheye 6 m"
}
},
"dome": {
"mode": "classical",
"shape": "hemisphere",
"radius": 3
},
"displays": [
{
"id": "p1",
"type": "projector",
"resolution": [
4096,
2160
],
"lens": {
"kind": "fisheye",
"fov": 180
},
"output": {
"host": "node-1",
"connector": "HDMI-1"
}
}
]
}| Status | Description | Body |
|---|---|---|
| 200 | Replaced. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/venue.schema.json","$comment":"NativeMindNONC — |
| 201 | Created (If-None-Match `*`). | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/venue.schema.json","$comment":"NativeMindNONC — |
| 412 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 428 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
PATCH /venues/{venueId} — patchVenueMerge-patch a venue · scope venues:write
RFC 7396 merge patch over the venue sections; the merged result is validated like a PUT body.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
If-Match | header | yes | Strong ETag of the representation being changed (428 when missing, 412 when stale). |
Request application/merge-patch+json: {"description":"PATCH body (application/merge-patch+json, RFC 7396) over the venue sections; the merged result must be a valid input.","type":"object","minPrope
{
"meta": {
"title": {
"en": "Main dome"
}
}
}| Status | Description | Body |
|---|---|---|
| 200 | Patched. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/venue.schema.json","$comment":"NativeMindNONC — |
| 412 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 428 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
DELETE /venues/{venueId} — deleteVenueDelete a venue · scope venues:write
Refused with 409 while the venue is playing or is the default venue.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
If-Match | header | yes | Strong ETag of the representation being changed (428 when missing, 412 when stale). |
| Status | Description | Body |
|---|---|---|
| 204 | Done, no body. | |
| 409 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 412 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /venues/{venueId}/export — exportVenueExport the venue as a .dome · scope content:read
kind: venue .dome (01b v0.2) incl. calibration sidecars; reference-writer layout (mimetype first, deterministic).
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
| Status | Description | Body |
|---|---|---|
| 200 | The .dome file. | application/vnd.nativemind.freedome.dome+zip {"type":"string","contentMediaType":"application/vnd.nativemind.freedome.dome+zip"} |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /venues/{venueId}/activate — activateVenueMake this the active venue · scope venues:write
One active venue per instance (RC6): pushes displays + applied calibration to the engines; the alias default then resolves to it. Refused (409) while another venue is playing.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
Idempotency-Key | header | UUID; replays within 24 h return the original response, a different body with the same key → 409. |
| Status | Description | Body |
|---|---|---|
| 200 | Active venue. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/venue.schema.json","$comment":"NativeMindNONC — |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 409 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 503 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /venues/{venueId}/displays — listDisplaysList the venue's displays with live state · scope info:read
Configuration (.dome entry) and live state of every display of the venue.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
limit | query | Page size (default 50, max 500). | |
cursor | query | Opaque cursor from the previous page's `nextCursor`. |
| Status | Description | Body |
|---|---|---|
| 200 | Page of displays. | application/json {"type":"object","allOf":[{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/pagination.schema.j |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /venues/{venueId}/displays/{displayId} — getDisplayGet a display (config + live state) · scope info:read
Configuration (.dome entry) and live state; ETag = venue revision.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
displayId | path | yes | Display id (`.dome` `displays[].id`). |
| Status | Description | Body |
|---|---|---|
| 200 | The display. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/display.schema.json","$comment":"NativeMindNONC |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
PATCH /venues/{venueId}/displays/{displayId} — patchDisplayMerge-patch the display configuration · scope venues:write
Patches config (the .dome display entry); bumps the venue revision. If-Match = venue ETag.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
displayId | path | yes | Display id (`.dome` `displays[].id`). |
If-Match | header | yes | Strong ETag of the representation being changed (428 when missing, 412 when stale). |
Request application/merge-patch+json: {"description":"PATCH body (application/merge-patch+json) over `config`; `id` cannot change.","type":"object","minProperties":1,"not":{"required":["id"]}}
{
"lens": {
"fov": 185
}
}| Status | Description | Body |
|---|---|---|
| 200 | Patched. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/display.schema.json","$comment":"NativeMindNONC |
| 412 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 428 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /venues/{venueId}/displays/{displayId}/identify — identifyDisplayFlash the display id overlay · scope displays:control
Shows the display id over the output for durationS seconds (default 5).
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
displayId | path | yes | Display id (`.dome` `displays[].id`). |
Idempotency-Key | header | UUID; replays within 24 h return the original response, a different body with the same key → 409. |
Request application/json: {"description":"POST …/identify body (optional): how long to show the id overlay.","type":"object","properties":{"durationS":{"type":"number","minimum":0.5,"max
{
"durationS": 5
}| Status | Description | Body |
|---|---|---|
| 204 | Done, no body. | |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 503 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
PUT /venues/{venueId}/displays/{displayId}/pattern — setTestPatternShow a test pattern (or `off`) · scope displays:control
Engine freedome_pattern_*; result also published as event display.pattern on venues/{v}/displays/{d}.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
displayId | path | yes | Display id (`.dome` `displays[].id`). |
Request application/json: {"description":"PUT /venues/{venueId}/displays/{displayId}/pattern body (engine freedome_pattern_*).","type":"object","required":["kind"],"properties":{"kind":{
{
"kind": "grid",
"params": {
"spacingDeg": 10,
"lineWidthPx": 2,
"colour": "#ffffff"
}
}| Status | Description | Body |
|---|---|---|
| 200 | Pattern shown; current display state. | application/json {"type":"object","required":["online"],"properties":{"online":{"type":"boolean","description":"engine output / device agent reachable"},"power":{"anyOf":[{"enum |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 503 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /venues/{venueId}/displays/{displayId}/power — setDisplayPowerSwitch display power / shutter · scope displays:control
Only what state.capabilities lists (PJLink, device agent); otherwise 422 validation-failed.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
displayId | path | yes | Display id (`.dome` `displays[].id`). |
Idempotency-Key | header | UUID; replays within 24 h return the original response, a different body with the same key → 409. |
Request application/json: {"description":"POST …/power body; only what the device supports (state.capabilities).","type":"object","minProperties":1,"properties":{"on":{"type":"boolean"},
{
"on": true,
"shutter": "open"
}| Status | Description | Body |
|---|---|---|
| 200 | Command sent; current display state (power may pass through warming). | application/json {"type":"object","required":["online"],"properties":{"online":{"type":"boolean","description":"engine output / device agent reachable"},"power":{"anyOf":[{"enum |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /venues/{venueId}/output — getOutputGet the venue output state · scope playback:read
Current master brightness, volume, blackout, rotation, lighting and NDI output.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
| Status | Description | Body |
|---|---|---|
| 200 | Output state. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/output.schema.json","$comment":"NativeMindNONC — |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
PATCH /venues/{venueId}/output — patchOutputChange output (brightness, volume, blackout …) · scope playback:control
Last writer wins (playback class, 02e §3.5); published as output.changed on venues/{v}/output.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
Request application/merge-patch+json: {"description":"PATCH body (application/merge-patch+json): any subset of the output fields.","type":"object","minProperties":1,"properties":{"brightness":{"desc
{
"brightness": 0.25,
"blackout": false
}| Status | Description | Body |
|---|---|---|
| 200 | New output state. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/output.schema.json","$comment":"NativeMindNONC — |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 503 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /venues/{venueId}/calibration — getCalibrationGet the venue calibration (per display warp / blend / colour / report) · scope info:read
The .dome calibration block of the venue; ETag = venue revision.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
| Status | Description | Body |
|---|---|---|
| 200 | `.dome` `calibration` block; file paths are readable through getCalibrationFile. | application/json {"description":"Per-display calibration (01b §4.3); keys of `displays` are display ids (checked by the codecs).","type":"object","properties":{"displays":{"type |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /venues/{venueId}/calibration/displays/{displayId}/{file} — getCalibrationFileDownload a calibration sidecar · scope info:read
Binary sidecar of one display; media type by file.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
displayId | path | yes | Display id (`.dome` `displays[].id`). |
file | path | yes | Calibration sidecar: `warp` (FDMESH), `blend` (16-bit PNG), `colour` (.cube 3D LUT). |
| Status | Description | Body |
|---|---|---|
| 200 | warp → FDMESH (01b §5.1), blend → 16-bit PNG, colour → .cube. | application/vnd.nativemind.freedome.fdmesh {"type":"string","contentMediaType":"application/vnd.nativemind.freedome.fdmesh"}image/png {"type":"string","contentMediaType":"image/png"}text/plain {"type":"string"} |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
PUT /venues/{venueId}/calibration/displays/{displayId}/{file} — putCalibrationFileUpload / import a calibration sidecar · scope calibration:run
Validated (FDMESH grammar + size, PNG 16-bit grey, .cube 33³ / 65³); updates the venue calibration (revision++). If-Match = venue ETag.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
displayId | path | yes | Display id (`.dome` `displays[].id`). |
file | path | yes | Calibration sidecar: `warp` (FDMESH), `blend` (16-bit PNG), `colour` (.cube 3D LUT). |
If-Match | header | yes | Strong ETag of the representation being changed (428 when missing, 412 when stale). |
Request application/vnd.nativemind.freedome.fdmesh: {"type":"string","contentMediaType":"application/vnd.nativemind.freedome.fdmesh"}
Request image/png: {"type":"string","contentMediaType":"image/png"}
Request text/plain: {"type":"string"}
| Status | Description | Body |
|---|---|---|
| 200 | Stored; the new calibration block. | application/json {"description":"Per-display calibration (01b §4.3); keys of `displays` are display ids (checked by the codecs).","type":"object","properties":{"displays":{"type |
| 412 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 415 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 428 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /venues/{venueId}/calibration/jobs — listCalibrationJobsList the venue's calibration jobs · scope info:read
Newest first; status filters (e.g. running jobs for a "resume" dialog).
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
limit | query | Page size (default 50, max 500). | |
cursor | query | Opaque cursor from the previous page's `nextCursor`. | |
status | query | Job status filter. |
| Status | Description | Body |
|---|---|---|
| 200 | Page of calibration jobs. | application/json {"type":"object","required":["items","nextCursor"],"properties":{"items":{"type":"array","items":{"type":"object","required":["id","venueId","kind","status","st |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /venues/{venueId}/calibration/jobs — startCalibrationJobStart a calibration job · scope calibration:run
Visual kinds need calibration:run; audio kinds (audio-room, audio-speaker-check) need audio:calibrate. 202 + Location → getCalibrationJob.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
Idempotency-Key | header | UUID; replays within 24 h return the original response, a different body with the same key → 409. |
Request application/json: {"description":"POST /venues/{venueId}/calibration/jobs body.","type":"object","required":["kind"],"properties":{"kind":{"anyOf":[{"enum":["visual-camera","visu
{
"kind": "visual-camera",
"displays": [
"p1"
],
"options": {
"grid": 17
}
}| Status | Description | Body |
|---|---|---|
| 202 | Accepted. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/calibration-job.schema.json","$comment":"NativeM |
| 409 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 503 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /venues/{venueId}/calibration/jobs/{jobId} — getCalibrationJobCalibration job state (steps, awaited input, residual errors) · scope info:read
Steps, the input awaited from the operator / camera, residual errors and the proposed result.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
jobId | path | yes | Job id (UUIDv7). |
| Status | Description | Body |
|---|---|---|
| 200 | Job state. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/calibration-job.schema.json","$comment":"NativeM |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /venues/{venueId}/calibration/jobs/{jobId}/captures — submitCalibrationCaptureSubmit a camera frame for the awaited step · scope calibration:run
JSON with a tus uploadId or multipart/form-data with an image part (≤ 32 MB) for the awaited step; 409 when no capture is awaited.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
jobId | path | yes | Job id (UUIDv7). |
Idempotency-Key | header | UUID; replays within 24 h return the original response, a different body with the same key → 409. |
Request application/json: {"description":"POST …/captures JSON body: a camera frame uploaded before (tus upload id); multipart/form-data with an `image` part is the alternative (≤ 32 MB)
{
"uploadId": "0192f3a4-5b6c-7d8e-9f01-23456789abd2",
"stepId": "capture-p1-grid"
}Request multipart/form-data: {"type":"object","required":["image"],"properties":{"image":{"type":"string","contentMediaType":"image/jpeg","description":"JPEG / PNG frame, ≤ 32 MB"},"stepId"
| Status | Description | Body |
|---|---|---|
| 200 | Capture accepted; job state. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/calibration-job.schema.json","$comment":"NativeM |
| 409 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 413 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /venues/{venueId}/calibration/jobs/{jobId}/apply — applyCalibrationJobApply the solved calibration to the venue · scope calibration:run
Writes result into the venue calibration (revision++); 409 unless the job succeeded.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
jobId | path | yes | Job id (UUIDv7). |
Idempotency-Key | header | UUID; replays within 24 h return the original response, a different body with the same key → 409. |
| Status | Description | Body |
|---|---|---|
| 200 | Applied; the new venue calibration. | application/json {"description":"Per-display calibration (01b §4.3); keys of `displays` are display ids (checked by the codecs).","type":"object","properties":{"displays":{"type |
| 409 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /venues/{venueId}/calibration/jobs/{jobId}/cancel — cancelCalibrationJobCancel a calibration job · scope calibration:run
Stops the job and restores the pre-job patterns; the venue calibration is unchanged.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
jobId | path | yes | Job id (UUIDv7). |
Idempotency-Key | header | UUID; replays within 24 h return the original response, a different body with the same key → 409. |
| Status | Description | Body |
|---|---|---|
| 200 | Cancelled (or already finished); job state. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/calibration-job.schema.json","$comment":"NativeM |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /auth/session — createSessionSign in with a local account · scope anon
{username, password} → access JWT (15 min) + rotating refresh token. Rate limited per IP and username.
Request application/json: {"description":"POST /auth/session (local account).","type":"object","required":["username","password"],"properties":{"username":{"type":"string","minLength":1,
{
"username": "operator",
"password": "correct-horse-battery",
"client": {
"app": "freedome_manager",
"appVersion": "4.0.0"
}
}| Status | Description | Body |
|---|---|---|
| 201 | Session created. | application/json {"type":"object","required":["accessToken","tokenType","expiresIn"],"properties":{"accessToken":{"type":"string","minLength":16,"description":"access JWT (15 mi |
| 401 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 429 | Rate limited. | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
DELETE /auth/session — deleteSessionSign out (revoke the current session and its refresh family) · scope any
Revokes the session of the presented access token; emits session.revoked on auth/sessions.
| Status | Description | Body |
|---|---|---|
| 204 | Done, no body. | |
| 401 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /auth/refresh — refreshSessionRotate the refresh token · scope anon
Returns a new token pair; presenting an already rotated refresh token revokes every session of that family (401).
Request application/json: {"description":"POST /auth/refresh.","type":"object","required":["refreshToken"],"properties":{"refreshToken":{"type":"string","minLength":16}},"additionalPrope
{
"refreshToken": "example-refresh-token-not-a-secret"
}| Status | Description | Body |
|---|---|---|
| 200 | New token pair. | application/json {"type":"object","required":["accessToken","tokenType","expiresIn"],"properties":{"accessToken":{"type":"string","minLength":16,"description":"access JWT (15 mi |
| 401 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /auth/token-exchange — exchangeCloudTokenExchange a cloud (L7) token for a local session · scope anon
Linked installations only — the L7 JWT is verified offline with the cached JWKS of freedome.nativemind.us and its org role is mapped to a local role. Unlinked → 401 unauthenticated "installation not linked".
Request application/json: {"description":"POST /auth/token-exchange: an L7 (freedome.nativemind.us) access JWT for a local session; linked installations only (JWKS of the cloud).","type"
{
"subjectToken": "example.cloud-jwt.not-a-secret",
"client": {
"app": "freedome_manager"
}
}| Status | Description | Body |
|---|---|---|
| 200 | Local token pair. | application/json {"type":"object","required":["accessToken","tokenType","expiresIn"],"properties":{"accessToken":{"type":"string","minLength":16,"description":"access JWT (15 mi |
| 401 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /auth/pairings — listPairingsList pending pairings (operator view) · scope users:manage
Pending and recently decided pairings, for the approval dialog in Manager / on the dome.
| Parameter | In | Required | Description |
|---|---|---|---|
limit | query | Page size (default 50, max 500). | |
cursor | query | Opaque cursor from the previous page's `nextCursor`. |
| Status | Description | Body |
|---|---|---|
| 200 | Page of pairings. | application/json {"type":"object","required":["items","nextCursor"],"properties":{"items":{"type":"array","items":{"description":"Pairing state. `code` (6 digits) is returned on |
| 403 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /auth/pairings — createPairingAsk to pair an ecosystem app (guest token) · scope anon
Returns a 6-digit code to show to the operator (also as QR freedome://pair?host=…&code=…); the app polls getPairing until approved / denied / expired (5 min).
Request application/json: {"description":"POST /auth/pairings (anonymous; ecosystem app asks for a guest token).","type":"object","required":["app","deviceName"],"properties":{"app":{"ty
{
"app": "net.nativemind.starveda",
"deviceName": "Anna iPhone"
}| Status | Description | Body |
|---|---|---|
| 201 | Pairing pending. | application/json {"description":"Pairing state. `code` (6 digits) is returned only to the requester on creation and shown on the dome / in Manager; `tokens` only once, to the re |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 429 | Rate limited. | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /auth/pairings/{pairingId} — getPairingPoll a pairing · scope anon
Anonymous poll by the requesting app (the unguessable id is the capability). After approval the first poll returns tokens once.
| Parameter | In | Required | Description |
|---|---|---|---|
pairingId | path | yes | Pairing id (UUIDv7). |
| Status | Description | Body |
|---|---|---|
| 200 | Pairing state. | application/json {"description":"Pairing state. `code` (6 digits) is returned only to the requester on creation and shown on the dome / in Manager; `tokens` only once, to the re |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /auth/pairings/{pairingId}/approve — approvePairingApprove (or deny) a pairing · scope users:manage
Operator decision; approve:false denies. The granted role never exceeds the approver's.
| Parameter | In | Required | Description |
|---|---|---|---|
pairingId | path | yes | Pairing id (UUIDv7). |
Idempotency-Key | header | UUID; replays within 24 h return the original response, a different body with the same key → 409. |
Request application/json: {"description":"POST /auth/pairings/{pairingId}/approve body (operator side).","type":"object","properties":{"approve":{"type":"boolean","default":true,"descrip
{
"approve": true,
"role": "guest",
"ttlSec": 2592000
}| Status | Description | Body |
|---|---|---|
| 200 | Decided. | application/json {"description":"Pairing state. `code` (6 digits) is returned only to the requester on creation and shown on the dome / in Manager; `tokens` only once, to the re |
| 403 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 409 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /auth/me — getMeCurrent principal and scopes · scope any
Who is calling (user, API key, pairing, cloud) and the effective scopes.
| Status | Description | Body |
|---|---|---|
| 200 | Principal. | application/json {"description":"GET /auth/me: who is calling and what they may do.","type":"object","required":["subject","kind","role","scopes"],"properties":{"subject":{"type |
| 401 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /users — listUsersList local users · scope users:manage
Cursor page of local accounts; ?q= matches username / display name.
| Parameter | In | Required | Description |
|---|---|---|---|
limit | query | Page size (default 50, max 500). | |
cursor | query | Opaque cursor from the previous page's `nextCursor`. | |
q | query | Full-text query where supported. |
| Status | Description | Body |
|---|---|---|
| 200 | Page of users. | application/json {"type":"object","required":["items","nextCursor"],"properties":{"items":{"type":"array","items":{"type":"object","required":["id","username","role","revision", |
| 403 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /users — createUserCreate a local user · scope users:manage
The new user's role cannot exceed the caller's.
| Parameter | In | Required | Description |
|---|---|---|---|
Idempotency-Key | header | UUID; replays within 24 h return the original response, a different body with the same key → 409. |
Request application/json: {"description":"POST /users.","type":"object","required":["username","password","role"],"properties":{"username":{"type":"string","pattern":"^[a-z0-9][a-z0-9._-
{
"username": "operator",
"displayName": "Night operator",
"password": "correct-horse-battery",
"role": "operator"
}| Status | Description | Body |
|---|---|---|
| 201 | Created. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/user.schema.json","$comment":"NativeMindNONC — f |
| 403 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 409 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /users/{userId} — getUserGet a user · scope users:manage
One local account.
| Parameter | In | Required | Description |
|---|---|---|---|
userId | path | yes | User id (UUIDv7). |
| Status | Description | Body |
|---|---|---|
| 200 | The user. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/user.schema.json","$comment":"NativeMindNONC — f |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
PATCH /users/{userId} — patchUserMerge-patch a user · scope users:manage
Display name, password, role, disabled. A password change revokes the user's sessions.
| Parameter | In | Required | Description |
|---|---|---|---|
userId | path | yes | User id (UUIDv7). |
If-Match | header | yes | Strong ETag of the representation being changed (428 when missing, 412 when stale). |
Request application/merge-patch+json: {"description":"PATCH /users/{userId} (merge-patch). Changing the password revokes the user's sessions.","type":"object","minProperties":1,"properties":{"displa
{
"disabled": true
}| Status | Description | Body |
|---|---|---|
| 200 | Patched. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/user.schema.json","$comment":"NativeMindNONC — f |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 412 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 428 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
DELETE /users/{userId} — deleteUserDelete a user · scope users:manage
Revokes the user's sessions. The last superadmin cannot be deleted (409).
| Parameter | In | Required | Description |
|---|---|---|---|
userId | path | yes | User id (UUIDv7). |
If-Match | header | yes | Strong ETag of the representation being changed (428 when missing, 412 when stale). |
| Status | Description | Body |
|---|---|---|
| 204 | Done, no body. | |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 409 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 412 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 428 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /api-keys — listApiKeysList API keys · scope keys:manage
Metadata only — the secret is never returned after creation. Revoked keys stay listed with revokedAt (audit).
| Parameter | In | Required | Description |
|---|---|---|---|
limit | query | Page size (default 50, max 500). | |
cursor | query | Opaque cursor from the previous page's `nextCursor`. |
| Status | Description | Body |
|---|---|---|
| 200 | Page of keys. | application/json {"type":"object","required":["items","nextCursor"],"properties":{"items":{"type":"array","items":{"type":"object","required":["id","name","role","scopes","creat |
| 403 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /api-keys — createApiKeyCreate an API key (token shown once) · scope keys:manage
The key's role cannot exceed the caller's; scopes may narrow the role.
| Parameter | In | Required | Description |
|---|---|---|---|
Idempotency-Key | header | UUID; replays within 24 h return the original response, a different body with the same key → 409. |
Request application/json: {"description":"POST /api-keys. A key never gets more than the caller's own role.","type":"object","required":["name","role"],"properties":{"name":{"type":"stri
{
"name": "Lobby kiosk",
"role": "guest"
}| Status | Description | Body |
|---|---|---|
| 201 | Created; `token` is shown only in this response. | application/json {"description":"201 body of POST /api-keys: the key plus its token, shown once.","type":"object","required":["key","token"],"properties":{"key":{"type":"object" |
| 403 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /api-keys/{keyId} — getApiKeyGet API key metadata · scope keys:manage
Metadata of one key. A revoked key → 404 (it is still listed by listApiKeys with revokedAt).
| Parameter | In | Required | Description |
|---|---|---|---|
keyId | path | yes | API key id (the `<id>` of `fdk_<id>_<secret>`). |
| Status | Description | Body |
|---|---|---|
| 200 | The key. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/api-key.schema.json","$comment":"NativeMindNONC |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
DELETE /api-keys/{keyId} — deleteApiKeyRevoke an API key · scope keys:manage
Immediate; cached verifications are dropped. Idempotent — revoking an already revoked key → 204; an unknown id → 404.
| Parameter | In | Required | Description |
|---|---|---|---|
keyId | path | yes | API key id (the `<id>` of `fdk_<id>_<secret>`). |
| Status | Description | Body |
|---|---|---|
| 204 | Done, no body. | |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /system — getSystemHost and service status · scope system:read
Host, OS, CPU / GPU, temperatures, disks, uptime, component versions.
| Status | Description | Body |
|---|---|---|
| 200 | Status. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/system.schema.json","$comment":"NativeMindNONC — |
| 403 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /system/logs — getLogsServer log (ring buffer) · scope system:read
Newest first; level = minimum level. Live tail = topic system/logs.
| Parameter | In | Required | Description |
|---|---|---|---|
limit | query | Page size (default 50, max 500). | |
cursor | query | Opaque cursor from the previous page's `nextCursor`. | |
since | query | Only entries at or after this time (RFC 3339). | |
level | query | Minimum level. |
| Status | Description | Body |
|---|---|---|
| 200 | Page of log entries. | application/json {"type":"object","required":["items","nextCursor"],"properties":{"items":{"type":"array","items":{"type":"object","required":["ts","level","message"],"propertie |
| 403 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
DELETE /system/logs — clearLogsClear the log ring buffer · scope system:admin
Files written by the OS journal are not touched.
| Status | Description | Body |
|---|---|---|
| 204 | Done, no body. | |
| 403 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /system/config — getConfigEffective configuration (secrets redacted) · scope system:read
Secrets are always "***" and listed in redacted.
| Status | Description | Body |
|---|---|---|
| 200 | Configuration. | application/json {"description":"Effective server configuration (TOML sections as JSON). Secret values are always returned as \"***\" and a PUT that sends \"***\" keeps the stor |
| 403 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
PUT /system/config — putConfigReplace the configuration (and reload) · scope system:admin
Validated, written atomically, hot-reloaded where possible; "***" keeps the stored secret.
| Parameter | In | Required | Description |
|---|---|---|---|
If-Match | header | yes | Strong ETag of the representation being changed (428 when missing, 412 when stale). |
Request application/json: {"description":"PUT /system/config body (If-Match = config revision).","type":"object","required":["values"],"properties":{"values":{"type":"object","additional
{
"values": {
"http": {
"listen": "0.0.0.0:8080",
"base_path": ""
},
"osc": {
"udp_in": 7000,
"udp_out": 7001
},
"cloud": {
"link_token": "***"
},
"legacy": {
"enabled": false
}
}
}| Status | Description | Body |
|---|---|---|
| 200 | Applied. | application/json {"description":"Effective server configuration (TOML sections as JSON). Secret values are always returned as \"***\" and a PUT that sends \"***\" keeps the stor |
| 403 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 412 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 428 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /system/diagnostics — runDiagnosticsRun diagnostics (job) · scope system:read
Checks engines, displays, audio, network, storage, sync, gateways; report in the job result.
| Parameter | In | Required | Description |
|---|---|---|---|
Idempotency-Key | header | UUID; replays within 24 h return the original response, a different body with the same key → 409. |
Request application/json: {"type":"object","properties":{"checks":{"type":"array","items":{"anyOf":[{"enum":["engines","displays","audio","network","storage","sync","gateways"]},{"type":
{
"checks": [
"engines",
"displays",
"storage"
]
}| Status | Description | Body |
|---|---|---|
| 202 | Long action accepted; `Location` → /api/v1/jobs/{jobId}; body = the job (02e §3.1). | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/job.schema.json","$comment":"NativeMindNONC — fr |
| 403 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /system/backup — createBackupCreate a backup (job → downloadable archive) · scope system:admin
The finished job's links.resource points to the archive download.
| Parameter | In | Required | Description |
|---|---|---|---|
Idempotency-Key | header | UUID; replays within 24 h return the original response, a different body with the same key → 409. |
Request application/json: {"type":"object","properties":{"include":{"type":"array","items":{"anyOf":[{"enum":["config","database","venues","shows","keys","assets"]},{"type":"string"}]},"
{
"include": [
"config",
"database",
"venues",
"shows"
],
"note": "before update"
}| Status | Description | Body |
|---|---|---|
| 202 | Long action accepted; `Location` → /api/v1/jobs/{jobId}; body = the job (02e §3.1). | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/job.schema.json","$comment":"NativeMindNONC — fr |
| 403 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /system/restore — restoreBackupRestore a backup (job; service restarts) · scope system:admin
The archive is uploaded first with tus (purpose=restore).
| Parameter | In | Required | Description |
|---|---|---|---|
Idempotency-Key | header | UUID; replays within 24 h return the original response, a different body with the same key → 409. |
Request application/json: {"type":"object","required":["uploadId","confirm"],"properties":{"uploadId":{"description":"tus upload (purpose restore) holding the backup archive","type":"str
{
"uploadId": "0192f3a4-5b6c-7d8e-9f01-23456789ad01",
"confirm": true
}| Status | Description | Body |
|---|---|---|
| 202 | Long action accepted; `Location` → /api/v1/jobs/{jobId}; body = the job (02e §3.1). | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/job.schema.json","$comment":"NativeMindNONC — fr |
| 403 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /system/update — getUpdateUpdate status · scope system:read
Installed and available versions per component.
| Status | Description | Body |
|---|---|---|
| 200 | Update status. | application/json {"type":"object","required":["status"],"properties":{"status":{"anyOf":[{"enum":["idle","checking","available","downloading","installing","restartPending","fail |
| 403 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /system/update — startUpdateStart a package / firmware update (job) · scope system:admin
From the configured channel, a version, or an uploaded offline package.
| Parameter | In | Required | Description |
|---|---|---|---|
Idempotency-Key | header | UUID; replays within 24 h return the original response, a different body with the same key → 409. |
Request application/json: {"type":"object","properties":{"channel":{"anyOf":[{"enum":["stable","beta"]},{"type":"string"}]},"version":{"description":"Semantic version 2.0.0.","type":"str
{
"channel": "stable",
"version": "1.0.1"
}| Status | Description | Body |
|---|---|---|
| 202 | Long action accepted; `Location` → /api/v1/jobs/{jobId}; body = the job (02e §3.1). | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/job.schema.json","$comment":"NativeMindNONC — fr |
| 403 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 409 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /system/reboot — rebootSystemReboot the host · scope system:admin
Requires {confirm:true}; disabled unless allowed in config (403 otherwise). Emits system.health before going down.
| Parameter | In | Required | Description |
|---|---|---|---|
Idempotency-Key | header | UUID; replays within 24 h return the original response, a different body with the same key → 409. |
Request application/json: {"description":"POST /system/reboot and /system/shutdown body.","type":"object","required":["confirm"],"properties":{"confirm":{"const":true},"delaySec":{"type"
{
"confirm": true,
"delaySec": 5,
"reason": "driver update"
}| Status | Description | Body |
|---|---|---|
| 202 | Scheduled. | application/json {"type":"object","required":["action","at"],"properties":{"action":{"enum":["reboot","shutdown"]},"at":{"description":"RFC 3339 UTC with milliseconds, e.g. 2026 |
| 403 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /system/shutdown — shutdownSystemShut the host down · scope system:admin
Requires {confirm:true}; disabled unless allowed in config (403 otherwise).
| Parameter | In | Required | Description |
|---|---|---|---|
Idempotency-Key | header | UUID; replays within 24 h return the original response, a different body with the same key → 409. |
Request application/json: {"description":"POST /system/reboot and /system/shutdown body.","type":"object","required":["confirm"],"properties":{"confirm":{"const":true},"delaySec":{"type"
{
"confirm": true,
"delaySec": 30
}| Status | Description | Body |
|---|---|---|
| 202 | Scheduled. | application/json {"type":"object","required":["action","at"],"properties":{"action":{"enum":["reboot","shutdown"]},"at":{"description":"RFC 3339 UTC with milliseconds, e.g. 2026 |
| 403 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /nodes — listNodesCluster nodes and their clocks · scope info:read
This server and the engine hosts it drives, with PTP / NTP clock status (multi-node sync).
| Parameter | In | Required | Description |
|---|---|---|---|
limit | query | Page size (default 50, max 500). | |
cursor | query | Opaque cursor from the previous page's `nextCursor`. |
| Status | Description | Body |
|---|---|---|
| 200 | Page of nodes. | application/json {"type":"object","required":["items","nextCursor"],"properties":{"items":{"type":"array","items":{"description":"Cluster node (02d UC-K1–K3): this server and th |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /nodes/{nodeId} — getNodeOne cluster node · scope info:read
Node status and clock.
| Parameter | In | Required | Description |
|---|---|---|---|
nodeId | path | yes | Cluster node id. |
| Status | Description | Body |
|---|---|---|
| 200 | The node. | application/json {"description":"Cluster node (02d UC-K1–K3): this server and the engine hosts it drives.","type":"object","required":["id","role","status"],"properties":{"id":{ |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /shows — listShowsList shows · scope content:read
Summaries (no asset / show bodies); ?q= matches title and tags, ?tag= filters.
| Parameter | In | Required | Description |
|---|---|---|---|
limit | query | Page size (default 50, max 500). | |
cursor | query | Opaque cursor from the previous page's `nextCursor`. | |
q | query | Full-text query where supported. | |
sort | query | Comma-separated fields, `-` prefix = descending. | |
tag | query | Tag filter. |
| Status | Description | Body |
|---|---|---|
| 200 | Page of show summaries. | application/json {"type":"object","required":["items","nextCursor"],"properties":{"items":{"type":"array","items":{"description":"Collection item: no assets / show body.","type" |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /shows — createShowCreate a show · scope content:write
Body = .dome show manifest without format / kind; id = meta.id. 409 if it exists (use putShow to replace).
| Parameter | In | Required | Description |
|---|---|---|---|
Idempotency-Key | header | UUID; replays within 24 h return the original response, a different body with the same key → 409. |
Request application/json: {"description":"POST /shows and PUT /shows/{showId} body. Assets are referenced by .dome asset entries; an entry whose `src` is `asset:<assetId>` points to an a
{
"meta": {
"id": "9c4d5e6f-7a8b-4c93-8d0e-1f2a3b4c5d6e",
"title": {
"en": "Intro show"
}
},
"assets": [
{
"id": "intro",
"src": "asset:0192f3a4-5b6c-7d8e-9f01-23456789ae01",
"sha256": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
"size": 734003200,
"type": "video",
"mapping": {
"projection": "domemaster",
"fov": 180
},
"duration": 600
}
],
"show": {
"playlists": [
{
"id": "main",
"items": [
{
"asset": "intro"
}
]
}
],
"cues": [
{
"id": "dim",
"at": {
"trigger": "go"
},
"actions": [
{
"do": "setBrightness",
"target": "main",
"args": {
"value": 0.7
}
}
]
}
],
"triggers": [
{
"id": "go",
"source": "osc",
"match": "/dome/go"
}
],
"startup": {
"playlist": "main"
}
}
}| Status | Description | Body |
|---|---|---|
| 201 | Created. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/show.schema.json","$comment":"NativeMindNONC — f |
| 409 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /shows/{showId} — getShowGet a show · scope content:read
Full show with validation warnings against the active venue.
| Parameter | In | Required | Description |
|---|---|---|---|
showId | path | yes | Show id (UUIDv7 for server-created shows, or the `.dome` `meta.id` of an imported show). |
If-None-Match | header | ETag of a cached representation (304 when unchanged). |
| Status | Description | Body |
|---|---|---|
| 200 | The show. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/show.schema.json","$comment":"NativeMindNONC — f |
| 304 | Representation unchanged (If-None-Match). | |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
PUT /shows/{showId} — putShowReplace (or create with a client-chosen id) · scope content:write
If-Match replaces; If-None-Match: * creates with this id (412 if taken).
| Parameter | In | Required | Description |
|---|---|---|---|
showId | path | yes | Show id (UUIDv7 for server-created shows, or the `.dome` `meta.id` of an imported show). |
If-Match | header | Required to replace an existing resource (428 when missing, 412 when stale). To create with a client-chosen id send `If-None-Match: *` instead. | |
If-None-Match | header | `*` = create only (412 if the id exists). |
Request application/json: {"description":"POST /shows and PUT /shows/{showId} body. Assets are referenced by .dome asset entries; an entry whose `src` is `asset:<assetId>` points to an a
{
"meta": {
"id": "9c4d5e6f-7a8b-4c93-8d0e-1f2a3b4c5d6e",
"title": {
"en": "Intro show"
}
},
"assets": [
{
"id": "intro",
"src": "asset:0192f3a4-5b6c-7d8e-9f01-23456789ae01",
"sha256": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
"size": 734003200,
"type": "video",
"mapping": {
"projection": "domemaster",
"fov": 180
},
"duration": 600
}
],
"show": {
"playlists": [
{
"id": "main",
"items": [
{
"asset": "intro"
}
]
}
],
"cues": [
{
"id": "dim",
"at": {
"trigger": "go"
},
"actions": [
{
"do": "setBrightness",
"target": "main",
"args": {
"value": 0.7
}
}
]
}
],
"triggers": [
{
"id": "go",
"source": "osc",
"match": "/dome/go"
}
],
"startup": {
"playlist": "main"
}
}
}| Status | Description | Body |
|---|---|---|
| 200 | Replaced. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/show.schema.json","$comment":"NativeMindNONC — f |
| 201 | Created. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/show.schema.json","$comment":"NativeMindNONC — f |
| 412 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 428 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
PATCH /shows/{showId} — patchShowMerge-patch a show · scope content:write
RFC 7396 over the show sections; the result must validate as a show.
| Parameter | In | Required | Description |
|---|---|---|---|
showId | path | yes | Show id (UUIDv7 for server-created shows, or the `.dome` `meta.id` of an imported show). |
If-Match | header | yes | Strong ETag of the representation being changed (428 when missing, 412 when stale). |
Request application/merge-patch+json: {"description":"PATCH /shows/{showId} (application/merge-patch+json): any subset of the sections; arrays are replaced whole (RFC 7396).","type":"object","minPro
{
"meta": {
"title": {
"en": "Intro show (v2)"
}
}
}| Status | Description | Body |
|---|---|---|
| 200 | Patched. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/show.schema.json","$comment":"NativeMindNONC — f |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 412 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 428 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
DELETE /shows/{showId} — deleteShowDelete a show · scope content:write
Refused (409) while it is the active show of a playing venue. Assets are kept.
| Parameter | In | Required | Description |
|---|---|---|---|
showId | path | yes | Show id (UUIDv7 for server-created shows, or the `.dome` `meta.id` of an imported show). |
If-Match | header | yes | Strong ETag of the representation being changed (428 when missing, 412 when stale). |
| Status | Description | Body |
|---|---|---|
| 204 | Done, no body. | |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 409 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 412 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 428 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /shows/{showId}/export — exportShowExport the show as a .dome · scope content:read
kind: show .dome; ?embedAssets=true stores the media inside (stored entries, ZIP64). Range supported.
| Parameter | In | Required | Description |
|---|---|---|---|
showId | path | yes | Show id (UUIDv7 for server-created shows, or the `.dome` `meta.id` of an imported show). |
embedAssets | query | Embed the asset files (otherwise external references with sha256 + size). | |
Range | header | Byte range (RFC 9110). |
| Status | Description | Body |
|---|---|---|
| 200 | The .dome file. | application/vnd.nativemind.freedome.dome+zip {"type":"string","contentMediaType":"application/vnd.nativemind.freedome.dome+zip"} |
| 206 | Partial content. | application/vnd.nativemind.freedome.dome+zip {"type":"string","contentMediaType":"application/vnd.nativemind.freedome.dome+zip"} |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /shows/{showId}/playlists/{itemId} — getPlaylistGet a playlist of the show · scope content:read
The .dome show.playlists[] entry with this id; ETag = show revision.
| Parameter | In | Required | Description |
|---|---|---|---|
showId | path | yes | Show id (UUIDv7 for server-created shows, or the `.dome` `meta.id` of an imported show). |
itemId | path | yes | Document-scoped id of the playlist / timeline / cue / trigger inside the show. |
| Status | Description | Body |
|---|---|---|
| 200 | The playlist. | application/json {"type":"object","required":["id","items"],"properties":{"id":{"description":"Document-scoped id (02e §3.2).","type":"string","pattern":"^[A-Za-z0-9._-]{1,64}$" |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
PUT /shows/{showId}/playlists/{itemId} — putPlaylistCreate or replace a playlist of the show · scope content:write
Body id must equal the path id. If-Match = show ETag; bumps the show revision (event show.updated, sub-kind playlist.updated).
| Parameter | In | Required | Description |
|---|---|---|---|
showId | path | yes | Show id (UUIDv7 for server-created shows, or the `.dome` `meta.id` of an imported show). |
itemId | path | yes | Document-scoped id of the playlist / timeline / cue / trigger inside the show. |
If-Match | header | yes | Strong ETag of the representation being changed (428 when missing, 412 when stale). |
Request application/json: {"type":"object","required":["id","items"],"properties":{"id":{"description":"Document-scoped id (02e §3.2).","type":"string","pattern":"^[A-Za-z0-9._-]{1,64}$"
{
"id": "main",
"name": "Main",
"loop": false,
"items": [
{
"asset": "intro",
"transition": {
"kind": "fade",
"duration": 2
}
}
]
}| Status | Description | Body |
|---|---|---|
| 200 | Stored; the playlist as saved. | application/json {"type":"object","required":["id","items"],"properties":{"id":{"description":"Document-scoped id (02e §3.2).","type":"string","pattern":"^[A-Za-z0-9._-]{1,64}$" |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 412 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 428 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
DELETE /shows/{showId}/playlists/{itemId} — deletePlaylistDelete a playlist of the show · scope content:write
409 when other show entries still reference it (e.g. a cue → trigger, startup → playlist).
| Parameter | In | Required | Description |
|---|---|---|---|
showId | path | yes | Show id (UUIDv7 for server-created shows, or the `.dome` `meta.id` of an imported show). |
itemId | path | yes | Document-scoped id of the playlist / timeline / cue / trigger inside the show. |
If-Match | header | yes | Strong ETag of the representation being changed (428 when missing, 412 when stale). |
| Status | Description | Body |
|---|---|---|
| 204 | Done, no body. | |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 409 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 412 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 428 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /shows/{showId}/timelines/{itemId} — getTimelineGet a timeline of the show · scope content:read
The .dome show.timelines[] entry with this id; ETag = show revision.
| Parameter | In | Required | Description |
|---|---|---|---|
showId | path | yes | Show id (UUIDv7 for server-created shows, or the `.dome` `meta.id` of an imported show). |
itemId | path | yes | Document-scoped id of the playlist / timeline / cue / trigger inside the show. |
| Status | Description | Body |
|---|---|---|
| 200 | The timeline. | application/json {"type":"object","required":["id","tracks"],"properties":{"id":{"description":"Document-scoped id (02e §3.2).","type":"string","pattern":"^[A-Za-z0-9._-]{1,64}$ |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
PUT /shows/{showId}/timelines/{itemId} — putTimelineCreate or replace a timeline of the show · scope content:write
Body id must equal the path id. If-Match = show ETag; bumps the show revision (event show.updated, sub-kind timeline.updated).
| Parameter | In | Required | Description |
|---|---|---|---|
showId | path | yes | Show id (UUIDv7 for server-created shows, or the `.dome` `meta.id` of an imported show). |
itemId | path | yes | Document-scoped id of the playlist / timeline / cue / trigger inside the show. |
If-Match | header | yes | Strong ETag of the representation being changed (428 when missing, 412 when stale). |
Request application/json: {"type":"object","required":["id","tracks"],"properties":{"id":{"description":"Document-scoped id (02e §3.2).","type":"string","pattern":"^[A-Za-z0-9._-]{1,64}$
{
"id": "tl",
"fps": 60,
"duration": 600,
"tracks": [
{
"id": "v",
"kind": "video",
"clips": [
{
"asset": "intro",
"start": 0
}
]
}
],
"markers": [
{
"id": "half",
"time": 300,
"name": "Half"
}
]
}| Status | Description | Body |
|---|---|---|
| 200 | Stored; the timeline as saved. | application/json {"type":"object","required":["id","tracks"],"properties":{"id":{"description":"Document-scoped id (02e §3.2).","type":"string","pattern":"^[A-Za-z0-9._-]{1,64}$ |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 412 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 428 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
DELETE /shows/{showId}/timelines/{itemId} — deleteTimelineDelete a timeline of the show · scope content:write
409 when other show entries still reference it (e.g. a cue → trigger, startup → playlist).
| Parameter | In | Required | Description |
|---|---|---|---|
showId | path | yes | Show id (UUIDv7 for server-created shows, or the `.dome` `meta.id` of an imported show). |
itemId | path | yes | Document-scoped id of the playlist / timeline / cue / trigger inside the show. |
If-Match | header | yes | Strong ETag of the representation being changed (428 when missing, 412 when stale). |
| Status | Description | Body |
|---|---|---|
| 204 | Done, no body. | |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 409 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 412 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 428 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /shows/{showId}/cues/{itemId} — getCueGet a cue of the show · scope content:read
The .dome show.cues[] entry with this id; ETag = show revision.
| Parameter | In | Required | Description |
|---|---|---|---|
showId | path | yes | Show id (UUIDv7 for server-created shows, or the `.dome` `meta.id` of an imported show). |
itemId | path | yes | Document-scoped id of the playlist / timeline / cue / trigger inside the show. |
| Status | Description | Body |
|---|---|---|
| 200 | The cue. | application/json {"type":"object","required":["id","actions"],"properties":{"id":{"description":"Document-scoped id (02e §3.2).","type":"string","pattern":"^[A-Za-z0-9._-]{1,64} |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
PUT /shows/{showId}/cues/{itemId} — putCueCreate or replace a cue of the show · scope content:write
Body id must equal the path id. If-Match = show ETag; bumps the show revision (event show.updated, sub-kind cue.updated).
| Parameter | In | Required | Description |
|---|---|---|---|
showId | path | yes | Show id (UUIDv7 for server-created shows, or the `.dome` `meta.id` of an imported show). |
itemId | path | yes | Document-scoped id of the playlist / timeline / cue / trigger inside the show. |
If-Match | header | yes | Strong ETag of the representation being changed (428 when missing, 412 when stale). |
Request application/json: {"type":"object","required":["id","actions"],"properties":{"id":{"description":"Document-scoped id (02e §3.2).","type":"string","pattern":"^[A-Za-z0-9._-]{1,64}
{
"id": "dim",
"at": {
"trigger": "go"
},
"actions": [
{
"do": "setBrightness",
"target": "main",
"args": {
"value": 0.7,
"fade": 3
}
}
]
}| Status | Description | Body |
|---|---|---|
| 200 | Stored; the cue as saved. | application/json {"type":"object","required":["id","actions"],"properties":{"id":{"description":"Document-scoped id (02e §3.2).","type":"string","pattern":"^[A-Za-z0-9._-]{1,64} |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 412 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 428 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
DELETE /shows/{showId}/cues/{itemId} — deleteCueDelete a cue of the show · scope content:write
409 when other show entries still reference it (e.g. a cue → trigger, startup → playlist).
| Parameter | In | Required | Description |
|---|---|---|---|
showId | path | yes | Show id (UUIDv7 for server-created shows, or the `.dome` `meta.id` of an imported show). |
itemId | path | yes | Document-scoped id of the playlist / timeline / cue / trigger inside the show. |
If-Match | header | yes | Strong ETag of the representation being changed (428 when missing, 412 when stale). |
| Status | Description | Body |
|---|---|---|
| 204 | Done, no body. | |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 409 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 412 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 428 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /shows/{showId}/triggers/{itemId} — getTriggerGet a trigger of the show · scope content:read
The .dome show.triggers[] entry with this id; ETag = show revision.
| Parameter | In | Required | Description |
|---|---|---|---|
showId | path | yes | Show id (UUIDv7 for server-created shows, or the `.dome` `meta.id` of an imported show). |
itemId | path | yes | Document-scoped id of the playlist / timeline / cue / trigger inside the show. |
| Status | Description | Body |
|---|---|---|
| 200 | The trigger. | application/json {"type":"object","required":["id","source"],"properties":{"id":{"description":"Document-scoped id (02e §3.2).","type":"string","pattern":"^[A-Za-z0-9._-]{1,64}$ |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
PUT /shows/{showId}/triggers/{itemId} — putTriggerCreate or replace a trigger of the show · scope content:write
Body id must equal the path id. If-Match = show ETag; bumps the show revision (event show.updated, sub-kind trigger.updated).
| Parameter | In | Required | Description |
|---|---|---|---|
showId | path | yes | Show id (UUIDv7 for server-created shows, or the `.dome` `meta.id` of an imported show). |
itemId | path | yes | Document-scoped id of the playlist / timeline / cue / trigger inside the show. |
If-Match | header | yes | Strong ETag of the representation being changed (428 when missing, 412 when stale). |
Request application/json: {"type":"object","required":["id","source"],"properties":{"id":{"description":"Document-scoped id (02e §3.2).","type":"string","pattern":"^[A-Za-z0-9._-]{1,64}$
{
"id": "go",
"source": "osc",
"match": "/dome/go"
}| Status | Description | Body |
|---|---|---|
| 200 | Stored; the trigger as saved. | application/json {"type":"object","required":["id","source"],"properties":{"id":{"description":"Document-scoped id (02e §3.2).","type":"string","pattern":"^[A-Za-z0-9._-]{1,64}$ |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 412 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 428 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
DELETE /shows/{showId}/triggers/{itemId} — deleteTriggerDelete a trigger of the show · scope content:write
409 when other show entries still reference it (e.g. a cue → trigger, startup → playlist).
| Parameter | In | Required | Description |
|---|---|---|---|
showId | path | yes | Show id (UUIDv7 for server-created shows, or the `.dome` `meta.id` of an imported show). |
itemId | path | yes | Document-scoped id of the playlist / timeline / cue / trigger inside the show. |
If-Match | header | yes | Strong ETag of the representation being changed (428 when missing, 412 when stale). |
| Status | Description | Body |
|---|---|---|
| 204 | Done, no body. | |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 409 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 412 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 428 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /shows/{showId}/matrix — getMatrixGet the show matrix · scope content:read
Screenberry-style matrix (.dome show.matrix); 404 when the show has none.
| Parameter | In | Required | Description |
|---|---|---|---|
showId | path | yes | Show id (UUIDv7 for server-created shows, or the `.dome` `meta.id` of an imported show). |
| Status | Description | Body |
|---|---|---|
| 200 | The matrix. | application/json {"description":"Screenberry-style matrix (compatibility); cells reference row / column ids.","type":"object","required":["rows","columns","cells"],"properties": |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
PUT /shows/{showId}/matrix — putMatrixReplace the show matrix · scope content:write
If-Match = show ETag; emits matrix.updated.
| Parameter | In | Required | Description |
|---|---|---|---|
showId | path | yes | Show id (UUIDv7 for server-created shows, or the `.dome` `meta.id` of an imported show). |
If-Match | header | yes | Strong ETag of the representation being changed (428 when missing, 412 when stale). |
Request application/json: {"description":"Screenberry-style matrix (compatibility); cells reference row / column ids.","type":"object","required":["rows","columns","cells"],"properties":
{
"rows": [
{
"id": "r1"
}
],
"columns": [
{
"id": "c1"
},
{
"id": "c2"
}
],
"cells": [
{
"row": "r1",
"column": "c1",
"asset": "intro"
},
{
"row": "r1",
"column": "c2",
"asset": "poster"
}
]
}| Status | Description | Body |
|---|---|---|
| 200 | Stored. | application/json {"description":"Screenberry-style matrix (compatibility); cells reference row / column ids.","type":"object","required":["rows","columns","cells"],"properties": |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 412 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 428 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /imports — startImportImport a file (job) · scope content:write
Source = a tus upload (purpose=import), an allow-listed URL, or a stored asset. Content sniffing (02e §9.2) wins over format when they disagree (unsupported-format if neither matches).
| Parameter | In | Required | Description |
|---|---|---|---|
Idempotency-Key | header | UUID; replays within 24 h return the original response, a different body with the same key → 409. |
Request application/json: {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/import.schema.json","$comment":"NativeMindNONC —
{
"uploadId": "0192f3a4-5b6c-7d8e-9f01-23456789af01",
"format": "dome",
"target": {
"kind": "auto",
"activate": true
}
}| Status | Description | Body |
|---|---|---|
| 202 | Long action accepted; `Location` → /api/v1/jobs/{jobId}; body = the job (02e §3.1). | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/job.schema.json","$comment":"NativeMindNONC — fr |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 415 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /venues/{venueId}/players — listPlayersList the venue's media players · scope playback:read
Player main always exists; others come from the active show's mediaPlayers.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
limit | query | Page size (default 50, max 500). | |
cursor | query | Opaque cursor from the previous page's `nextCursor`. |
| Status | Description | Body |
|---|---|---|
| 200 | Page of players. | application/json {"type":"object","required":["items","nextCursor"],"properties":{"items":{"type":"array","items":{"type":"object","required":["id","venueId","status","position" |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /venues/{venueId}/players/{playerId} — getPlayerPlayer state · scope playback:read
Live state; also pushed as player.state / player.position on venues/{v}/players/{p}.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
playerId | path | yes | Media player id or the alias `main`. |
| Status | Description | Body |
|---|---|---|
| 200 | The player. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/player.schema.json","$comment":"NativeMindNONC — |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
PATCH /venues/{venueId}/players/{playerId} — patchPlayerSet rate / loop / volume / opacity / brightness / rotation · scope playback:control
Merge-patch of the player's live parameters (UC-P6); last writer wins.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
playerId | path | yes | Media player id or the alias `main`. |
Request application/merge-patch+json: {"description":"PATCH /venues/{venueId}/players/{playerId} (merge-patch; playback is last-writer-wins, no If-Match).","type":"object","minProperties":1,"propert
{
"volume": 0.6,
"rate": 1
}| Status | Description | Body |
|---|---|---|
| 200 | Updated player. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/player.schema.json","$comment":"NativeMindNONC — |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 503 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /venues/{venueId}/players/{playerId}/play — playPlay (optionally a given source, optionally scheduled) · scope playback:control
Without a body: resume the loaded source or start show.startup. at schedules the start on the server clock (multi-node sync). Playing on playing = no-op success.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
playerId | path | yes | Media player id or the alias `main`. |
Idempotency-Key | header | UUID; replays within 24 h return the original response, a different body with the same key → 409. |
Request application/json: {"description":"POST …/play: what to play (absent = resume the loaded source / startup) and when. `at` = scheduled start on the server clock (multi-node sync, 0
{
"playlistId": "main",
"itemIndex": 0,
"position": 0,
"at": "2026-10-19T12:00:05.000Z"
}| Status | Description | Body |
|---|---|---|
| 200 | Player state after the command (pending = not yet acknowledged by the engine). | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/player.schema.json","$comment":"NativeMindNONC — |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 409 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 503 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /venues/{venueId}/players/{playerId}/pause — pausePause · scope playback:control
Pause at the current position (no-op when already paused).
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
playerId | path | yes | Media player id or the alias `main`. |
Idempotency-Key | header | UUID; replays within 24 h return the original response, a different body with the same key → 409. |
| Status | Description | Body |
|---|---|---|
| 200 | Player state after the command (pending = not yet acknowledged by the engine). | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/player.schema.json","$comment":"NativeMindNONC — |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 409 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 503 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /venues/{venueId}/players/{playerId}/resume — resumeResume · scope playback:control
Resume a paused player.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
playerId | path | yes | Media player id or the alias `main`. |
Idempotency-Key | header | UUID; replays within 24 h return the original response, a different body with the same key → 409. |
| Status | Description | Body |
|---|---|---|
| 200 | Player state after the command (pending = not yet acknowledged by the engine). | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/player.schema.json","$comment":"NativeMindNONC — |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 409 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 503 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /venues/{venueId}/players/{playerId}/stop — stopStop · scope playback:control
Stop and rewind; the player shows the configured idle content.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
playerId | path | yes | Media player id or the alias `main`. |
Idempotency-Key | header | UUID; replays within 24 h return the original response, a different body with the same key → 409. |
| Status | Description | Body |
|---|---|---|
| 200 | Player state after the command (pending = not yet acknowledged by the engine). | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/player.schema.json","$comment":"NativeMindNONC — |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 409 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 503 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /venues/{venueId}/players/{playerId}/next — nextNext item · scope playback:control
Next playlist item / timeline marker / matrix column.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
playerId | path | yes | Media player id or the alias `main`. |
Idempotency-Key | header | UUID; replays within 24 h return the original response, a different body with the same key → 409. |
| Status | Description | Body |
|---|---|---|
| 200 | Player state after the command (pending = not yet acknowledged by the engine). | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/player.schema.json","$comment":"NativeMindNONC — |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 409 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 503 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /venues/{venueId}/players/{playerId}/previous — previousPrevious item · scope playback:control
Previous playlist item / timeline marker / matrix column.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
playerId | path | yes | Media player id or the alias `main`. |
Idempotency-Key | header | UUID; replays within 24 h return the original response, a different body with the same key → 409. |
| Status | Description | Body |
|---|---|---|
| 200 | Player state after the command (pending = not yet acknowledged by the engine). | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/player.schema.json","$comment":"NativeMindNONC — |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 409 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 503 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /venues/{venueId}/players/{playerId}/seek — seekSeek · scope playback:control
Exactly one of position (s), marker (timeline marker id) or normalized (0..1); optional at for synchronised seeks.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
playerId | path | yes | Media player id or the alias `main`. |
Idempotency-Key | header | UUID; replays within 24 h return the original response, a different body with the same key → 409. |
Request application/json: {"description":"POST …/seek: exactly one of position (s), marker (timeline marker id) or normalized (0..1).","type":"object","properties":{"position":{"descript
{
"position": 120
}| Status | Description | Body |
|---|---|---|
| 200 | Player state after the command (pending = not yet acknowledged by the engine). | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/player.schema.json","$comment":"NativeMindNONC — |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 409 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 503 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /venues/{venueId}/cues/{cueId}/fire — fireCueFire a cue (GO) · scope playback:control
Runs the cue actions of the active show (or showId); result per action. Also cue.fired / cue.failed on venues/{v}/cues.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
cueId | path | yes | Cue id (`.dome` `show.cues[].id`). |
Idempotency-Key | header | UUID; replays within 24 h return the original response, a different body with the same key → 409. |
Request application/json: {"type":"object","properties":{"showId":{"description":"default = active show","type":"string","pattern":"^[A-Za-z0-9._-]{1,64}$","examples":["p1","intro.mp4","
{
"showId": "9c4d5e6f-7a8b-4c93-8d0e-1f2a3b4c5d6e"
}| Status | Description | Body |
|---|---|---|
| 200 | Cue fired. | application/json {"type":"object","required":["cueId","showId","firedAt"],"properties":{"cueId":{"description":"Document-scoped id (.dome displays[].id, assets[].id, playlist / |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 409 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /venues/{venueId}/active-show — getActiveShowThe venue's active show · scope playback:read
Show loaded onto the venue (showId null = none) with mapping warnings.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
| Status | Description | Body |
|---|---|---|
| 200 | Active show. | application/json {"type":"object","required":["venueId","showId"],"properties":{"venueId":{"description":"Document-scoped id (.dome displays[].id, assets[].id, playlist / cue id |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
PUT /venues/{venueId}/active-show — setActiveShowLoad a show onto the venue · scope playback:control
Maps the show onto this venue's geometry (02 §9); autoplay starts show.startup on main; showId: null unloads. Playback-class operation: no If-Match.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
Request application/json: {"description":"PUT /venues/{venueId}/active-show: load a show onto the venue (mapped onto its geometry); showId null unloads.","type":"object","required":["sho
{
"showId": "9c4d5e6f-7a8b-4c93-8d0e-1f2a3b4c5d6e",
"autoplay": true
}| Status | Description | Body |
|---|---|---|
| 200 | Loaded. | application/json {"type":"object","required":["venueId","showId"],"properties":{"venueId":{"description":"Document-scoped id (.dome displays[].id, assets[].id, playlist / cue id |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 409 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 503 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /venues/{venueId}/parameters — listParametersList node / layer parameters · scope playback:read
Parameter registry (UC-N2): path, type, value, range; ?prefix= narrows (e.g. players.main). Live changes: topic venues/{v}/parameters.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
limit | query | Page size (default 50, max 500). | |
cursor | query | Opaque cursor from the previous page's `nextCursor`. | |
prefix | query | Dotted path prefix. |
| Status | Description | Body |
|---|---|---|
| 200 | Page of parameters. | application/json {"type":"object","required":["items","nextCursor"],"properties":{"items":{"type":"array","items":{"description":"A node / layer parameter (02d ParameterService |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /venues/{venueId}/parameters/{path} — getParameterGet a parameter · scope playback:read
One parameter with type and range.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
path | path | yes | Dotted parameter path, e.g. `master.brightness`, `players.main.opacity`. |
| Status | Description | Body |
|---|---|---|
| 200 | The parameter. | application/json {"description":"A node / layer parameter (02d ParameterService UC-N1–N3; Screenberry-compatible surface).","type":"object","required":["path","type","value"],"p |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
PUT /venues/{venueId}/parameters/{path} — setParameterSet a parameter · scope playback:control
Screenberry-compatible parameter surface (UC-N1); optional fadeSec. Read-only parameters → 422.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
path | path | yes | Dotted parameter path, e.g. `master.brightness`, `players.main.opacity`. |
Request application/json: {"description":"PUT /venues/{venueId}/parameters/{path} body.","type":"object","required":["value"],"properties":{"value":{"anyOf":[{"type":"number"},{"type":"b
{
"value": 0.8,
"fadeSec": 2
}| Status | Description | Body |
|---|---|---|
| 200 | New value. | application/json {"description":"A node / layer parameter (02d ParameterService UC-N1–N3; Screenberry-compatible surface).","type":"object","required":["path","type","value"],"p |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /uploads — createUploadCreate an upload (tus Creation, optionally with the first chunk) · scope content:write
Upload-Length + Upload-Metadata (filename, contentType, sha256, purpose, assetId). With a body (Content-Type: application/offset+octet-stream) the first chunk is stored (Creation-With-Upload) and Upload-Offset returned. Upload-Defer-Length is not supported.
| Parameter | In | Required | Description |
|---|---|---|---|
Tus-Resumable | header | yes | tus protocol version used by the client (`1.0.0`); other values → 412 with `Tus-Version`. |
Upload-Length | header | yes | Total size in bytes (≤ Tus-Max-Size, else 413). |
Upload-Metadata | header | yes | `filename` and `purpose` required; `sha256` strongly recommended. |
Upload-Checksum | header | `sha256 <base64 digest of this chunk>`; mismatch → 460 and the chunk is discarded. | |
Idempotency-Key | header | UUID; replays within 24 h return the original response, a different body with the same key → 409. |
Request application/offset+octet-stream: {"type":"string","contentMediaType":"application/octet-stream"}
| Status | Description | Body |
|---|---|---|
| 201 | Created; `Location` = /api/v1/uploads/{uploadId}. | |
| 400 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 412 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 413 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 415 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 460 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
OPTIONS /uploads — getUploadCapabilitiestus discovery · scope anon
Returns the tus capability headers (no body). Anonymous so that tus clients can probe before auth.
| Status | Description | Body |
|---|---|---|
| 204 | Capabilities. | |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /uploads/{uploadId} — getUploadUpload status as JSON · scope content:write
For clients without a tus library (progress UIs); also pushed as upload.progress on uploads/{u}.
| Parameter | In | Required | Description |
|---|---|---|---|
uploadId | path | yes | tus upload id (UUIDv7). |
| Status | Description | Body |
|---|---|---|
| 200 | Upload status. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/upload.schema.json","$comment":"NativeMindNONC — |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
PATCH /uploads/{uploadId} — appendUploadAppend a chunk (tus PATCH) · scope content:write
Upload-Offset must equal the server offset (409 otherwise); Upload-Checksum: sha256 … per chunk (460 on mismatch, chunk discarded). Concurrency is the offset, not If-Match.
| Parameter | In | Required | Description |
|---|---|---|---|
uploadId | path | yes | tus upload id (UUIDv7). |
Tus-Resumable | header | yes | tus protocol version used by the client (`1.0.0`); other values → 412 with `Tus-Version`. |
Upload-Offset | header | yes | Offset the chunk starts at; must equal the server offset (409 otherwise). |
Upload-Checksum | header | `sha256 <base64 digest of this chunk>`; mismatch → 460 and the chunk is discarded. |
Request application/offset+octet-stream: {"type":"string","contentMediaType":"application/octet-stream"}
| Status | Description | Body |
|---|---|---|
| 204 | Chunk stored; new offset. When offset = length the upload completes (asset / import job follows). | |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 409 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 410 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 412 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 413 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 415 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 460 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
DELETE /uploads/{uploadId} — deleteUploadTerminate an upload (tus Termination) · scope content:write
Frees the stored bytes; later requests → 404.
| Parameter | In | Required | Description |
|---|---|---|---|
uploadId | path | yes | tus upload id (UUIDv7). |
Tus-Resumable | header | yes | tus protocol version used by the client (`1.0.0`); other values → 412 with `Tus-Version`. |
| Status | Description | Body |
|---|---|---|
| 204 | Terminated. | |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
HEAD /uploads/{uploadId} — getUploadOffsetCurrent offset (tus HEAD) · scope content:write
Upload-Offset, Upload-Length, Upload-Metadata, Cache-Control: no-store. Expired / unknown → 404 (or 410).
| Parameter | In | Required | Description |
|---|---|---|---|
uploadId | path | yes | tus upload id (UUIDv7). |
Tus-Resumable | header | yes | tus protocol version used by the client (`1.0.0`); other values → 412 with `Tus-Version`. |
| Status | Description | Body |
|---|---|---|
| 200 | Offset. | |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 410 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /assets — listAssetsList / search assets · scope content:read
Filters type, tag, status, full text q (name, tags).
| Parameter | In | Required | Description |
|---|---|---|---|
limit | query | Page size (default 50, max 500). | |
cursor | query | Opaque cursor from the previous page's `nextCursor`. | |
q | query | Full-text query where supported. | |
sort | query | Comma-separated fields, `-` prefix = descending. | |
count | query | Return `count` where cheap. | |
type | query | Asset type. | |
tag | query | Tag filter. | |
status | query | Status filter. |
| Status | Description | Body |
|---|---|---|
| 200 | Page of assets. | application/json {"type":"object","required":["items","nextCursor"],"properties":{"items":{"type":"array","items":{"type":"object","required":["id","name","type","status","revis |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /assets — createAssetCreate an asset from an upload, a URL, or a small multipart file · scope content:write
JSON: {uploadId | url, id?, name?, type?, mapping?, tags}. multipart/form-data with part file for ≤ 100 MB (larger → 413, use tus). Probing (ffprobe, thumbnails) runs in the background: status processing → ready | failed, events on assets/{a}.
| Parameter | In | Required | Description |
|---|---|---|---|
Idempotency-Key | header | UUID; replays within 24 h return the original response, a different body with the same key → 409. |
Request application/json: {"description":"POST /assets JSON body: register a finished tus upload or an external URL (streams, CDN).","type":"object","properties":{"uploadId":{"descriptio
{
"uploadId": "0192f3a4-5b6c-7d8e-9f01-23456789ae10",
"name": "Intro 4K",
"type": "video",
"mapping": {
"projection": "domemaster",
"fov": 180
},
"tags": [
"intro"
]
}Request multipart/form-data: {"description":"POST /assets multipart/form-data body (simple upload ≤ 100 MB): part `file` + optional JSON fields.","type":"object","required":["file"],"proper
| Status | Description | Body |
|---|---|---|
| 201 | Created (processing). | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/asset.schema.json","$comment":"NativeMindNONC — |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 409 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 413 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 415 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /assets/{assetId} — getAssetGet an asset · scope content:read
Metadata, probe data, thumbnails, shows using it.
| Parameter | In | Required | Description |
|---|---|---|---|
assetId | path | yes | Asset id (UUIDv7, or the `.dome` `assets[].id` of an imported asset). |
If-None-Match | header | ETag of a cached representation (304 when unchanged). |
| Status | Description | Body |
|---|---|---|
| 200 | The asset. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/asset.schema.json","$comment":"NativeMindNONC — |
| 304 | Representation unchanged (If-None-Match). | |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
PATCH /assets/{assetId} — patchAssetMerge-patch asset metadata · scope content:write
Name, type, mapping, tags (content is immutable — upload a new asset or re-upload with assetId).
| Parameter | In | Required | Description |
|---|---|---|---|
assetId | path | yes | Asset id (UUIDv7, or the `.dome` `assets[].id` of an imported asset). |
If-Match | header | yes | Strong ETag of the representation being changed (428 when missing, 412 when stale). |
Request application/merge-patch+json: {"type":"object","minProperties":1,"properties":{"name":{"type":"string","minLength":1,"maxLength":512},"type":{"anyOf":[{"enum":["video","image","audio","zelim
{
"tags": [
"intro",
"4k"
]
}| Status | Description | Body |
|---|---|---|
| 200 | Patched. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/asset.schema.json","$comment":"NativeMindNONC — |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 412 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 428 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
DELETE /assets/{assetId} — deleteAssetDelete an asset · scope content:write
Refused (409) while referenced by a show unless ?force=true (cues referencing it then report failed; a playing show continues).
| Parameter | In | Required | Description |
|---|---|---|---|
assetId | path | yes | Asset id (UUIDv7, or the `.dome` `assets[].id` of an imported asset). |
If-Match | header | yes | Strong ETag of the representation being changed (428 when missing, 412 when stale). |
force | query | Proceed although the resource is referenced (cues referencing it are reported failed). |
| Status | Description | Body |
|---|---|---|
| 204 | Done, no body. | |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 409 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 412 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 428 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /assets/{assetId}/content — downloadAssetDownload the asset content · scope content:read
Range requests (206), ETag = sha256, If-None-Match → 304. Registered URL assets → 303 to the URL.
| Parameter | In | Required | Description |
|---|---|---|---|
assetId | path | yes | Asset id (UUIDv7, or the `.dome` `assets[].id` of an imported asset). |
Range | header | Byte range (RFC 9110), e.g. `bytes=0-1048575`. | |
If-None-Match | header | ETag of a cached representation (304 when unchanged). |
| Status | Description | Body |
|---|---|---|
| 200 | Full content. | */* {"type":"string","contentMediaType":"application/octet-stream"} |
| 206 | Partial content. | */* {"type":"string","contentMediaType":"application/octet-stream"} |
| 303 | External asset — see `Location`. | |
| 304 | Representation unchanged (If-None-Match). | |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 409 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 416 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /assets/{assetId}/thumbnail — getAssetThumbnailAsset thumbnail · scope content:read
PNG / JPEG / WebP; ?size= = longest edge in px (nearest generated size).
| Parameter | In | Required | Description |
|---|---|---|---|
assetId | path | yes | Asset id (UUIDv7, or the `.dome` `assets[].id` of an imported asset). |
size | query | Longest edge in pixels. |
| Status | Description | Body |
|---|---|---|
| 200 | Image. | image/png {"type":"string","contentMediaType":"image/png"}image/jpeg {"type":"string","contentMediaType":"image/jpeg"}image/webp {"type":"string","contentMediaType":"image/webp"} |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /storage — getStorageStatsStorage usage · scope content:read
Disk / quota usage of the content store (replaces /api/v1/content/stats).
| Status | Description | Body |
|---|---|---|
| 200 | Stats. | application/json {"description":"GET /storage (replaces /api/v1/content/stats).","type":"object","required":["totalBytes","usedBytes","freeBytes"],"properties":{"totalBytes":{"t |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /venues/{venueId}/texture-sources — listTextureSourcesList live texture sources · scope playback:read
Spout / Syphon / DMA-BUF / NDI senders the engines of this venue can see. To show one, register a stream asset with the matching src and play it.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
limit | query | Page size (default 50, max 500). | |
cursor | query | Opaque cursor from the previous page's `nextCursor`. |
| Status | Description | Body |
|---|---|---|
| 200 | Page of sources. | application/json {"type":"object","required":["items","nextCursor"],"properties":{"items":{"type":"array","items":{"description":"A live source seen by the engine (GET /venues/{ |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 503 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /venues/{venueId}/audio — getAudioVenue audio state · scope playback:read
Mode (digital / hybrid / combined), master gain, mute, engine status.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
| Status | Description | Body |
|---|---|---|
| 200 | Audio state. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/audio.schema.json","$comment":"NativeMindNONC — |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
PATCH /venues/{venueId}/audio — patchAudioSet mode / master gain / mute · scope audio:control
Mode change re-routes the active show's audio between the engines (02c A8).
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
Request application/merge-patch+json: {"type":"object","minProperties":1,"properties":{"mode":{"description":"A8: digital = anAntaDigital only; hybrid = anAntaSound (mechanical devices); combined =
{
"masterGainDb": -9,
"mute": false
}| Status | Description | Body |
|---|---|---|
| 200 | New state. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/audio.schema.json","$comment":"NativeMindNONC — |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 503 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /venues/{venueId}/audio/layout — getSpeakerLayoutSpeaker layout (.dome audio block) · scope info:read
Ambisonics, decoder, speakers, room correction, devices; ETag = venue revision.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
| Status | Description | Body |
|---|---|---|
| 200 | Layout. | application/json {"description":"AnantaSound layout (01b §4.4).","type":"object","properties":{"ambisonics":{"type":"object","properties":{"order":{"type":"integer","minimum":0, |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
PUT /venues/{venueId}/audio/layout — putSpeakerLayoutReplace the speaker layout · scope venues:write
Written into the venue (revision++) and applied to AnantaDigital (decoder rebuilt).
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
If-Match | header | yes | Strong ETag of the representation being changed (428 when missing, 412 when stale). |
Request application/json: {"description":"AnantaSound layout (01b §4.4).","type":"object","properties":{"ambisonics":{"type":"object","properties":{"order":{"type":"integer","minimum":0,
{
"ambisonics": {
"order": 3,
"normalisation": "SN3D",
"channelOrder": "ACN"
},
"decoder": {
"kind": "allrad",
"dualBand": true
},
"speakers": [
{
"id": "s1",
"azimuth": 0,
"elevation": 0,
"distance": 4
}
],
"devices": [
{
"id": "qrd1",
"kind": "qrd",
"address": "osc://10.0.0.20:9000"
}
]
}| Status | Description | Body |
|---|---|---|
| 200 | Stored. | application/json {"description":"AnantaSound layout (01b §4.4).","type":"object","properties":{"ambisonics":{"type":"object","properties":{"order":{"type":"integer","minimum":0, |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 412 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 428 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /venues/{venueId}/audio/zones — listAudioZonesList audio zones · scope playback:read
AnantaDigital zones of the venue.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
limit | query | Page size (default 50, max 500). | |
cursor | query | Opaque cursor from the previous page's `nextCursor`. |
| Status | Description | Body |
|---|---|---|
| 200 | Page of zones. | application/json {"type":"object","required":["items","nextCursor"],"properties":{"items":{"type":"array","items":{"description":"anAntaDigital zone: a subset of speakers with g |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /venues/{venueId}/audio/zones/{zoneId} — getAudioZoneGet a zone · scope playback:read
One zone.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
zoneId | path | yes | Audio zone id. |
| Status | Description | Body |
|---|---|---|
| 200 | The zone. | application/json {"description":"anAntaDigital zone: a subset of speakers with gain, delay, EQ.","type":"object","allOf":[{"type":"object","properties":{"name":{"type":"string", |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
PUT /venues/{venueId}/audio/zones/{zoneId} — putAudioZoneCreate or replace a zone · scope audio:control
If-None-Match: * creates, If-Match replaces.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
zoneId | path | yes | Audio zone id. |
If-Match | header | Required to replace an existing resource (428 when missing, 412 when stale). To create with a client-chosen id send `If-None-Match: *` instead. | |
If-None-Match | header | `*` = create only (412 if the id exists). |
Request application/json: {"type":"object","allOf":[{"type":"object","properties":{"name":{"type":"string","maxLength":128},"speakers":{"type":"array","items":{"description":"Document-sc
{
"name": "Front",
"speakers": [
"s1",
"s2"
],
"gainDb": -3,
"delayMs": 2.5
}| Status | Description | Body |
|---|---|---|
| 200 | Replaced. | application/json {"description":"anAntaDigital zone: a subset of speakers with gain, delay, EQ.","type":"object","allOf":[{"type":"object","properties":{"name":{"type":"string", |
| 201 | Created. | application/json {"description":"anAntaDigital zone: a subset of speakers with gain, delay, EQ.","type":"object","allOf":[{"type":"object","properties":{"name":{"type":"string", |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 412 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 428 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
PATCH /venues/{venueId}/audio/zones/{zoneId} — patchAudioZoneLive zone change (gain, delay, EQ, mute) · scope audio:control
Last writer wins (OSC /freedome/v1/venue/{v}/audio/zone/{z}/gain).
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
zoneId | path | yes | Audio zone id. |
Request application/merge-patch+json: {"type":"object","allOf":[{"type":"object","properties":{"name":{"type":"string","maxLength":128},"speakers":{"type":"array","items":{"description":"Document-sc
{
"gainDb": -6
}| Status | Description | Body |
|---|---|---|
| 200 | Updated zone. | application/json {"description":"anAntaDigital zone: a subset of speakers with gain, delay, EQ.","type":"object","allOf":[{"type":"object","properties":{"name":{"type":"string", |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 503 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
DELETE /venues/{venueId}/audio/zones/{zoneId} — deleteAudioZoneDelete a zone · scope audio:control
Speakers fall back to the default zone.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
zoneId | path | yes | Audio zone id. |
If-Match | header | yes | Strong ETag of the representation being changed (428 when missing, 412 when stale). |
| Status | Description | Body |
|---|---|---|
| 204 | Done, no body. | |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 412 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 428 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /venues/{venueId}/audio/devices — listAudioDevicesList audio devices with live state · scope playback:read
?kind=speaker|microphone|qrd|patefon|karmic_cluster|resonator (replaces get_microphones).
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
limit | query | Page size (default 50, max 500). | |
cursor | query | Opaque cursor from the previous page's `nextCursor`. | |
kind | query | Device kind filter. |
| Status | Description | Body |
|---|---|---|
| 200 | Page of devices. | application/json {"type":"object","required":["items","nextCursor"],"properties":{"items":{"type":"array","items":{"description":"Audio device = .dome audio.devices[] / speakers |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /venues/{venueId}/audio/devices/{deviceId} — getAudioDeviceGet an audio device · scope playback:read
Configuration + live state.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
deviceId | path | yes | Audio device id (`.dome` `audio.devices[].id`). |
| Status | Description | Body |
|---|---|---|
| 200 | The device. | application/json {"description":"Audio device = .dome audio.devices[] / speakers[] entry + live state (02c §6).","type":"object","required":["id","kind","state"],"properties":{" |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
PATCH /venues/{venueId}/audio/devices/{deviceId} — patchAudioDeviceLive device change (gain, mute, name, config) · scope audio:control
Gain / mute are live (last writer wins); config changes are written into the venue.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
deviceId | path | yes | Audio device id (`.dome` `audio.devices[].id`). |
Request application/merge-patch+json: {"type":"object","minProperties":1,"properties":{"name":{"type":"string"},"gainDb":{"description":"Gain in dB (C5: optional companion of linear `volume`).","typ
{
"gainDb": -3
}| Status | Description | Body |
|---|---|---|
| 200 | Updated device. | application/json {"description":"Audio device = .dome audio.devices[] / speakers[] entry + live state (02c §6).","type":"object","required":["id","kind","state"],"properties":{" |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 503 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /venues/{venueId}/audio/devices/{deviceId}/test — testAudioDeviceTest a device (ping / tone / self-test / strike) · scope audio:control
Bounded by the device limits (actuator self-test is refused while a session runs, 409).
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
deviceId | path | yes | Audio device id (`.dome` `audio.devices[].id`). |
Idempotency-Key | header | UUID; replays within 24 h return the original response, a different body with the same key → 409. |
Request application/json: {"type":"object","properties":{"kind":{"anyOf":[{"enum":["ping","tone","selftest","strike"]},{"type":"string"}],"default":"ping"},"frequencyHz":{"type":"number"
{
"kind": "tone",
"frequencyHz": 432,
"gainDb": -30,
"durationS": 2
}| Status | Description | Body |
|---|---|---|
| 200 | Result. | application/json {"type":"object","required":["deviceId","ok"],"properties":{"deviceId":{"description":"Document-scoped id (.dome displays[].id, assets[].id, playlist / cue ids) |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 409 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 503 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /venues/{venueId}/audio/presets — listAudioPresetsList installed presets · scope content:read
L6 programme / pattern / session presets installed on this server.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
limit | query | Page size (default 50, max 500). | |
cursor | query | Opaque cursor from the previous page's `nextCursor`. | |
kind | query | Preset kind. |
| Status | Description | Body |
|---|---|---|
| 200 | Page of presets. | application/json {"type":"object","required":["items","nextCursor"],"properties":{"items":{"type":"array","items":{"type":"object","required":["id","kind","revision"],"propertie |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /venues/{venueId}/audio/presets/{presetId} — getAudioPresetGet a preset document · scope content:read
The ananta/1.0 document.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
presetId | path | yes | Audio preset id. |
| Status | Description | Body |
|---|---|---|
| 200 | The preset. | application/json {"description":"Installed L6 preset: an ananta/1.0 programme, pattern or session document (02c, RC2).","type":"object","required":["id","kind","revision","docum |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
PUT /venues/{venueId}/audio/presets/{presetId} — putAudioPresetInstall or replace a preset · scope content:write
Validated against ananta/1.0 (02c); If-None-Match: * creates.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
presetId | path | yes | Audio preset id. |
If-Match | header | Required to replace an existing resource (428 when missing, 412 when stale). To create with a client-chosen id send `If-None-Match: *` instead. | |
If-None-Match | header | `*` = create only (412 if the id exists). |
Request application/json: {"description":"PUT /venues/{venueId}/audio/presets/{presetId} body.","type":"object","required":["kind","document"],"properties":{"kind":{"enum":["programme","
{
"kind": "session",
"document": {
"format": "ananta-session",
"formatVersion": "1.0.0",
"id": "calm-7",
"title": {
"en": "Calm 7"
},
"items": [
{
"programme": {
"id": "tone-432"
}
}
]
}
}| Status | Description | Body |
|---|---|---|
| 200 | Replaced. | application/json {"description":"Installed L6 preset: an ananta/1.0 programme, pattern or session document (02c, RC2).","type":"object","required":["id","kind","revision","docum |
| 201 | Installed. | application/json {"description":"Installed L6 preset: an ananta/1.0 programme, pattern or session document (02c, RC2).","type":"object","required":["id","kind","revision","docum |
| 412 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 428 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
DELETE /venues/{venueId}/audio/presets/{presetId} — deleteAudioPresetRemove a preset · scope content:write
Refused (409) while a session runs it.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
presetId | path | yes | Audio preset id. |
If-Match | header | yes | Strong ETag of the representation being changed (428 when missing, 412 when stale). |
| Status | Description | Body |
|---|---|---|
| 204 | Done, no body. | |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 409 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 412 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 428 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /venues/{venueId}/audio/sessions — listAudioSessionsList audio sessions (running and recent) · scope playback:read
Running first, then finished ones from the last 24 h.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
limit | query | Page size (default 50, max 500). | |
cursor | query | Opaque cursor from the previous page's `nextCursor`. |
| Status | Description | Body |
|---|---|---|
| 200 | Page of sessions. | application/json {"type":"object","required":["items","nextCursor"],"properties":{"items":{"type":"array","items":{"type":"object","required":["id","venueId","presetId","status" |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /venues/{venueId}/audio/sessions — startAudioSessionRun a preset · scope audio:control
Runs a programme / session preset on the engine(s) the audio mode selects; optional scheduled at.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
Idempotency-Key | header | UUID; replays within 24 h return the original response, a different body with the same key → 409. |
Request application/json: {"description":"POST /venues/{venueId}/audio/sessions: run an installed preset (programme or session).","type":"object","required":["presetId"],"properties":{"p
{
"presetId": "calm-7",
"gainDb": -6,
"targets": {
"zones": [
"front"
]
}
}| Status | Description | Body |
|---|---|---|
| 201 | Started. | application/json {"type":"object","required":["id","venueId","presetId","status","startedAt"],"properties":{"id":{"description":"Server-owned resource id: UUIDv7, lowercase, sor |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 409 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 503 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /venues/{venueId}/audio/sessions/{sessionId} — getAudioSessionGet an audio session · scope playback:read
Status and position.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
sessionId | path | yes | Session id (UUIDv7). |
| Status | Description | Body |
|---|---|---|
| 200 | The session. | application/json {"type":"object","required":["id","venueId","presetId","status","startedAt"],"properties":{"id":{"description":"Server-owned resource id: UUIDv7, lowercase, sor |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
DELETE /venues/{venueId}/audio/sessions/{sessionId} — stopAudioSessionStop an audio session · scope audio:control
Fades out (release times of the programme) and stops; idempotent.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
sessionId | path | yes | Session id (UUIDv7). |
| Status | Description | Body |
|---|---|---|
| 204 | Done, no body. | |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /venues/{venueId}/audio/generator — getGeneratorGenerator state · scope playback:read
Running test / MULTI generator.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
| Status | Description | Body |
|---|---|---|
| 200 | Generator state. | application/json {"type":"object","required":["running"],"properties":{"running":{"type":"boolean"},"settings":{"description":"Test / MULTI generator (iScillator semantics; repl |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
PUT /venues/{venueId}/audio/generator — setGeneratorStart / change the generator · scope audio:control
sine | pink | white | sweep | multi (iScillator semantics); replaces generate_test_signal.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
Request application/json: {"description":"Test / MULTI generator (iScillator semantics; replaces generate_test_signal).","type":"object","required":["signal"],"properties":{"signal":{"an
{
"signal": "pink",
"gainDb": -20,
"targets": {
"zones": [
"front"
]
}
}| Status | Description | Body |
|---|---|---|
| 200 | Running. | application/json {"type":"object","required":["running"],"properties":{"running":{"type":"boolean"},"settings":{"description":"Test / MULTI generator (iScillator semantics; repl |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 503 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
DELETE /venues/{venueId}/audio/generator — stopGeneratorStop the generator · scope audio:control
Idempotent.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
| Status | Description | Body |
|---|---|---|
| 204 | Done, no body. | |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
PUT /venues/{venueId}/audio/sources/{sourceId}/position — setSourcePositionPosition an interactive source · scope audio:control
Azimuth / elevation / distance with an optional ramp; high-rate callers should prefer OSC or WS call.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
sourceId | path | yes | Interactive / realtime audio source id. |
Request application/json: {"description":"Interactive / realtime source position (spherical, listener at the dome centre).","type":"object","required":["azimuth","elevation"],"properties
{
"azimuth": 45,
"elevation": 30,
"distance": 3,
"rampMs": 50
}| Status | Description | Body |
|---|---|---|
| 204 | Done, no body. | |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 503 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /venues/{venueId}/audio/analysis — getAudioAnalysisLive analysis settings and status · scope playback:read
Analysed inputs and whether the audio engine is running them. Frames are events, see topic venues/{venueId}/audio/analysis/{inputId}.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
| Status | Description | Body |
|---|---|---|
| 200 | Analysis state. | application/json {"description":"GET /venues/{venueId}/audio/analysis, event audioAnalysis.state.","type":"object","required":["venueId","enabled","status","inputs"],"properties |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
PUT /venues/{venueId}/audio/analysis — setAudioAnalysisSet the analysed inputs · scope audio:control
Replaces the whole list of inputs and starts or stops the analysis. 503 engine-unavailable when the audio engine is not reachable.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
Request application/json: {"description":"PUT /venues/{venueId}/audio/analysis body: replaces the whole list of inputs.","type":"object","required":["enabled","inputs"],"properties":{"en
{
"enabled": true,
"inputs": [
{
"id": "vocal",
"label": "Lead vocal",
"channels": [
1
],
"envelope": {
"attackMs": 8,
"decayMs": 120
}
}
]
}| Status | Description | Body |
|---|---|---|
| 200 | Analysis state. | application/json {"description":"GET /venues/{venueId}/audio/analysis, event audioAnalysis.state.","type":"object","required":["venueId","enabled","status","inputs"],"properties |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 503 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /venues/{venueId}/audio/reactive — getAudioReactiveAudioReactive state · scope playback:read
Active scene, master intensity, service status.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
| Status | Description | Body |
|---|---|---|
| 200 | AudioReactive state. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/audio-reactive.schema.json","$comment":"NativeMi |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
PATCH /venues/{venueId}/audio/reactive — patchAudioReactiveSelect a scene, enable, set intensity · scope playback:control
Merge-patch; takes effect on the next frame. 422 for an unknown scene or a scene whose gateway or input does not exist.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
Request application/merge-patch+json: {"description":"PATCH /venues/{venueId}/audio/reactive. activeSceneId null = no scene. An unknown scene, or a scene whose gateway or input does not exist, is re
{
"activeSceneId": "percussion-wave"
}| Status | Description | Body |
|---|---|---|
| 200 | AudioReactive state. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/audio-reactive.schema.json","$comment":"NativeMi |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /venues/{venueId}/audio/reactive/scenes — listAudioReactiveScenesList AudioReactive scenes · scope content:read
Scenes stored for this venue.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
limit | query | Page size (default 50, max 500). | |
cursor | query | Opaque cursor from the previous page's `nextCursor`. |
| Status | Description | Body |
|---|---|---|
| 200 | Page of scenes. | application/json {"type":"object","required":["items","nextCursor"],"properties":{"items":{"type":"array","items":{"description":"A scene is data: which metrics drive which targ |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /venues/{venueId}/audio/reactive/scenes/{sceneId} — getAudioReactiveSceneGet a scene · scope content:read
The scene document.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
sceneId | path | yes | AudioReactive scene id. |
| Status | Description | Body |
|---|---|---|
| 200 | The scene. | application/json {"description":"A scene is data: which metrics drive which targets. Mapping ids are unique within the scene.","type":"object","allOf":[{"type":"object","propert |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
PUT /venues/{venueId}/audio/reactive/scenes/{sceneId} — putAudioReactiveSceneStore or replace a scene · scope content:write
If-None-Match: * creates. Replacing the active scene takes effect on the next frame.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
sceneId | path | yes | AudioReactive scene id. |
If-Match | header | Required to replace an existing resource (428 when missing, 412 when stale). To create with a client-chosen id send `If-None-Match: *` instead. | |
If-None-Match | header | `*` = create only (412 if the id exists). |
Request application/json: {"description":"PUT …/audio/reactive/scenes/{sceneId} body.","type":"object","allOf":[{"type":"object","properties":{"title":{"description":"Plain string (treat
{
"title": {
"en": "Vocal Aura"
},
"mappings": [
{
"id": "glow",
"mode": "continuous",
"source": {
"input": "vocal",
"metric": "rms"
},
"target": {
"kind": "osc",
"gateway": "resolume",
"address": "/composition/layers/2/video/opacity",
"type": "f"
}
}
]
}| Status | Description | Body |
|---|---|---|
| 200 | Replaced. | application/json {"description":"A scene is data: which metrics drive which targets. Mapping ids are unique within the scene.","type":"object","allOf":[{"type":"object","propert |
| 201 | Stored. | application/json {"description":"A scene is data: which metrics drive which targets. Mapping ids are unique within the scene.","type":"object","allOf":[{"type":"object","propert |
| 412 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 428 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
DELETE /venues/{venueId}/audio/reactive/scenes/{sceneId} — deleteAudioReactiveSceneRemove a scene · scope content:write
Refused (409) while the scene is active.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
sceneId | path | yes | AudioReactive scene id. |
If-Match | header | yes | Strong ETag of the representation being changed (428 when missing, 412 when stale). |
| Status | Description | Body |
|---|---|---|
| 204 | Done, no body. | |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 409 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 412 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 428 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /engines — listEnginesList engines · scope info:read
visual, anantasound, anantadigital (status, version, protocol, capabilities, metrics).
| Parameter | In | Required | Description |
|---|---|---|---|
limit | query | Page size (default 50, max 500). | |
cursor | query | Opaque cursor from the previous page's `nextCursor`. |
| Status | Description | Body |
|---|---|---|
| 200 | Page of engines. | application/json {"type":"object","required":["items","nextCursor"],"properties":{"items":{"type":"array","items":{"type":"object","required":["name","status"],"properties":{"na |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /engines/{name} — getEngineGet an engine · scope info:read
Status mirror; also pushed on engines/{name}.
| Parameter | In | Required | Description |
|---|---|---|---|
name | path | yes | Engine name: `visual`, `anantasound`, `anantadigital`, or `<kind>@<node>` on multi-node installations. |
| Status | Description | Body |
|---|---|---|
| 200 | The engine. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/engine.schema.json","$comment":"NativeMindNONC — |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
PUT /engines/visual/backend — setComputeBackendSwitch the visual compute / render backend · scope system:admin
Applied by restarting the render pipeline of freedome-engined (short blackout). 422 when the backend is not in backends.
Request application/json: {"type":"object","required":["backend"],"properties":{"backend":{"anyOf":[{"enum":["vulkan","metal","d3d12","opengl","software"]},{"type":"string","pattern":"^[
{
"backend": "software"
}| Status | Description | Body |
|---|---|---|
| 200 | Engine after the switch. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/engine.schema.json","$comment":"NativeMindNONC — |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 503 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /engines/{name}/restart — restartEngineRestart an engine · scope system:admin
The engine host process is restarted by its supervisor; playback resumes from the last state where the engine supports it. 202 + job.
| Parameter | In | Required | Description |
|---|---|---|---|
name | path | yes | Engine name: `visual`, `anantasound`, `anantadigital`, or `<kind>@<node>` on multi-node installations. |
Idempotency-Key | header | UUID; replays within 24 h return the original response, a different body with the same key → 409. |
| Status | Description | Body |
|---|---|---|
| 202 | Long action accepted; `Location` → /api/v1/jobs/{jobId}; body = the job (02e §3.1). | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/job.schema.json","$comment":"NativeMindNONC — fr |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 409 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /gateways — listGatewaysList gateways · scope gateways:manage
Inbound emulators (Screenberry, fulldome.pro / 360dome …), outbound drivers, converters with status.
| Parameter | In | Required | Description |
|---|---|---|---|
limit | query | Page size (default 50, max 500). | |
cursor | query | Opaque cursor from the previous page's `nextCursor`. |
| Status | Description | Body |
|---|---|---|
| 200 | Page of gateways. | application/json {"type":"object","required":["items","nextCursor"],"properties":{"items":{"type":"array","items":{"type":"object","required":["id","direction","protocol","enabl |
| 403 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /gateways/{gatewayId} — getGatewayGet a gateway · scope gateways:manage
Status, listeners, peers, redacted config.
| Parameter | In | Required | Description |
|---|---|---|---|
gatewayId | path | yes | Gateway id (e.g. `screenberry`, `dome360`, `osc-out-1`). |
| Status | Description | Body |
|---|---|---|
| 200 | The gateway. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/gateway.schema.json","$comment":"NativeMindNONC |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
PATCH /gateways/{gatewayId} — patchGatewayEnable / configure a gateway · scope gateways:manage
Merge-patch of enabled, config, allowCidrs; listeners restart.
| Parameter | In | Required | Description |
|---|---|---|---|
gatewayId | path | yes | Gateway id (e.g. `screenberry`, `dome360`, `osc-out-1`). |
If-Match | header | yes | Strong ETag of the representation being changed (428 when missing, 412 when stale). |
Request application/merge-patch+json: {"type":"object","minProperties":1,"properties":{"enabled":{"type":"boolean"},"config":{"type":"object","additionalProperties":true},"allowCidrs":{"type":"array
{
"enabled": false
}| Status | Description | Body |
|---|---|---|
| 200 | Updated gateway. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/gateway.schema.json","$comment":"NativeMindNONC |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 412 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 428 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /gateways/{gatewayId}/test — testGatewayConnectivity test of an outbound driver · scope gateways:manage
Replaces /api/vendor/test.
| Parameter | In | Required | Description |
|---|---|---|---|
gatewayId | path | yes | Gateway id (e.g. `screenberry`, `dome360`, `osc-out-1`). |
Idempotency-Key | header | UUID; replays within 24 h return the original response, a different body with the same key → 409. |
| Status | Description | Body |
|---|---|---|
| 200 | Result. | application/json {"type":"object","required":["gatewayId","ok"],"properties":{"gatewayId":{"description":"Document-scoped id (.dome displays[].id, assets[].id, playlist / cue id |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /integrations/osc/send — sendOscSend an OSC message to a configured target · scope gateways:manage
Only targets configured on the server (never arbitrary hosts); audited.
| Parameter | In | Required | Description |
|---|---|---|---|
Idempotency-Key | header | UUID; replays within 24 h return the original response, a different body with the same key → 409. |
Request application/json: {"description":"POST /integrations/osc/send: to a configured OSC target only (never an arbitrary host).","type":"object","required":["target","address"],"proper
{
"target": "lights-desk",
"address": "/cue/1/go",
"args": [
{
"type": "i",
"value": 1
}
]
}| Status | Description | Body |
|---|---|---|
| 204 | Done, no body. | |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /apps/{app}/payloads — publishAppPayloadPublish app content to the dome · scope apps:publish
kind scene | overlay | state; expires after ttlSec; event app.payload on apps/{app}.
| Parameter | In | Required | Description |
|---|---|---|---|
app | path | yes | Application id (reverse-DNS store id or slug), e.g. `net.nativemind.starveda`. |
Idempotency-Key | header | UUID; replays within 24 h return the original response, a different body with the same key → 409. |
Request application/json: {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/app-payload.schema.json","$comment":"NativeMindN
{
"kind": "overlay",
"data": {
"text": "Hello",
"colour": "#ffcc00"
},
"ttlSec": 60
}| Status | Description | Body |
|---|---|---|
| 201 | Published. | application/json {"description":"Response of publishAppPayload and the `data.resource` of event app.payload.","type":"object","required":["id","app","kind","expiresAt"],"propert |
| 413 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
DELETE /apps/{app}/payloads — clearAppPayloadsClear the app content · scope apps:publish
Removes every payload of this app (event app.cleared).
| Parameter | In | Required | Description |
|---|---|---|---|
app | path | yes | Application id (reverse-DNS store id or slug), e.g. `net.nativemind.starveda`. |
| Status | Description | Body |
|---|---|---|
| 204 | Done, no body. | |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /clients — listClientsList registered clients · scope system:read
Admin view of connected devices.
| Parameter | In | Required | Description |
|---|---|---|---|
limit | query | Page size (default 50, max 500). | |
cursor | query | Opaque cursor from the previous page's `nextCursor`. |
| Status | Description | Body |
|---|---|---|
| 200 | Page of clients. | application/json {"type":"object","required":["items","nextCursor"],"properties":{"items":{"type":"array","items":{"type":"object","required":["id","app","deviceName","capabilit |
| 403 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /clients — registerClientRegister this device · scope any
Any principal; the client then subscribes to clients/{clientId}/commands.
| Parameter | In | Required | Description |
|---|---|---|---|
Idempotency-Key | header | UUID; replays within 24 h return the original response, a different body with the same key → 409. |
Request application/json: {"type":"object","required":["app","deviceName"],"properties":{"app":{"type":"string","pattern":"^[A-Za-z0-9._-]{1,128}$"},"appVersion":{"type":"string","maxLen
{
"app": "net.nativemind.churyavzrosliy",
"deviceName": "Tablet 3",
"platform": "android",
"capabilities": [
"vibration",
"sensors.accelerometer"
]
}| Status | Description | Body |
|---|---|---|
| 201 | Registered. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/client.schema.json","$comment":"NativeMindNONC — |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
DELETE /clients/{clientId} — unregisterClientUnregister a device · scope any
The registering principal or system:read.
| Parameter | In | Required | Description |
|---|---|---|---|
clientId | path | yes | Registered client id (UUIDv7). |
| Status | Description | Body |
|---|---|---|
| 204 | Done, no body. | |
| 403 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /clients/{clientId}/telemetry — postClientTelemetryPost sensor samples · scope any
Batched (≤ 1000 samples); only the registering principal.
| Parameter | In | Required | Description |
|---|---|---|---|
clientId | path | yes | Registered client id (UUIDv7). |
Idempotency-Key | header | UUID; replays within 24 h return the original response, a different body with the same key → 409. |
Request application/json: {"description":"POST /clients/{clientId}/telemetry: batched sensor samples (replaces sendSensorData).","type":"object","required":["samples"],"properties":{"sam
{
"samples": [
{
"ts": "2026-10-19T12:00:00.000Z",
"sensor": "sensors.accelerometer",
"values": [
0.01,
9.81,
0.2
]
}
]
}| Status | Description | Body |
|---|---|---|
| 204 | Done, no body. | |
| 403 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 413 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /events — listEventsEvent history (resume after reconnect) · scope events:subscribe
Events with seq > sinceSeq on the given topic filters (wildcards +, #), oldest first; authorisation per concrete topic. resync: true when the gap is older than the buffer (default 10 000 events / 10 min).
| Parameter | In | Required | Description |
|---|---|---|---|
limit | query | Page size (default 50, max 500). | |
cursor | query | Opaque cursor from the previous page's `nextCursor`. | |
topics | query | yes | Comma-separated topic filters. |
sinceSeq | query | Last seq the client has seen. |
| Status | Description | Body |
|---|---|---|
| 200 | Page of events. | application/json {"description":"GET /events (history ring buffer, resume after reconnect): events with seq > sinceSeq on the requested topics. `resync: true` = the gap is older |
| 403 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /scenarios — listScenariosList installed scenarios · scope content:read
UC-SC1: id, version, title, params JSON Schema, capabilities, enabled.
| Parameter | In | Required | Description |
|---|---|---|---|
limit | query | Page size (default 50, max 500). | |
cursor | query | Opaque cursor from the previous page's `nextCursor`. |
| Status | Description | Body |
|---|---|---|
| 200 | Page of scenarios. | application/json {"type":"object","required":["items","nextCursor"],"properties":{"items":{"type":"array","items":{"type":"object","required":["id","version","api","title","enab |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /scenarios/{scenarioId} — getScenarioGet a scenario (with its params schema) · scope content:read
UC-SC1.
| Parameter | In | Required | Description |
|---|---|---|---|
scenarioId | path | yes | Scenario plugin id, e.g. `karmic_clusters`. |
| Status | Description | Body |
|---|---|---|
| 200 | The scenario. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/scenario.schema.json","$comment":"NativeMindNONC |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
PATCH /scenarios/{scenarioId} — patchScenarioEnable / disable a scenario plugin · scope system:admin
UC-SC5 (admin); disabling stops its running sessions.
| Parameter | In | Required | Description |
|---|---|---|---|
scenarioId | path | yes | Scenario plugin id, e.g. `karmic_clusters`. |
Request application/merge-patch+json: {"description":"PATCH /scenarios/{scenarioId} (admin, UC-SC5).","type":"object","required":["enabled"],"properties":{"enabled":{"type":"boolean"}},"additionalPr
{
"enabled": false
}| Status | Description | Body |
|---|---|---|
| 200 | Updated scenario. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/scenario.schema.json","$comment":"NativeMindNONC |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /venues/{venueId}/scenario-sessions — listScenarioSessionsList scenario sessions of the venue · scope playback:read
Running first, then recent.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
limit | query | Page size (default 50, max 500). | |
cursor | query | Opaque cursor from the previous page's `nextCursor`. |
| Status | Description | Body |
|---|---|---|
| 200 | Page of sessions. | application/json {"type":"object","required":["items","nextCursor"],"properties":{"items":{"type":"array","items":{"type":"object","required":["id","venueId","scenarioId","statu |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /venues/{venueId}/scenario-sessions — startScenarioSessionStart a scenario session · scope playback:control
UC-SC2: params validated against the scenario params schema; the session runs with the caller role (capabilities beyond it are refused, 403).
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
Idempotency-Key | header | UUID; replays within 24 h return the original response, a different body with the same key → 409. |
Request application/json: {"description":"POST /venues/{venueId}/scenario-sessions (UC-SC2); params are validated against the scenario's paramsSchema (422).","type":"object","required":[
{
"scenarioId": "karmic_clusters",
"params": {
"durationS": 600
}
}| Status | Description | Body |
|---|---|---|
| 201 | Started. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/scenario-session.schema.json","$comment":"Native |
| 403 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 409 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /venues/{venueId}/scenario-sessions/{sessionId} — getScenarioSessionGet a scenario session · scope playback:read
UC-SC4: status, progress, phase.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
sessionId | path | yes | Session id (UUIDv7). |
| Status | Description | Body |
|---|---|---|
| 200 | The session. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/scenario-session.schema.json","$comment":"Native |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /venues/{venueId}/scenario-sessions/{sessionId}/pause — pauseScenarioSessionPause a scenario session · scope playback:control
UC-SC3.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
sessionId | path | yes | Session id (UUIDv7). |
Idempotency-Key | header | UUID; replays within 24 h return the original response, a different body with the same key → 409. |
| Status | Description | Body |
|---|---|---|
| 200 | Session after the command. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/scenario-session.schema.json","$comment":"Native |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 409 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /venues/{venueId}/scenario-sessions/{sessionId}/resume — resumeScenarioSessionResume a scenario session · scope playback:control
UC-SC3.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
sessionId | path | yes | Session id (UUIDv7). |
Idempotency-Key | header | UUID; replays within 24 h return the original response, a different body with the same key → 409. |
| Status | Description | Body |
|---|---|---|
| 200 | Session after the command. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/scenario-session.schema.json","$comment":"Native |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 409 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /venues/{venueId}/scenario-sessions/{sessionId}/stop — stopScenarioSessionStop a scenario session · scope playback:control
UC-SC3: the plugin must finish within 5 s, then the session is stopped.
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
sessionId | path | yes | Session id (UUIDv7). |
Idempotency-Key | header | UUID; replays within 24 h return the original response, a different body with the same key → 409. |
| Status | Description | Body |
|---|---|---|
| 200 | Session after the command. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/scenario-session.schema.json","$comment":"Native |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 409 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /venues/{venueId}/scenario-sessions/{sessionId}/log — getScenarioSessionLogScenario session log · scope playback:read
UC-SC4: log lines (also pushed as scenarioSession.log).
| Parameter | In | Required | Description |
|---|---|---|---|
venueId | path | yes | Venue id or the alias `default`. |
sessionId | path | yes | Session id (UUIDv7). |
limit | query | Page size (default 50, max 500). | |
cursor | query | Opaque cursor from the previous page's `nextCursor`. |
| Status | Description | Body |
|---|---|---|
| 200 | Page of log lines. | application/json {"type":"object","required":["items","nextCursor"],"properties":{"items":{"type":"array","items":{"type":"object","required":["seq","ts","level","message"],"pro |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /devices — listDevicesList visual device agents · scope info:read
Discovered and paired devices with live state.
| Parameter | In | Required | Description |
|---|---|---|---|
limit | query | Page size (default 50, max 500). | |
cursor | query | Opaque cursor from the previous page's `nextCursor`. |
| Status | Description | Body |
|---|---|---|
| 200 | Page of devices. | application/json {"type":"object","required":["items","nextCursor"],"properties":{"items":{"type":"array","items":{"type":"object","required":["id","variant","address","paired", |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /devices/{deviceId} — getDeviceGet a visual device · scope info:read
Identity, binding, live state.
| Parameter | In | Required | Description |
|---|---|---|---|
deviceId | path | yes | Visual device agent id (`freedome.device.v1` device, e.g. a projector unit). |
| Status | Description | Body |
|---|---|---|
| 200 | The device. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/device.schema.json","$comment":"NativeMindNONC — |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /devices/{deviceId}/pairing — beginDevicePairingBegin pairing (device shows a code) · scope venues:write
The agent displays a short code; confirm it with confirmDevicePairing before expiresAt.
| Parameter | In | Required | Description |
|---|---|---|---|
deviceId | path | yes | Visual device agent id (`freedome.device.v1` device, e.g. a projector unit). |
Idempotency-Key | header | UUID; replays within 24 h return the original response, a different body with the same key → 409. |
| Status | Description | Body |
|---|---|---|
| 200 | Pairing started. | application/json {"description":"POST /devices/{deviceId}/pairing: the device shows a code (display / LED); the operator confirms it.","type":"object","required":["deviceId","ex |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 409 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 503 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /devices/{deviceId}/pairing/confirm — confirmDevicePairingConfirm pairing with the shown code · scope venues:write
Wrong code → 422; three failures cancel the pairing.
| Parameter | In | Required | Description |
|---|---|---|---|
deviceId | path | yes | Visual device agent id (`freedome.device.v1` device, e.g. a projector unit). |
Idempotency-Key | header | UUID; replays within 24 h return the original response, a different body with the same key → 409. |
Request application/json: {"type":"object","required":["code"],"properties":{"code":{"type":"string","pattern":"^[0-9A-Z]{4,8}$"}},"additionalProperties":false}
{
"code": "482913"
}| Status | Description | Body |
|---|---|---|
| 200 | Paired device. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/device.schema.json","$comment":"NativeMindNONC — |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 409 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /devices/{deviceId}/unpair — unpairDeviceUnpair a device · scope venues:write
Forgets the device credentials and its display binding.
| Parameter | In | Required | Description |
|---|---|---|---|
deviceId | path | yes | Visual device agent id (`freedome.device.v1` device, e.g. a projector unit). |
Idempotency-Key | header | UUID; replays within 24 h return the original response, a different body with the same key → 409. |
| Status | Description | Body |
|---|---|---|
| 204 | Done, no body. | |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
PUT /devices/{deviceId}/display — bindDeviceBind the device to a display · scope venues:write
displayId: null unbinds. Written into the venue (revision++).
| Parameter | In | Required | Description |
|---|---|---|---|
deviceId | path | yes | Visual device agent id (`freedome.device.v1` device, e.g. a projector unit). |
If-Match | header | yes | Strong ETag of the representation being changed (428 when missing, 412 when stale). |
Request application/json: {"type":"object","required":["displayId"],"properties":{"displayId":{"anyOf":[{"description":"Document-scoped id (.dome displays[].id, assets[].id, playlist / c
{
"displayId": "p1"
}| Status | Description | Body |
|---|---|---|
| 200 | Device after binding. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/device.schema.json","$comment":"NativeMindNONC — |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 409 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 412 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 422 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| 428 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /jobs — listJobsList jobs · scope any
The caller's own jobs; with system:read all jobs. Newest first; filter by kind / status.
| Parameter | In | Required | Description |
|---|---|---|---|
limit | query | Page size (default 50, max 500). | |
cursor | query | Opaque cursor from the previous page's `nextCursor`. | |
kind | query | Job kind filter. | |
status | query | Status filter. |
| Status | Description | Body |
|---|---|---|
| 200 | Page of jobs. | application/json {"type":"object","required":["items","nextCursor"],"properties":{"items":{"type":"array","items":{"type":"object","required":["id","kind","status","createdAt"], |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
GET /jobs/{jobId} — getJobJob state · scope any
Visible to the principal that started it, and to system:read.
| Parameter | In | Required | Description |
|---|---|---|---|
jobId | path | yes | Job id (UUIDv7). |
| Status | Description | Body |
|---|---|---|
| 200 | Job. | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/job.schema.json","$comment":"NativeMindNONC — fr |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
POST /jobs/{jobId}/cancel — cancelJobCancel a job · scope any
Requests cancellation; finished jobs are returned unchanged.
| Parameter | In | Required | Description |
|---|---|---|---|
jobId | path | yes | Job id (UUIDv7). |
Idempotency-Key | header | UUID; replays within 24 h return the original response, a different body with the same key → 409. |
| Status | Description | Body |
|---|---|---|
| 200 | Cancelled (or already finished). | application/json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/api/1.0/job.schema.json","$comment":"NativeMindNONC — fr |
| 404 | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
| default | Error (RFC 9457 problem details, 02e §3.3). | application/problem+json {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://freedome.nativemind.us/schemas/common/1.0/problem.schema.json","$comment":"NativeMindNO |
NativeMindNONC · commercial use → NativeMind sales · [email protected]