VDJ REST API plugin

VirtualDJ, over HTTP, on localhost:8082

Drop the plugin in VirtualDJ’s plugins folder and it starts a small HTTP server when VDJ loads. Any app on the same machine can then read what is playing — title, artist, BPM, position, live audio levels — and control playback.

It was written so SceneRig could see the beat. It turned out to be the most useful thing in the toolbox. Works on macOS and Windows. No Pro licence required.

Capabilities

Everything the decks know, as JSON

The API is deliberately boring: plain HTTP, plain JSON, CORS enabled so a browser dashboard can talk to it without a proxy.

Per-deck status

Title, artist, genre, file path, BPM, position, elapsed and remaining, volume, and the first-beat offset.

Live audio levels

RMS and peak, captured from VirtualDJ’s DSP callback. This is the feed a visualiser actually needs.

Playback control

Play, pause, stop, load, unload.

Parameters

Volume and pitch, in VirtualDJ’s native pitch percentage, clamped to the pitch range you have configured.

Search without disturbing the DJ

Query the local library or an online catalogue (Digitrax, Deezer, Beatport) without changing what the DJ is browsing on screen.

A way out of the box

/api/command and /api/query pass raw VDJScript through, so anything without a dedicated endpoint is still reachable.

Quick start

If VirtualDJ is running, this works right now

# Health check
curl http://localhost:8082/api/ping

# Full status — both decks, crossfader, master volume
curl http://localhost:8082/api/status

# Play deck 1
curl -X POST http://localhost:8082/api/play

# Search Digitrax without touching the DJ's browser view
curl -X POST http://localhost:8082/api/search \
  -H "Content-Type: application/json" \
  -d '{"query":"sports car","provider":"Digitrax"}'

/api/ping answers {"pong":true}. If it does not, VirtualDJ has not loaded the plugin — restart VDJ and check the folder in the table below.

In use

Two products lean on this one file

SceneRig polls /api/status twenty times a second and derives its own beat phase from BPM, song position, and the first-beat offset — then interpolates every frame, so the lights move smoothly between polls instead of stepping.

KaraokeFlow uses the same plugin in its VirtualDJ playback mode: load the next singer’s track into a deck with their name attached, apply the key change they requested, and control the fades from the dashboard.

Beyond our own two apps, people use this kind of endpoint for OBS overlays, home automation, and custom controllers. If VirtualDJ can do it, VDJScript can express it, and this plugin can carry it.

Install

Copy one file into one folder

  1. Get the build

    vdj_rest_api.bundle.zip on macOS, vdj_rest_api.dll on Windows.

  2. Put it in VirtualDJ’s plugin folder

    Use the folder for your platform below, and create it if it is not there. On macOS, unzip first and drag the .bundle in.

  3. Start or restart VirtualDJ

    The plugin loads on its own.

  4. Check it answered

    Visit http://localhost:8082/api/ping. You should see {"pong":true}.

VirtualDJ plugin folder by platform
Platform Folder
macOS (Apple Silicon) ~/Library/Application Support/VirtualDJ/PluginsMacArm/
macOS (Intel) ~/Library/Application Support/VirtualDJ/Plugins64/AutoStart/
Windows %USERPROFILE%\Documents\VirtualDJ\Plugins64\AutoStart\

Changing the port

The default is 8082. To move it, open VirtualDJ → Settings → Plugins, find “REST API”, and drag the Port slider. Restart VirtualDJ for it to take effect.

Fix

Nothing at /api/ping? VirtualDJ has not loaded the plugin. Confirm the file is in the folder for your platform above, then restart VirtualDJ.

Fix

Connection refused on 8082? Something else is using the port, or the port was changed in Settings → Plugins. Check the slider value and try that port.

Small print

What’s under it

Plugin source is © Gobo Studios. The VirtualDJ SDK headers are © Atomix Productions. The HTTP server is cpp-httplib, a single-header C++ library. The plugin runs entirely on your machine and does not phone home.

Get the build

Tell us what you’re wiring it to

There is no public download link yet — builds go out by hand, and KaraokeFlow’s VirtualDJ mode ships with one. Send a note saying what platform you are on and what you are connecting to VirtualDJ, and we will send the current build back.