Stellar ControlMission control · by Stellar Systems v0.1.0

API Reference

Passes

Passes of the targets over the ground stations, pushed by the feeders.

GET/v1/passes

List passes#

Passes

The passes not over yet, every pass with all, each with the gateway the reconciler checked for it before the AOS.

Query parameters

target

string

Only the passes of this target.

all

boolean

Passes over too.

Responses

200Passes, by AOS.application/json
passesrequired

array of PassView

Passes, by AOS.

PassView · 2 fields
passrequired

Pass

Pass.

Pass · 15 fields
aosrequired

string

Acquisition of signal (UTC).

contributions

array of Pass

Contribution of each source to a merged pass, set by the MCS.

See Pass

feeder

string

Feeder that wrote it, set by the MCS.

idrequired

string

Stable identifier, given by the feeder.

losrequired

string

Loss of signal (UTC).

max_elevationrequired

string

Maximum elevation (47.3 deg).

protocol

string

Protocol (ccsds, csp, dvb-s2…).

rates

one of PassRates | null

Expected rates.

sourcerequired

PassSource

Source.

stationrequired

string

Ground station.

statusrequired

PassStatus

Status.

targetrequired

string

Target.

transceiver

string

On-board transceiver (sband, xband…).

updated_at

string

Last update, set by the MCS.

uplink

boolean

Whether telecommands can be sent; a receive-only pass refuses any send.

gateway

one of PassGateway | null

503The MCS bus (NATS) is unavailable: api::unavailable.application/json
errorsrequired

array of ErrorItem

Every error found.

ErrorItem · 3 fields
coderequired

string

Stable code.

messagerequired

string

Message for the operator.

help

string

Suggested fix.

Request

curl "http://localhost:8080/v1/passes"

Response

{
  "passes": [
    {
      "pass": {
        "aos": "string",
        "contributions": [
          {}
        ],
        "feeder": "string",
        "id": "string",
        "los": "string",
        "max_elevation": "string",
        "protocol": "string",
        "rates": null,
        "source": null,
        "station": "string",
        "status": null,
        "target": "string",
        "transceiver": "string",
        "updated_at": "string",
        "uplink": true
      },
      "gateway": {
        "checked_at": "string",
        "gateway": "string",
        "reason": "string"
      }
    }
  ]
}
POST/v1/passes

Upsert pass#

Write a pass (feeder)

A pass from a feeder (passes.feeders), new or refined, merged with the pass of the other source: matched by identifier, by the identifier of a contribution, then by target, station and overlapping window. The booking gives the window, the elevation, the status and uplink.

Request body application/jsonrequired

aosrequired

string

Acquisition of signal (UTC).

contributions

array of Pass

Contribution of each source to a merged pass, set by the MCS.

Pass · 15 fields
aosrequired

string

Acquisition of signal (UTC).

contributions

array of Pass

Contribution of each source to a merged pass, set by the MCS.

See Pass

feeder

string

Feeder that wrote it, set by the MCS.

idrequired

string

Stable identifier, given by the feeder.

losrequired

string

Loss of signal (UTC).

max_elevationrequired

string

Maximum elevation (47.3 deg).

protocol

string

Protocol (ccsds, csp, dvb-s2…).

rates

one of PassRates | null

Expected rates.

sourcerequired

PassSource

Source.

stationrequired

string

Ground station.

statusrequired

PassStatus

Status.

targetrequired

string

Target.

transceiver

string

On-board transceiver (sband, xband…).

updated_at

string

Last update, set by the MCS.

uplink

boolean

Whether telecommands can be sent; a receive-only pass refuses any send.

feeder

string

Feeder that wrote it, set by the MCS.

idrequired

string

Stable identifier, given by the feeder.

losrequired

string

Loss of signal (UTC).

max_elevationrequired

string

Maximum elevation (47.3 deg).

protocol

string

Protocol (ccsds, csp, dvb-s2…).

rates

one of PassRates | null

Expected rates.

sourcerequired

PassSource

Source.

stationrequired

string

Ground station.

statusrequired

PassStatus

Status.

targetrequired

string

Target.

transceiver

string

On-board transceiver (sband, xband…).

updated_at

string

Last update, set by the MCS.

uplink

boolean

Whether telecommands can be sent; a receive-only pass refuses any send.

Responses

200The pass as stored.application/json
passrequired

Pass

Pass.

Pass · 15 fields
aosrequired

string

Acquisition of signal (UTC).

contributions

array of Pass

Contribution of each source to a merged pass, set by the MCS.

See Pass

feeder

string

Feeder that wrote it, set by the MCS.

idrequired

string

Stable identifier, given by the feeder.

losrequired

string

Loss of signal (UTC).

max_elevationrequired

string

Maximum elevation (47.3 deg).

protocol

string

Protocol (ccsds, csp, dvb-s2…).

rates

one of PassRates | null

Expected rates.

sourcerequired

PassSource

Source.

stationrequired

string

Ground station.

statusrequired

PassStatus

Status.

targetrequired

string

Target.

transceiver

string

On-board transceiver (sband, xband…).

updated_at

string

Last update, set by the MCS.

uplink

boolean

