Pause or resume trading on every instrument with the given expiration
Operational kill-switch. When paused = true, the matching engine
rejects new limit and market orders for every instrument matching
expiration with the INSTRUMENT_PAUSED (1014) error code.
Existing resting orders are unaffected — owners can still cancel
them, and a subsequent paused = false call lifts the block.
Atomic in two phases: durable UPDATE first (with RETURNING id),
then mirror into the in-memory matching engine. The response
surfaces both counts plus any drift between the two layers
(engine_missing) so an operator can verify the change took.
Idempotent: re-invoking with the same paused value updates zero
rows the second time without raising an error.
Documentation Index
Fetch the complete documentation index at: https://docs.joyride.exchange/llms.txt
Use this file to discover all available pages before exploring further.
Authorizations
Admin token set via the ADMIN_TOKEN environment variable.
Body
Response
Pause/resume applied
1740816000
true
Number of rows updated in the instruments table.
Only rows whose paused value actually changed are
counted (idempotent SQL via IS DISTINCT FROM).
50
Number of in-memory engine instruments whose pause
flag was flipped this call. May be lower than
db_updated even in the happy path if the engine
was already at the target state for some
instruments (drift correction). A separate signal
from engine_missing.
50
Instrument ids that were updated in the database
but are NOT registered in the in-memory engine at
all (engine has no entry for them). A non-empty
list signals genuine DB-vs-engine membership
drift — likely a gateway restart in progress, or
a row inserted directly without going through
engine.create_expiration. The "engine knew about
it but was already at target" case is distinct
and shows up as engine_updated < db_updated
with an empty engine_missing.
[]