POST /v1/workloads — and the workload’s class decides how it executes:
parallelism.class | Runs as |
|---|---|
single (default) | one satellite (the CAE places it) |
data-parallel | sharded across satellites, recombined on the ground |
spatial | each satellite processes its footprint of an area-of-interest |
federated | a global model trained from on-board data (only deltas leave orbit) |
model-parallel | a pipeline split across satellites — activations flow stage → stage |
split-learning | a head on the data-owning satellite, the heavy tail offloaded |
Base URL:
https://api.rotastellar.com/v1 · Auth: Authorization: Bearer rs_...Lifecycle
preview (optional) → submit → poll GET /{id} → inspect stages / artifacts → cancel (any time).
Preview — the plan
POST /v1/workloads/preview returns the CAE’s verdict — feasibility, the model cut/partition, whether it’s ISL-bound — and a cost estimate, without running anything (read-only; no quota, no billing). It’s the “plan” to submit’s “apply”.
distributed-training is ISL-bound (gradient AllReduce over sparse inter-satellite links), so it is preview-only — preview it to see the honest verdict; it is not executable.
Submit — run
POST /v1/workloads takes the same body and executes it. Returns the id + a status_url.
model-parallel / split-learning) runs as a pipeline across the constellation — the CAE places each stage on a satellite, and the stages run in sequence as a coordinated pipeline.
Track status
PollGET /v1/workloads/{id} and read phase: submitted → scheduling → dispatching → awaiting_report → done (or failed / timed_out / canceled). workflow_status is the coarse pill (RUNNING / COMPLETED / FAILED / …). The response also carries placement, the structured outcome, the result manifest, and cost once billable.
Stages — per-satellite execution
GET /v1/workloads/{id}/stages — for a frontier / scatter-gather workload, which satellite ran each stage and its status.
Results & cancel
GET /v1/workloads/{id}/artifacts— the result manifest (the outputs + how to fetch each: custodiedcontentIdor externaluri).POST /v1/workloads/{id}/cancel— stop a queued or running workload; its queued / in-flight stages are dropped.

