Run a protocol from Python
The fastest way to get a workflow on real hardware. Authenticate a tenant, target a device, send a method.
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.