Custom Workloads
Instead of using a preset, you can define arbitrary step DAGs withcustom_job in your plan request. The planner handles placement, transfer insertion, and scheduling the same way it does for presets.
Request Structure
Sendcustom_job instead of preset_id in POST /v1/plan:
Step Schema
Each step in thesteps array:
string
required
Unique identifier within the job. Used in
depends_on references.string
required
Human-readable step name.
string
required
Where the step runs:
onboard, ground, or either. When set to either, the planner decides based on data reduction ratio and transfer cost.number
required
Execution duration in seconds. Must be positive.
string[]
required
IDs of prerequisite steps. Use
[] for steps with no dependencies.object
required
Resource requirements:
power_w— Power consumption in wattscompute— Fraction of compute capacity (0.0–1.0)thermal_w— Thermal dissipation in wattsmemory_mb— Memory required in MBstorage_mb— Storage required in MB
number
default:"0"
Input data size in MB.
number
default:"0"
Output data size in MB.
number
Output/input ratio.
0.1 means 10:1 reduction. Set to null for data-generating steps.number
default:"0"
Checkpoint frequency in seconds.
0 disables checkpointing.string
default:"retry_immediate"
fail, retry_next_window, or retry_immediate.number
default:"1"
Maximum retry attempts.
string
default:"none"
none, aes128, or aes256. Adds data expansion overhead.string
default:"none"
none, crc32, or sha256.object
default:"null"
Fault tolerance. If set, provide
min_data_fraction (0.0–1.0) and reduced_duration_s.Security Overrides
Optionalsecurity object at the job level:
restricted classification, authenticated uplink, key rotation every 24 orbits.
Policy
Optionalpolicy object:
Validation Rules
- Every step must have a unique
id depends_onreferences must point to existing step IDs- No circular dependencies (validated via DFS)
locationmust beonboard,ground, oreitherduration_smust be positiverequiresmust include all 5 resource fields
400 with a validation_error describing the issue.
Example
A 2-step pipeline: capture sensor data on-board, then process on the ground.The planner automatically inserts transfer steps (downlink/uplink) at space-ground boundaries. Your 2-step job may produce a plan with 3+ segments.