Whether telecommands can be sent; a receive-only pass refuses any send.

gateway

one of PassGateway | null

401Token refused.application/json
errorsrequired

array of ErrorItem

Every error found.

ErrorItem · 3 fields
coderequired

string

Stable code.

messagerequired

string

Message for the operator.

help

string

Suggested fix.

403Not a feeder (pass::not-a-feeder), or not its source (pass::forbidden-source).application/json
errorsrequired

array of ErrorItem

Every error found.

ErrorItem · 3 fields
coderequired

string

Stable code.

messagerequired

string

Message for the operator.

help

string

Suggested fix.

422Invalid pass or unknown target: pass::invalid, pass::unknown-target.application/json
errorsrequired

array of ErrorItem

Every error found.

ErrorItem · 3 fields
coderequired

string

Stable code.

messagerequired

string

Message for the operator.

help

string

Suggested fix.

503The MCS bus (NATS) is unavailable: api::unavailable.application/json
errorsrequired

array of ErrorItem

Every error found.

ErrorItem · 3 fields
coderequired

string

Stable code.

messagerequired

string

Message for the operator.

help

string

Suggested fix.

Request

curl -X POST "http://localhost:8080/v1/passes" \
  -H "Content-Type: application/json" \
  -d '{
  "aos": "string",
  "contributions": [
    {}
  ],
  "feeder": "string",
  "id": "string",
  "los": "string",
  "max_elevation": "string",
  "protocol": "string",
  "rates": {
    "downlink": "string",
    "uplink": "string"
  },
  "source": "fds",
  "station": "string",
  "status": "predicted",
  "target": "string",
  "transceiver": "string",
  "updated_at": "string",
  "uplink": true
}'

Response

{
  "pass": {
    "aos": "string",
    "contributions": [
      {}
    ],
    "feeder": "string",
    "id": "string",
    "los": "string",
    "max_elevation": "string",
    "protocol": "string",
    "rates": {
      "downlink": "string",
      "uplink": "string"
    },
    "source": "fds",
    "station": "string",
    "status": "predicted",
    "target": "string",
    "transceiver": "string",
    "updated_at": "string",
    "uplink": true
  },
  "gateway": {
    "checked_at": "string",
    "gateway": "string",
    "reason": "string"
  }
}
GET/v1/passes/{target}/{id}

Get pass#

A pass

Path parameters

targetrequired

string

Target, as named in the topology (sim-1).

idrequired

string

Pass identifier.

Responses

200The pass and its gateway.application/json
passrequired

Pass

Pass.

Pass · 15 fields
aosrequired

string

Acquisition of signal (UTC).

contributions

array of Pass

Contribution of each source to a merged pass, set by the MCS.

See Pass

feeder

string

Feeder that wrote it, set by the MCS.

idrequired

string

Stable identifier, given by the feeder.

losrequired

string

Loss of signal (UTC).

max_elevationrequired

string

Maximum elevation (47.3 deg).

protocol

string

Protocol (ccsds, csp, dvb-s2…).

rates

one of PassRates | null

Expected rates.

sourcerequired

PassSource

Source.

stationrequired

string

Ground station.

statusrequired

PassStatus

Status.

targetrequired

string

Target.

transceiver

string

On-board transceiver (sband, xband…).

updated_at

string

Last update, set by the MCS.

uplink

boolean

Whether telecommands can be sent; a receive-only pass refuses any send.

gateway

one of PassGateway | null

404No such pass: pass::unknown.application/json
errorsrequired

array of ErrorItem

Every error found.

ErrorItem · 3 fields
coderequired

string

Stable code.

messagerequired

string

Message for the operator.

help

string

Suggested fix.

503The MCS bus (NATS) is unavailable: api::unavailable.application/json
errorsrequired

array of ErrorItem

Every error found.

ErrorItem · 3 fields
coderequired

string

Stable code.

messagerequired

string

Message for the operator.

help

string

Suggested fix.

Request

curl "http://localhost:8080/v1/passes/<target>/<id>"

Response

{
  "pass": {
    "aos": "string",
    "contributions": [
      {}
    ],
    "feeder": "string",
    "id": "string",
    "los": "string",
    "max_elevation": "string",
    "protocol": "string",
    "rates": {
      "downlink": "string",
      "uplink": "string"
    },
    "source": "fds",
    "station": "string",
    "status": "predicted",
    "target": "string",
    "transceiver": "string",
    "updated_at": "string",
    "uplink": true
  },
  "gateway": {
    "checked_at": "string",
    "gateway": "string",
    "reason": "string"
  }
}
POST/v1/passes/replace_window

Replace window#

Replace the passes of a window (feeder)

A complete snapshot of a source for a target over an interval: each pass is written, and the contribution of the source to every pass of the interval absent from the snapshot is cancelled.

Request body application/jsonrequired

sourcerequired

PassSource

Source of the snapshot.

targetrequired

string

Target.

fromrequired

string · date-time

Start of the interval.

torequired

string · date-time

End of the interval.

passesrequired

array of Pass

Every pass of the source in the interval.

Pass · 15 fields
aosrequired

string

Acquisition of signal (UTC).

