Submission parameters

Choose the environment and command for your code, then set any GPU, memory, budget, and recovery requirements. Client.run() and AsyncClient.run() accept the same named arguments. The table covers every explicit submission argument and links to its accepted values, defaults, and examples.

The SDK translates these arguments into an HTTP request. Most omitted arguments are not sent, except the default image and continuity policy.

Python argument HTTP location Reference
image, command source.image, source.command Container image and command
source_asset_id, inputs, outputs Source asset and stage file declarations Files
framework framework Framework execution
gpu requirements.gpu "A100", "H100", "H200", "B200", "A10", "A10G", "L4", "L40", "L40S", "T4", "V100", "RTX A6000", "RTX 3090", "RTX 4090", "RTX 5090". Omit to let Nodus choose. GPU models and examples
optimization requirements.optimization "automatic", "lowest_cost", "lower_cost", "balanced", "faster", "fastest". Compatibility only, omitted by default. No preference effect on new runs. Optimization
model, compute_class, peak_memory_gb requirements.* Resources
requirements requirements Resources
budget, finish_by outcome.max_cost_usd, outcome.complete_by Budget and deadline
continuity continuity Recovery
connections, sweep_id Same top-level keys Live connections
data_regions, policy policy.data_regions, policy Policy
stages stages Stages
idempotency_key Idempotency-Key header Safe retries
extra Additional top-level fields Extensions

Do not pass env, interrupt_tolerance, or expected_runtime_hours: they are explicitly unsupported. Unknown Python keywords raise TypeError before submission. Use the dictionary fields listed in these references. Each page defines their accepted values and defaults.

Extensions and validation

extra: dict adds top-level request fields that the deployed server models but this SDK version does not expose. It defaults to no additions and has no CLI flag. It cannot replace a key already built in the request, including requirements, outcome, or continuity. Collisions raise TypeError before network access. Prefer named arguments and documented typed fields.

A non-colliding name is not proof that a server supports it. Unknown server fields may be ignored on older deployments. Verify support in the deployed contract before using extensions. Do not send secrets in arbitrary metadata.

expected_runtime_hours is also rejected inside requirements and stage dictionaries. Stage inputs have a separate supported shape. See stages. Python typos raise TypeError, distinct from a server nodus.ValidationError.