Skip to content

Developer Docs

Answers come from these docs, with links to the pages used.

Revolution exposes four programmable surfaces. Whichever language or framework you reach for, you can drive a run end-to-end — from configuring a system to streaming live events.

Pick the surface that matches what you’re building. Each section has a quickstart at the top and a full reference below.

Run a protocol from Python

The fastest way to get a workflow on real hardware. Authenticate a tenant, target a device, send a method.

Embed a Revolution view

Use @revolution/revo-ui to render schedules, events, and storage in your own React app — same components Revolution uses internally.

Build a plugin

Add a custom page to Revolution that your scientists can launch from the sidebar. Tenant-scoped, no rebuild of Revolution itself.

Stream live events

Subscribe to SignalR / MQTT topics for run progress, device state changes, and storage occupancy in real time.

Across every code sample in this section:

  • $TOKEN — a Revolution OAuth bearer token. See Authentication for how to mint one.
  • tenant_id — a UUID identifying your tenant. Visible in the Revolution URL bar (/app/{version}/{tenant_id}/...).
  • api.revolution.io — the production REST host. Use api.staging.revolution.io for staging.

If you see a curl example, the equivalent in Python and JavaScript is one tab away — the language picker syncs across every page.