HTTP API
Connection
|
|
| Base URL |
http://<mac-ip>:<port>/api |
| Port |
Random per launch. Fixed ports: Session Manager → Advanced (default 5659) |
| Reads |
GET |
| Writes |
POST, JSON body |
| Responses |
JSON |
| Indices |
1-based (Track 1 = 1) |
Approval
The first request from a new IP shows up as pending in the WildTrax Session Manager and returns 202. Approve it, then enable Write to send commands.
curl http://192.168.1.42:5659/api/hello
curl -X POST http://192.168.1.42:5659/api/record/start
curl -X POST http://192.168.1.42:5659/api/track/mute -d '{"trackIndex":1,"value":true}'
Status codes
| Code |
Meaning |
200 |
OK. Writes return {"status":"ok"} |
202 |
Awaiting approval |
400 |
Invalid JSON |
402 |
Needs a higher WildTrax plan on the host: {"error":"tier_required","requiredTier":…} |
403 |
Approved without Write |
404 |
Unknown route or index |
405 |
Wrong method |
409 |
Blocked while recording |
429 |
Record/stop sent within 250 ms of the last one |
Reads
| Route |
Returns |
GET /api/hello |
{"app","version","status"} — status: pending_approval approved approved_readonly |
GET /api/record/state |
{"recording":bool} |
GET /api/session/state |
Full state snapshot |
GET /api/metadata |
{"metadata","nextMetadata"} |
GET /api/tracks |
{"tracks":[…]} |
GET /api/soundboard/{i} |
One pad |
GET /api/playlist/{i} |
One row |
GET /api/exportfiles/{i} |
One export file |
GET /api/soundreport/{i} |
One sound report entry |
GET /api/soundreport/csv?folder= |
{"folder","csv"} |
GET /api/matrix/{input\|output} |
{"which","rows","cols","rowLabels","colLabels","cells"} |
GET /api/session/clients/{i} |
One connected client |
Writes
Transport
| Route |
Body |
/api/record/start |
|
/api/record/stop |
|
/api/record/falsestart |
Asks for confirmation on the host |
/api/record/falsestart/confirmed |
Discards the take |
Tracks
| Route |
Body |
/api/track/arm |
{"trackIndex":1,"value":true} |
/api/track/mute |
{"trackIndex":1,"value":true} |
/api/track/monitor |
{"trackIndex":1,"value":true} |
/api/track/pan |
{"trackIndex":1,"pan":2} |
/api/track/name |
{"trackIndex":1,"name":"Boom"} |
/api/track/add |
|
/api/track/remove |
{"trackIndex":1} |
/api/track/count |
{"count":8} |
| Route |
Body |
/api/metadata/{project\|scene\|slate\|take\|roll\|note} |
{"value":"SC07"} |
/api/metadata/next/{project\|scene\|slate\|take\|roll} |
{"value":"SC08"} |
/api/metadata/next/reset |
|
/api/metadata/autoincrement/{slate\|take\|roll} |
{"value":true} |
/api/metadata/autoreset/{slate\|take\|roll} |
{"value":true} |
/api/metadata/marker/add |
|
/api/metadata/notebank/add |
{"note":"Plane overhead"} |
/api/metadata/notebank/remove |
{"index":1} |
/api/metadata/notebank/insert |
{"noteIndex":1} |
Config
| Route |
Body |
/api/config/preroll |
{"value":true} |
/api/config/preroll/full |
{"prerollEnabled":true,"prerollSize":3} |
/api/config/smoothness |
{"value":0.5} (0–1) |
/api/config/monitor |
{"value":true} |
/api/playback/volume |
{"value":80} (0–100) |
/api/matrix/cell |
{"matrix":"input","row":1,"col":1,"value":true} |
Soundboard
| Route |
Body |
/api/soundboard/play |
{"padIndex":1} |
/api/soundboard/stop |
{"padIndex":1} |
/api/soundboard/pad/add |
|
/api/soundboard/pad/remove |
{"padIndex":1} |
/api/soundboard/pad/move |
{"fromIndex":1,"toIndex":3} |
/api/soundboard/pad/title |
{"padIndex":1,"title":"FX"} |
/api/soundboard/pad/color |
{"padIndex":1,"color":"#ff0000"} |
/api/soundboard/pad/{fadein\|fadeout\|repeat\|solo} |
{"padIndex":1,"value":true} |
/api/soundboard/pad/triggermode |
{"padIndex":1,"triggerMode":1} |
/api/soundboard/pad/routingmode |
{"padIndex":1,"routingMode":0} |
/api/soundboard/pad/routing/cell |
{"padIndex":1,"srcChannel":1,"dstChannel":2,"value":1.0} |
/api/soundboard/pad/routing/init |
{"padIndex":1} |
Playlist
| Route |
Body |
/api/playlist/play |
|
/api/playlist/stop |
|
/api/playlist/loop |
{"value":true} |
/api/playlist/index |
{"index":2} |
/api/playlist/row/add |
|
/api/playlist/row/remove |
{"rowIndex":1} |
/api/playlist/row/move |
{"fromIndex":1,"toIndex":2} |
/api/playlist/row/title |
{"rowIndex":1,"title":"Cue"} |
/api/playlist/row/color |
{"rowIndex":1,"color":"#00ff00"} |
/api/playlist/row/routingmode |
{"rowIndex":1,"routingMode":0} |
/api/playlist/row/routing/cell |
{"rowIndex":1,"srcChannel":1,"dstChannel":2,"value":1.0} |
/api/playlist/row/routing/init |
{"rowIndex":1} |
Export files
| Route |
Body |
/api/exportfiles/add |
|
/api/exportfiles/remove |
{"fileIndex":1} |
/api/exportfiles/update |
{"fileIndex":1,"field":"name","value":"Mix"} — field: name folder fileFormat trackExportType selectAllTracks |
/api/exportfiles/track/toggle |
{"fileIndex":1,"trackIndex":3} |
/api/exportfiles/resolvednames |
{"value":true} |
Sound report
| Route |
Body |
/api/soundreport/autosave |
{"value":true} |
/api/soundreport/entry |
{"row":1,"field":"circled","value":true} — field: timecode circled note project scene slate take roll fps trackName (+ trackIndex) |
Values
| Field |
Values |
pan |
0 left · 1 right · 2 center |
triggerMode |
0 latched · 1 momentary |
routingMode |
0 auto · 1 stereo · 2 mono left · 3 mono right · 4 mono center · 5 custom |
Live meters and spectrum are only available over OSC.