v1
public

Create Public Simulation

Run a simulation with no account, and return its token, link and result.

Synchronous: the Fast propeller model answers in milliseconds, so there is no job to poll and no status to render. The response is {token, url, public_simulation}, where public_simulation is the same payload GET /v1/public/share/{token} returns for a saved run.

Refusals a caller can act on: 400 for an unknown component, 403 for a Pro-only feature, 422 for an over-bound sweep or an unrunnable propeller, 429 with Retry-After for too many runs from one address, and 503 public_simulate_busy with Retry-After when every free solver slot is taken.

post/v1/public/simulate

Request

  • Base URL: https://thrustlab.com
  • URL: https://thrustlab.com/v1/public/simulate
  • Auth: none required

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'

Always 'run'. Draft and queue persist against an account, which an anonymous run does not have.

namestring nullable
project_idunknown
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

object'public_run'
tokenstring required

Opaque run token. Claim it with POST /v1/runs/{token}/claim to file the run in an account.

urlstring required

Shareable path for the run (/s/<token>).

Changes

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