⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the response body
{"items":{"$ref":"#/components/schemas/PeristalticStatus"},"type":"array","title":"Response List Pumps Peristaltic Get"}
GET /peristaltic/{name}
Pump status
Description
Get detailed status for a single peristaltic pump.
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the response body
{"properties":{"name":{"type":"string","title":"Name"},"serial_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Serial Number"},"energized":{"type":"boolean","title":"Energized","default":false},"operation_state":{"type":"string","title":"Operation State","default":"Unknown"},"current_position":{"type":"integer","title":"Current Position","default":0},"current_velocity":{"type":"integer","title":"Current Velocity","default":0},"target_position":{"type":"integer","title":"Target Position","default":0},"vin_voltage":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Vin Voltage"},"errors":{"type":"string","title":"Errors","default":"(none)"},"step_mode":{"type":"integer","title":"Step Mode","default":16},"current_limit_ma":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Limit Ma"},"max_speed":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Speed"},"planning_mode":{"type":"string","title":"Planning Mode","default":"Off"},"ready":{"type":"boolean","title":"Ready","default":false},"flow_rate_ul_min":{"type":"number","title":"Flow Rate Ul Min","default":0.0}},"type":"object","required":["name"],"title":"PeristalticStatus","description":"Full status for a single peristaltic pump."}
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the response body
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the response body
Drives the peristaltic pump motor at a target velocity in microsteps per 10 kHz (firmware-native units). Positive values rotate in the pump's natural direction; negative reverses (subject to reverse flag in the YAML config).
The pump keeps spinning until POST /peristaltic/{name}/stop is called, POST /peristaltic/{name}/deenergize cuts power, or the safety layer trips an emergency stop.
Updates device_state.target_velocity + energized on success (Fork 1).
Input parameters
Parameter
In
Type
Default
Nullable
Description
name
path
string
No
Request body
{"velocity":0}
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the request body
{"properties":{"velocity":{"type":"integer","title":"Velocity","description":"Velocity in microsteps per 10,000 seconds (negative = reverse)"}},"type":"object","required":["velocity"],"title":"SpinRequest","description":"Request body for continuous spinning."}
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the response body
{"properties":{"success":{"type":"boolean","title":"Success"},"pump_name":{"type":"string","title":"Pump Name"},"message":{"type":"string","title":"Message","default":""},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["success","pump_name"],"title":"CommandResponse","description":"Generic response from a peristaltic pump command."}
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the response body
Halts a spinning pump. hold=true (default) keeps the motor energized and locked in place — useful when you want to resume motion shortly. hold=false de-energizes the motor, saving power but allowing manual rotation of the head.
Sets device_state.target_velocity = 0 on success (Fork 1).
Input parameters
Parameter
In
Type
Default
Nullable
Description
name
path
string
No
Request body
{"hold":true}
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the request body
{"properties":{"hold":{"type":"boolean","title":"Hold","description":"If True, hold position (energized). If False, de-energize (freewheel).","default":true}},"type":"object","title":"StopRequest","description":"Request body for stopping the pump."}
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the response body
{"properties":{"success":{"type":"boolean","title":"Success"},"pump_name":{"type":"string","title":"Pump Name"},"message":{"type":"string","title":"Message","default":""},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["success","pump_name"],"title":"CommandResponse","description":"Generic response from a peristaltic pump command."}
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the response body
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the request body
{"properties":{"steps":{"type":"integer","title":"Steps","description":"Number of microsteps (positive = forward, negative = reverse)"},"relative":{"type":"boolean","title":"Relative","description":"If True, move relative to current position. If False, absolute.","default":true},"block":{"type":"boolean","title":"Block","description":"Wait for motion to complete before returning","default":true}},"type":"object","required":["steps"],"title":"MoveRequest","description":"Request body for position-based moves."}
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the response body
{"properties":{"success":{"type":"boolean","title":"Success"},"pump_name":{"type":"string","title":"Pump Name"},"message":{"type":"string","title":"Message","default":""},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["success","pump_name"],"title":"CommandResponse","description":"Generic response from a peristaltic pump command."}
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the response body
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the request body
{"properties":{"volume_ml":{"type":"number","exclusiveMinimum":0.0,"title":"Volume Ml","description":"Volume to pump in mL"},"direction":{"$ref":"#/components/schemas/FlowDirection","description":"Flow direction","default":"forward"},"block":{"type":"boolean","title":"Block","description":"Wait for motion to complete before returning","default":true}},"type":"object","required":["volume_ml"],"title":"DoseRequest","description":"Request body for volume dosing."}
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the response body
{"properties":{"success":{"type":"boolean","title":"Success"},"pump_name":{"type":"string","title":"Pump Name"},"message":{"type":"string","title":"Message","default":""},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["success","pump_name"],"title":"CommandResponse","description":"Generic response from a peristaltic pump command."}
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the response body
Run pump for a duration (prime/purge tubing lines).
Input parameters
Parameter
In
Type
Default
Nullable
Description
name
path
string
No
Request body
{"seconds":10.12,"velocity":0}
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the request body
{"properties":{"seconds":{"type":"number","maximum":300.0,"exclusiveMinimum":0.0,"title":"Seconds","description":"Duration to run in seconds (max 5 minutes)"},"velocity":{"type":"integer","title":"Velocity","description":"Velocity in microsteps per 10,000 seconds"}},"type":"object","required":["seconds","velocity"],"title":"PrimeRequest","description":"Request body for priming (run for N seconds at given velocity)."}
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the response body
{"properties":{"success":{"type":"boolean","title":"Success"},"pump_name":{"type":"string","title":"Pump Name"},"message":{"type":"string","title":"Message","default":""},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["success","pump_name"],"title":"CommandResponse","description":"Generic response from a peristaltic pump command."}
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the response body
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the request body
{"properties":{"step_mode":{"$ref":"#/components/schemas/StepMode","description":"Microstepping divisor"}},"type":"object","required":["step_mode"],"title":"StepModeRequest","description":"Request body for setting the microstepping mode."}
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the response body
{"properties":{"success":{"type":"boolean","title":"Success"},"pump_name":{"type":"string","title":"Pump Name"},"message":{"type":"string","title":"Message","default":""},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["success","pump_name"],"title":"CommandResponse","description":"Generic response from a peristaltic pump command."}
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the response body
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the request body
{"properties":{"current_limit_ma":{"type":"integer","maximum":4000.0,"minimum":1.0,"title":"Current Limit Ma","description":"Current limit in mA (Tic 36v4 max: 4000)"}},"type":"object","required":["current_limit_ma"],"title":"CurrentLimitRequest","description":"Request body for setting the motor current limit."}
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the response body
{"properties":{"success":{"type":"boolean","title":"Success"},"pump_name":{"type":"string","title":"Pump Name"},"message":{"type":"string","title":"Message","default":""},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["success","pump_name"],"title":"CommandResponse","description":"Generic response from a peristaltic pump command."}
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the response body
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the request body
{"properties":{"max_speed":{"anyOf":[{"type":"integer","maximum":500000000.0,"minimum":0.0},{"type":"null"}],"title":"Max Speed","description":"Maximum speed in microsteps per 10,000 seconds"},"starting_speed":{"anyOf":[{"type":"integer","maximum":500000000.0,"minimum":0.0},{"type":"null"}],"title":"Starting Speed","description":"Starting speed in microsteps per 10,000 seconds"},"max_accel":{"anyOf":[{"type":"integer","maximum":2147483647.0,"minimum":100.0},{"type":"null"}],"title":"Max Accel","description":"Maximum acceleration in microsteps/s per 100 s"},"max_decel":{"anyOf":[{"type":"integer","maximum":2147483647.0,"minimum":100.0},{"type":"null"}],"title":"Max Decel","description":"Maximum deceleration in microsteps/s per 100 s"}},"type":"object","title":"SpeedConfigRequest","description":"Request body for updating speed/acceleration settings."}
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the response body
{"properties":{"success":{"type":"boolean","title":"Success"},"pump_name":{"type":"string","title":"Pump Name"},"message":{"type":"string","title":"Message","default":""},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["success","pump_name"],"title":"CommandResponse","description":"Generic response from a peristaltic pump command."}
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the response body
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the response body
{"properties":{"success":{"type":"boolean","title":"Success"},"pump_name":{"type":"string","title":"Pump Name"},"message":{"type":"string","title":"Message","default":""},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["success","pump_name"],"title":"CommandResponse","description":"Generic response from a peristaltic pump command."}
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the response body
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the response body
{"properties":{"success":{"type":"boolean","title":"Success"},"pump_name":{"type":"string","title":"Pump Name"},"message":{"type":"string","title":"Message","default":""},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["success","pump_name"],"title":"CommandResponse","description":"Generic response from a peristaltic pump command."}
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the response body
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the response body
{"properties":{"success":{"type":"boolean","title":"Success"},"pump_name":{"type":"string","title":"Pump Name"},"message":{"type":"string","title":"Message","default":""},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["success","pump_name"],"title":"CommandResponse","description":"Generic response from a peristaltic pump command."}
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the response body
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the response body
{"properties":{"success":{"type":"boolean","title":"Success"},"pump_name":{"type":"string","title":"Pump Name"},"message":{"type":"string","title":"Message","default":""},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["success","pump_name"],"title":"CommandResponse","description":"Generic response from a peristaltic pump command."}
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the response body
⚠️This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.Schema of the response body
{"items":{"$ref":"#/components/schemas/habitat__models__peristaltic__CommandResponse"},"type":"array","title":"Response Stop All Peristaltic Stop All Post"}
Schemas
AbsoluteMoveRequest
Name
Type
Description
position_increments
Absolute position in increments
position_ul
Absolute position in microliters
top_speed_ul_per_s
Optional top plunger speed in µL/s to apply before the move. When omitted, the firmware's previously-set speed is used.
Atomic parameters keyed by the names declared in the manifest.
provenance
AtomicManifest
Name
Type
Description
authored_by
string
belongs_to_routines
Array<string>
blocking
description
string
device_kind
string
emits_metrics
Array<string>
Advisory list of metric names this atomic is expected to emit. Not populated by any atomic today and not enforced or cross-checked against the telemetry layer -- agent-read-only metadata, not a live emission guarantee.
estimated_fluid_volume_ul
estimated_wear
string
Advisory relative wear estimate. Not derived from any measurement and not read by the runtime -- agent-read-only metadata for planning, not a calibrated cost model.
Advisory pointer to the atomic that would undo this one. Not populated by any atomic today and not enforced or invoked by the runtime -- agent-read-only metadata, not a guarantee a reverse operation exists or is registered.
reversible
boolean
side_effects
Array<string>
summary
string
tier
string
typical_predecessors
Array<string>
typical_successors
Array<string>
validated_on_hardware
Array<string>
version
string
CreateEventRequest
Name
Type
Description
action
string
Action type (e.g. 'feed', 'wash')
color
string
duration_min
number
notes
string
parameters
sample_id
string
Target sample ID
series_id
start_time
string
Scheduled start (ISO 8601). Stored as aware UTC: a naive timestamp is interpreted as host-local time and converted; the response echoes the canonical +00:00 string.
Optional one-shot post-init plunger gap in increments. If provided, ``set_init_gap`` is called BEFORE the Z command on this initialization only. ``None`` means use the previously-configured gap (firmware default ~1600 if never set). DANGER: see ``POST /pumps/{addr}/init-gap`` for hazard details. This path requires ``gap_increments >= 100`` (the safety floor) — there is no override field on this endpoint. Persisting a sub-floor value requires human confirmation via the HITL-gated atomics/job path (``POST /atomics/centris.initialization.set_init_gap`` async + ``POST /jobs/{id}/confirm``); do that first, then initialize without ``init_gap_increments``.
input_port
integer
Distribution-valve input port for homing. Use ``0`` (or omit) for auto-selection from the pump YAML ``port_map``: first waste role, else first port not listed in the map, else port 1. JSON may use the field name ``init_port`` as an alias.
output_port
integer
Init output port (0=default)
speed_ul_per_s
Initialization speed as a volumetric rate in µL/s. None = firmware default homing speed. The driver snaps the value to the nearest firmware-supported discrete rate internally.
ABSOLUTE directory on this host where `habitat.action` records are being written — the input the OCS rig-runner reads for the fluidics ledger. Absolute because the consumer is a DIFFERENT PROCESS: a relative path would be resolved against its working directory, not habitat's, silently naming a directory that does not exist. Null means no action handler is installed (this device writes no action records).
device_name
string
Unique physical unit identifier, e.g. 'MistyForest'.
hostname
string
OS hostname of the device.
product_line
string
Product-line string, e.g. 'Habitat'.
started_at
string
UTC ISO-8601 timestamp when the process started.
uptime_s
number
Seconds since the process started.
version
string
Application semantic version.
SystemStatus
Name
Type
Description
active_jobs
integer
Count of jobs in the RUNNING state.
device_name
string
Unique physical unit identifier.
drivers_initialized
boolean
True once all drivers have connected and are ready for commands.
emergency_stop
boolean
True if an emergency stop is currently active.
kinds
Device-kind name → list of per-kind summary entries.
queued_jobs
integer
Count of jobs in the QUEUED state.
scheduled_events_pending
integer
Count of pending scheduled events.
TestRunRoutineRequest
Name
Type
Description
params
Routine parameters. Merged on top of the routine's manifest defaults before the executor walks the steps.
TimezoneResponse
Name
Type
Description
timezone
string
Display-timezone label — 'UTC', 'local', an IANA name like 'America/Los_Angeles', or a fixed offset like '+06:00'.
ValidateProtocolRequest
Name
Type
Description
yaml_text
string
Raw YAML text of the protocol manifest to validate.
ValidateRoutineRequest
Name
Type
Description
yaml_text
string
Raw YAML text of the routine manifest to validate.