contributions

array of Pass

Contribution of each source to a merged pass, set by the MCS.

See Pass

feeder

string

Feeder that wrote it, set by the MCS.

idrequired

string

Stable identifier, given by the feeder.

losrequired

string

Loss of signal (UTC).

max_elevationrequired

string

Maximum elevation (47.3 deg).

protocol

string

Protocol (ccsds, csp, dvb-s2…).

rates

one of PassRates | null

Expected rates.

sourcerequired

PassSource

Source.

stationrequired

string

Ground station.

statusrequired

PassStatus

Status.

targetrequired

string

Target.

transceiver

string

On-board transceiver (sband, xband…).

updated_at

string

Last update, set by the MCS.

uplink

boolean

Whether telecommands can be sent; a receive-only pass refuses any send.

Responses

200What was written and cancelled.application/json
upsertedrequired

array of string

Passes written, as stored.

cancelledrequired

array of string

Passes whose contribution of the source was cancelled, as stored.

401Token refused.application/json
errorsrequired

array of ErrorItem

Every error found.

ErrorItem · 3 fields
coderequired

string

Stable code.

messagerequired

string

Message for the operator.

help

string

Suggested fix.

403Not a feeder, or not its source.application/json
errorsrequired

array of ErrorItem

Every error found.

ErrorItem · 3 fields
coderequired

string

Stable code.

messagerequired

string

Message for the operator.

help

string

Suggested fix.

422Invalid snapshot or unknown target.application/json
errorsrequired

array of ErrorItem

Every error found.

ErrorItem · 3 fields
coderequired

string

Stable code.

messagerequired

string

Message for the operator.

help

string

Suggested fix.

503The MCS bus (NATS) is unavailable: api::unavailable.application/json
errorsrequired

array of ErrorItem

Every error found.

ErrorItem · 3 fields
coderequired

string

Stable code.

messagerequired

string

Message for the operator.

help

string

Suggested fix.

Request

curl -X POST "http://localhost:8080/v1/passes/replace_window" \
  -H "Content-Type: application/json" \
  -d '{
  "source": "fds",
  "target": "string",
  "from": "2026-09-29T08:30:00Z",
  "to": "2026-09-29T08:30:00Z",
  "passes": [
    {
      "aos": "string",
      "contributions": [
        {}
      ],
      "feeder": "string",
      "id": "string",
      "los": "string",
      "max_elevation": "string",
      "protocol": "string",
      "rates": {
        "downlink": "string",
        "uplink": "string"
      },
      "source": "fds",
      "station": "string",
      "status": "predicted",
      "target": "string",
      "transceiver": "string",
      "updated_at": "string",
      "uplink": true
    }
  ]
}'

Response

{
  "upserted": [
    "string"
  ],
  "cancelled": [
    "string"
  ]
}
GET/v1/passes/watch

Watch passes#

Watch the passes (WebSocket)

Sends every pass with the check of its gateway, then each pass whose definition or gateway check changes.

Query parameters

target

string

Only those of this target.

Responses

101WebSocket: one PassView per message.application/json
passrequired

Pass

Pass.

Pass · 15 fields
aosrequired

string

Acquisition of signal (UTC).

contributions

array of Pass

Contribution of each source to a merged pass, set by the MCS.

See Pass

feeder

string

Feeder that wrote it, set by the MCS.

idrequired

string

Stable identifier, given by the feeder.

losrequired

string

Loss of signal (UTC).

max_elevationrequired

string

Maximum elevation (47.3 deg).

protocol

string

Protocol (ccsds, csp, dvb-s2…).

rates

one of PassRates | null

Expected rates.

sourcerequired

PassSource

Source.

stationrequired

string

Ground station.

statusrequired

PassStatus

Status.

targetrequired

string

Target.

transceiver

string

On-board transceiver (sband, xband…).

updated_at

string

Last update, set by the MCS.

uplink

boolean

Whether telecommands can be sent; a receive-only pass refuses any send.

gateway

one of PassGateway | null

404Invalid target: api::invalid-target.application/json
errorsrequired

array of ErrorItem

Every error found.

ErrorItem · 3 fields
coderequired

string

Stable code.

messagerequired

string

Message for the operator.

help

string

Suggested fix.

503The MCS bus (NATS) is unavailable: api::unavailable.application/json
errorsrequired

array of ErrorItem

Every error found.

ErrorItem · 3 fields
coderequired

string

Stable code.

messagerequired

string

Message for the operator.

help

string

Suggested fix.

Request

curl "http://localhost:8080/v1/passes/watch"

Response

{
  "pass": {
    "aos": "string",
    "contributions": [
      {}
    ],
    "feeder": "string",
    "id": "string",
    "los": "string",
    "max_elevation": "string",
    "protocol": "string",
    "rates": {
      "downlink": "string",
      "uplink": "string"
    },
    "source": "fds",
    "station": "string",
    "status": "predicted",
    "target": "string",
    "transceiver": "string",
    "updated_at": "string",
    "uplink": true
  },
  "gateway": {
    "checked_at": "string",
    "gateway": "string",
    "reason": "string"
  }
}

↑↓ to moveEnter to open