v1
simulations

Create Simulation V1

post/v1/simulations

Request

  • Base URL: https://thrustlab.com
  • URL: https://thrustlab.com/v1/simulations
  • Auth: HTTP bearer

Headers

Idempotency-Keystring required

Unique key (max 255 chars) making this POST safe to retry. Required on all v1 write requests; replays return the cached response.

Request body

airspeed_m_snumber required
ambient_temp_cnumber
battery_charge_pctnumber
battery_component_idstring nullable
battery_esc_wire_resistance_mohmnumber
cooling_source'static' | 'airspeed' | 'prop_slipstream' | 'forced_air' nullable
density_kg_m3number required
flight_durationnumber nullable

Flight time (seconds) for the time-bounded steady-state thermal solve. 0 ≤ x ≤ 86400 (24 h). null disables time-bounding (infinite-hover baseline)..

flight_regime'static_bench' | 'prop_wash_mild' | 'prop_wash_strong' | 'forced_air'

DEPRECATED — use cooling_source instead. Still accepted: when cooling_source is omitted, this value is mapped to the equivalent battery cooling source (prop_wash_mild and prop_wash_strong → prop_slipstream, forced_air → forced_air, static_bench → static). cooling_source wins whenever both are supplied.

forced_air_velocity_m_snumber nullable

Fixed cooling velocity (m/s) for cooling_source='forced_air' (fan/duct). Ignored for the other cooling sources; defaults to 10 m/s when omitted..

inflow_mode'ground' | 'components'
launch_intent'run' | 'queue' | 'draft'

Launch intent. 'run' dispatches now; 'queue' reserves a credit slot but defers dispatch; 'draft' persists with no credit reservation and no dispatch..

namestring nullable
project_idstring nullable

Project to file this run in (raw UUID or proj_<ksuid>). Omit to use the account's default project, which is created if it does not exist.

propeller_model'fast' | 'full'

Propeller model for every rotor in this simulation. 'full' runs from the measured blade geometry of a database propeller; 'fast' runs from the printed label (diameter, pitch, blade count, family, camber) and accepts a propeller_label in place of a propeller_component_id.

vertical_speed_m_snumber

Response

Successful Response

analysis_typestring required
battery_component_idstring required
battery_topologyobject nullable
completed_atstring nullable

When the run reached a terminal state — completed, failed or canceled. Null until then.

created_atstring nullable

When the run was submitted.

credits_costinteger required
dispatched_atstring nullable

When the run was handed to the worker queue. Null while it is parked and has never been dispatched. NOT the start of execution: a run submitted with launch_intent=run is dispatched at submit, so this can equal created_at while the run waits for a slot.

display_labelsobject nullable
errorobject nullable required
idstring required
input_snapshotobject nullable
is_starredboolean required
namestring nullable required
object'simulation' required
plot_config_jsonobject[] nullable required
progressnumber nullable required
project_idstring required
project_namestring nullable
propeller_modelstring
resultobject nullable required
snapshot_versioninteger
solver_enginestring
started_atstring nullable

When a worker claimed the run and the solve began. Null until then. started_at - dispatched_at is the time spent waiting for a slot; completed_at - started_at is the solve itself.

status'draft' | 'queued' | 'running' | 'completed' | 'failed' | 'canceled' required

Changes

No recorded changes to this operation across all 1 revision of this API.