HTTP API

First, an HTTP API lets your machines see information about the constellation and about themselves. For example, you may want to configure your application to do different things based on the satellite it is deployed on.

To access the HTTP API, make an HTTP GET request to your microVM’s gateway on port 80 (configurable). We recommend simply using the info.celestial address.

Self

  GET /self

Gets general information about self. Requester is identified using their IP address.

Returns (for a ground station):

{
  "type": "gst",
  "identifier": {
    "id": 0,
    "name": "berlin"
  },
}

Returns (for a satellite):

{
  "type": "sat",
  "active": true,
  "identifier": {
    "shell": 1,
    "id": 10,
  },
}

The id is the identifier of the machine within its shell. shell is the identifier of its shell (the number within the configuration file is used). For ground stations, shell is 0, id is the index within the configuration file. Here, the additional name parameter gives the name of the ground station. For satellites, this is left empty.

Info

  GET /info

Gets general information about constellation.

Returns:

{
  "shells": [
    {
      "sats": [
        {
          "type": "sat",
          "active": true,
          "identifier": {
            "shell": 1,
            "id": 0,
          },
        },
        {
          "type": "sat",
          "active": false,
          "identifier": {
            "shell": 1,
            "id": 2,
          },
        },
      ]
    }
  ],
  "groundstations": [
    {
      "type": "gst",
      "identifier": {
        "id": 0,
        "name": "berlin"
      },
    }
  ]
}

Get Shell Info

  GET /shell/${shell}
Parameter Type Description
shell int Required. Index of shell to fetch

Returns:

{
  "sats": [
    {
      "type": "sat",
      "active": true,
      "identifier": {
        "shell": 1,
        "id": 0,
      },
    },
    {
      "type": "sat",
      "active": false,
      "identifier": {
        "shell": 1,
        "id": 2,
      },
    },
  ]
}

Get Satellite Info

  GET /shell/${shell}/${sat}
Parameter Type Description
shell int Required. Index of shell to fetch
sat int Required. Index of satellite to fetch

Returns:

{
  "type": "sat",
  "active": true,
  "identifier": {
    "shell": 1,
    "id": 10,
  },
}

Get Ground Station Info

  GET /gst/${name}
Parameter Type Description
name string Required. Name of ground station to fetch

Returns:

{
  "type": "gst",
  "identifier": {
    "id": 0,
    "name": "berlin"
  },
}

Get Path Info

  GET /path/${source_shell}/${source_sat}/${target_shell}/${target_sat}
Parameter Type Description
source_shell int or "gst" Required. Either ID of source shell or gst if ground station is desired.
source_sat int or string Required. Either ID of source satellite or name of ground station if source_shell is gst.
target int or "gst" Required. Either ID of target shell or gst if ground station is desired.
target_sat int or string Required. Either ID of target satellite or name of ground station if target_shell is gst.

Returns:

{
  "source": {
    "id": 0,
    "name": "berlin",
  },
  "target": {
    "shell": 1,
    "id": 10,
  },
  "delay_us": 10000,
  "bandwidth_kbits": 10000,
  "blocked": false,
  "segments": [
    {
      "source":{
        "id": 0,
        "name": "berlin",
      },
      "target":{
        "shell": 1,
        "id": 9,
      },
      "delay_us": 4000,
      "bandwidth_kbits": 20000,
    },
    {
      "source":{
        "shell": 1,
        "id": 9,
      },
      "target":{
        "shell": 1,
        "id": 10,
      },
      "delay_us": 6000,
      "bandwidth_kbits": 10000,
    },
  ],
}

Note that delay_us is in microseconds and bandwidth_kbits in kbit/s.