Status: proposal. Endpoint shapes are proposals; transport, port and authentication are placeholders. The stub is published so developers and EDC’s engineers can react to something concrete. Download:
/developers/openapi.yaml.
Eight core endpoints
| Method | Path | Purpose |
|---|---|---|
| GET | /v1/devices |
Discover devices on the local network |
| GET | /v1/devices/{id} |
Identity, model, firmware, network |
| GET | /v1/devices/{id}/status |
Telemetry: transducer, thermal and amplifier faults; input levels |
| GET / PUT | /v1/devices/{id}/beams/{n} |
Beam 1–4 aim, shape, level, delay, source input (?apply=true) |
| PUT | /v1/devices/{id}/inputs/{n} |
Gain, mute, 8-band EQ, compressor (inputs 1–3) |
| GET | /v1/presets |
Coverage presets (device or whole array) |
| POST | /v1/presets/{id}/recall |
Recall on one device or an array |
| GET | /v1/events |
WebSocket upgrade — telemetry and state-change stream |
Beam schema (excerpt)
Beam:
type: object
properties:
enabled: { type: boolean }
pan_deg: { type: number, minimum: -60, maximum: 60 } # A&E spec: ±60°
tilt_deg: { type: number, minimum: -60, maximum: 60 }
h_width_deg: { type: number, minimum: 2, maximum: 120 } # datasheet says 1°; reconcile
v_width_deg: { type: number, minimum: 2, maximum: 120 }
h_skew_db_per_deg: { type: number }
v_skew_db_per_deg: { type: number }
level_db: { type: number }
delay_ms: { type: number }
input: { type: integer, minimum: 1, maximum: 3 }
Ranges mirror what EDC’s A&E specification and iOS guide already state: four beams, three inputs, eight EQ bands, ±60° pan and tilt, 2°–120° widths. Everything else is a placeholder.
Try it
The API will be served by the device simulator so every example on these pages can be run without hardware.