Reference

HTTP API

The remote script inside Ableton runs a tiny localhost HTTP server. It's how the keyboard detector triggers actions — and it's open for you to call from a Stream Deck, a script, or any external gear. Think of it as an OSC-like control surface over plain HTTP.

Base URL

http://127.0.0.1:9000

Visit http://127.0.0.1:9000/ in a browser for a live index of every registered endpoint, its parameters, and its description.

Responses

Handler returnsResponse
An object / listapplication/json
Texttext/html
Nothing200 OK, no body (fire-and-forget)

Error codes:

CodeMeaning
400Missing or invalid query parameter
404No such route
500The handler raised an error
504The action didn't complete in time on Live's thread

Action endpoints

These drive Live directly. They're the same calls a keyboard shortcut makes under the hood.

Load a device

GET /device/load?name=<str>

Loads a device (instrument or audio effect) by name onto the selected track.

GET /device/load?name=EQ%20Eight

Select a track

GET /track/select?name=<str>

Selects a track by name. Pass name=master to select the master track.

Stop following the playhead

GET /song/toggle_follow

Stops Live from following the playhead in the arrangement view.

Some routes exist but aren't yet exposed in the shortcut catalog the web UI shows. They're still callable directly over HTTP. The set of routes grows over time — the live index at / is always the source of truth.

Shortcut-management endpoints

The web UI is built on these — you can use them to manage bindings programmatically too.

EndpointReturns
GET /shortcutsThe HTML configuration UI
GET /actionsJSON list of discoverable actions and their parameters
GET /shortcuts/listJSON list of the current bindings
GET /shortcuts/add?combo=&action=&params=Adds or replaces a binding

Adding a binding

GET /shortcuts/add?combo=<str>&action=<str>&params=<json>
# Bind Ctrl+Alt+E to load EQ Eight
GET /shortcuts/add?combo=ctrl%2Balt%2Be&action=load_device&params=%7B%22name%22%3A%22EQ%20Eight%22%7D

The unencoded params there is {"name":"EQ Eight"}.

Example: a Stream Deck button

Point any "open URL" / "website" button at an action endpoint:

http://127.0.0.1:9000/device/load?name=Utility

Pressing the button loads a Utility device onto the selected track — no keyboard shortcut required.