NAV Navbar
cURL
  • Introduction
  • Orbits
  • Orbit actions
  • Volumes
  • Volume Actions
  • Images
  • Keys
  • Introduction

    Welcome to the System on Grid API documentation.

    This API allows you to create and modify your resources. You can create/delete/modify your Orbits and Volumes using this API along with an API Token.

    You can create a API Key and Token from the Dashboard.

    You can navigate the API by its heading and details from the left panel. Right panel will show code examples and detail response messages.

    Orbits

    You can create, list and delete your Orbits by sending requests to this endpoint.

    This is the typical response available from Orbit endpoint.

    Name Type Description
    id integer Unique identifier of the Orbit instance.
    name string The name of the orbit you specified while creation.
    description string The description of the orbit you specified while creation.
    vcpus integer The number of vCPUs.
    ram integer The amound of RAM for the Orbit in gigabytes.
    created_at string The UTC timestamp of Orbit creation.
    status string A string describing the current status of the orbit.
    root_volume_size integer Size of the root volume of the orbit in gigabytes.
    ip_address string The public IP address of the Orbit.
    delete_root boolean This boolean specifies whether to delete the root volume upon Orbit deletion. This is set while creation.
    image string The base image used to create the Orbit.
    volumes array The list of volumes attached to this Orbit.

    Create a new Orbit

    curl -X POST -H "Content-Type: application/json" -H "Authorization: Token <your_token>" -d '{"name": "test01", "location": "USNY001", "ram": 1, "vcpus": 1, "root_size": 20, "password": "password", "image_id": 1, "delete_root": false}'  https://api.systemongrid.com/v1/orbits
    

    The above command returns the following response:

      {
        "status":"Creating",
        "vcpus":1,
        "ip_address":null,
        "description":null,
        "id":651,
        "delete_root":false,
        "name":"test01",
        "root_volume_size":null,
        "ram":1,
        "image":null,
        "created_at":"2017-12-11T17:54:53.379618Z",
        "volumes":[]
      }
    

    To create a new Orbit, send a POST request to /v1/orbits.

    The attributes the must be set successfully to create a Orbit are:

    Name Type Description Required
    name string A string specifying the name of the orbit. This name will be displayed in the Dashboard and API. true
    description string The text providing description of the Orbit false
    vcpus integer The amount of vCPUs you wish for the orbit. true
    ram integer The amount of RAM in gigabytes you wish for the orbit. true
    root_size integer The size of the root volume you wish for the Orbit. true
    image_id integer The unique ID of the image you wish to use for the root Volume of the orbit. false
    volume_id integer The unique ID of the Volume you wish to use for the Orbit. false
    ssh_key_id integer The unique ID of the SSH Key you wish to be added to the Orbit upon creation false
    password string The password you wish to be added to the Orbit upon creation. false
    delete_root boolean The boolean specifying to delete the root Volume upon Orbit deletion. The default for this attribute is True if not specified. false

    List all Orbits

    curl -X GET -H "Content-Type: application/json" -H "Authorization: Token <your_token>" https://api.systemongrid.com/v1/orbits
    

    The above command returns JSON structured like this:

    {
      "links": {
        "next_page":null,
        "last_page":"https://api.systemongrid.com/v1/orbits?page=1&per_page=25"
      },
      "orbits": [
        {
          "volumes":[
            {
              "id":731,
              "status":"Running",
              "attached_orbit":650,
              "is_root":true,
              "source_image":"Debian 8.7 64bit",
              "created_at":"2017-12-11T15:44:55Z"
              ,"is_bootable":true,
              "size":20,
              "name":"test_root"
            }
          ],
          "status":"Running",
          "vcpus":1,
          "name":"test",
          "id":650,
          "delete_root":false,
          "description":null,
          "ram":1,
          "ip_address":"38.76.11.250",
          "image":"Debian 8.7 64bit",
          "root_volume_size":20,
          "created_at":"2017-12-11T15:44:40Z"
        }
      ],
      "meta": {"total": 1}
    }
    

    Send a GET request to /v1/orbits to list all active orbits.

    The response will a JSON with a key of orbits. Each orbit will have the following attributes.

    Name Type Description
    id integer Unique identifier of the Orbit instance.
    name string The name of the orbit you specified while creation.
    description string The description of the orbit you specified while creation.
    vcpus integer The number of vCPUs.
    ram integer The amound of RAM for the Orbit in gigabytes.
    created_at string The UTC timestamp of Orbit creation.
    status string A string describing the current status of the orbit.
    root_volume_size integer Size of the root volume of the orbit in gigabytes.
    ip_address string The public IP address of the Orbit.
    delete_root boolean This boolean specifies whether to delete the root volume upon Orbit deletion. This is set while creation.
    image string The base image used to create the Orbit.
    volumes array The list of volumes attached to this Orbit.

    The response is paginated and the response includes information to list the next set of orbits. The response object will also include object for key links, to list the next page of volumes.

    You can specify url arguments per_page and page to specify the amount of orbits per page you want. per_page has a maximum of 25.

    Retreive a Orbit by ID

    curl -X GET -H "Content-Type: application/json" -H "Authorization: Token <your_token>" https://api.systemongrid.com/v1/orbits
    

    The above command returns JSON structured like this:

    {
      "orbit": {
        "volumes":[
          {
            "id":731,
            "status":"Running",
            "attached_orbit":650,
            "is_root":true,
            "source_image":"Debian 8.7 64bit",
            "created_at":"2017-12-11T15:44:55Z",
            "is_bootable":true,
            "size":20,
            "name":"test_root"
          }
        ],
        "status":"Running",
        "vcpus":1,"name":"test",
        "id":650,
        "delete_root":false,
        "description":null,
        "ram":1,
        "ip_address":"38.76.11.250",
        "image":"Debian 8.7 64bit",
        "root_volume_size":20,
        "created_at":"2017-12-11T15:44:40Z"
      }
    }
    

    Send a GET request to /v1/orbits/<Orbit ID> retrieve a specific orbit.

    The response will be JSON with a key of orbit.

    List all available flavors

    curl -X GET "https://api.systemongrid.com/v1/orbits/flavors"
    

    The above command returns JSON structured like this:

    
    {
      "flavors": [
        {
          "id":1,
          "monthly":450.0,
          "ram":1,
          "hourly":1.0,
          "vcpus":1,
          "network_usage":2000,
          "flavor_code":"01001"
        },
        {
          "id":2,
          "monthly":900.0,
          "ram":2,
          "hourly":2.0,
          "vcpus":2,
          "network_usage":3000,
          "flavor_code":"02002"
        },
        {
          "id":48,
          "monthly":1800.0,
          "ram":4,
          "hourly":4.0,
          "vcpus":4,
          "network_usage":4000,
          "flavor_code":"04004"
        },
        {
          "id":49,
          "monthly":3600.0,
          "ram":8,
          "hourly":8.0,
          "vcpus":8,
          "network_usage":8000,
          "flavor_code":"08008"
        }
      ],
      "meta":{"total":4}
    }
    
    

    A GET request to /v1/orbit/flavors will list available orbit sizes.

    The response will be JSON object with key of flavors. Each object in that array will have the following attrbutes.

    Name Type Description
    id integer Unique identifier of the Orbit size.
    vcpus integer Number of vCPUs in the flavor.
    ram integer The amound of RAM in flavor in gigabytes.
    flavor_code string A unique string identifying the flavor size.
    network_usage integer The amount of network usage permissible in this flavor in gigabytes.
    hourly float The hourly rate of the flavor in cents (USD).
    monthly float The monthly rate of the flavor in cents (USD).

    Orbit actions

    Actions on Orbits can be executed to get the Orbit in a desired state. Currently available actions are pause, resume.

    Actions on Orbits are executed by sending a POST request to /v1/orbits/actions with a JSON body describing the actions. The response will be a JSON object representating the current state Orbit object, which will change as the actions proceeds.

    Boot an Orbit

    curl -i -X POST -H "Content-Type: application/json" -H "Authorization: Token bf03fcb37808a6f8b8bd7ff31121a4e707323ba43d06741891a546dd832fb103" -d '{"action": "boot"}'  "https://api.systemongrid.com/v1/orbits/650"
    

    The above command returns JSON structured like this:

      {
        "status":"Paused",
        "vcpus":1,
        "ip_address":"38.76.11.250",
        "description":null,
        "id":650,
        "delete_root":false,
        "name":"test",
        "root_volume_size":20,
        "ram":1,
        "image":"Debian 8.7 64bit",
        "created_at":"2017-12-11T15:44:40Z",
        "volumes":[
          {
            "status":"Running",
            "name":"test_root",
            "is_root":true,
            "size":20,
            "created_at":"2017-12-11T15:44:55Z",
            "attached_orbit":650,
            "is_bootable":true,
            "id":731,
            "source_image":"Debian 8.7 64bit"
          }
        ]
      }
    

    To boot your paused orbit, send a POST request to /v1/orbits/<Orbit ID>/actions. Send the JSON body {"action_type": "boot"}to boot your orbit.

    Pause an Orbit

    curl -X POST -H "Content-Type: application/json" -H "Authorization: Token <your_token>" -d '{"action": "pause"}'  "https://api.systemongrid.com/v1/orbits/650"
    

    The above command returns JSON structured like this:

      {
        "status":"Running",
        "vcpus":1,
        "ip_address":"38.76.11.250",
        "description":null,
        "id":650,
        "delete_root":false,
        "name":"test",
        "root_volume_size":20,
        "ram":1,
        "image":"Debian 8.7 64bit",
        "created_at":"2017-12-11T15:44:40Z",
        "volumes":[
          {
            "status":"Running",
            "name":"test_root",
            "is_root":true,
            "size":20,
            "created_at":"2017-12-11T15:44:55Z",
            "attached_orbit":650,
            "is_bootable":true,
            "id":731,
            "source_image":"Debian 8.7 64bit"
          }
        ]
      }
    

    To pause your running orbit, send a POST request to /v1/orbits/<Orbit ID>/actions. Send the JSON body {"action_type": "pause"}to boot your orbit.

    Power cycle an Orbit

    curl -X POST -H "Content-Type: application/json" -H "Authorization: Token <your_token>" -d '{"action_type": "power_cycle"}' http://localhost:8000/v1/orbits/20/actions
    

    The above command returns JSON structured like this:

      {
        "name":"test",
        "created_at":"2017-12-11T15:44:40Z",
        "root_volume_size":20,
        "ip_address":"38.76.11.250",
        "ram":1,
        "image":"Debian 8.7 64bit",
        "delete_root":false,
        "description":null,
        "volumes":[
          {
            "name":"test_root",
            "created_at":"2017-12-11T15:44:55Z",
            "is_root":true,
            "id":731,
            "size":20,
            "status":"Running",
            "source_image":"Debian 8.7 64bit",
            "attached_orbit":650,
            "is_bootable":true
          }
        ],
        "id":650,
        "status":"Running",
        "vcpus":1
      }
    

    To power cycle your orbit, send a POST request to /v1/orbits/<Orbit ID>/actions. Send the JSON body {"action_type": "power_cycle"} to boot your orbit.

    Resize an Orbit

    curl -X POST -H "Content-Type: application/json" -H "Authorization: Token <your_token>" -d '{"action": "pause", "ram": 2, "vcpus": 2}'  "https://api.systemongrid.com/v1/orbits/650/actions"
    

    The above command returns JSON structured like this:

      {
        "status":"Running",
        "vcpus":1,
        "ip_address":"38.76.11.250",
        "description":null,
        "id":650,
        "delete_root":false,
        "name":"test",
        "root_volume_size":20,
        "ram":1,
        "image":"Debian 8.7 64bit",
        "created_at":"2017-12-11T15:44:40Z",
        "volumes":[
          {
            "status":"Running",
            "name":"test_root",
            "is_root":true,
            "size":20,
            "created_at":"2017-12-11T15:44:55Z",
            "attached_orbit":650,
            "is_bootable":true,
            "id":731,
            "source_image":"Debian 8.7 64bit"
          }
        ]
      }
    

    To resize your orbit, send a POST request to actions endpoint, that is /v1/orbits/<Orbit ID>/actions. Send the JSON body {"action_type": "resize", "ram": 2, "vcpus": 2} and use the ram and vcpus keys to select Orbit size you want to resize to.

    Rebuild an Orbit

    curl -X POST -H "Content-Type: application/json" -H "Authorization: Token <your_token>" -d '{"action": "rebuild", "image_id": 2, "password": "32hjk4h53fgn03gnsvw08eu"}'  "https://api.systemongrid.com/v1/orbits/650/actions"
    

    The above command returns JSON structured like this:

      {
        "status":"Running",
        "vcpus":1,
        "ip_address":"38.76.11.250",
        "description":null,
        "id":650,
        "delete_root":false,
        "name":"test",
        "root_volume_size":20,
        "ram":1,
        "image":"Debian 8.7 64bit",
        "created_at":"2017-12-11T15:44:40Z",
        "volumes":[
          {
            "status":"Running",
            "name":"test_root",
            "is_root":true,
            "size":20,
            "created_at":"2017-12-11T15:44:55Z",
            "attached_orbit":650,
            "is_bootable":true,
            "id":731,
            "source_image":"Debian 8.7 64bit"
          }
        ]
      }
    

    To rebuild your orbit, send a POST request to actions endpoint, that is /v1/orbits/<Orbit ID>/actions. Send the JSON body {"action": "rebuild", "image_id": 2, "password": "32hjk4h53fgn03gnsvw08eu"} and use the image_id key to specify which disto you want to use. You also need to specify either a password or ssh_key_id for authentication. After you rebuild your orbit, your SSH fingerprint of the Orbit will change.

    Reset Password of an Orbit

    curl -X POST -H "Content-Type: application/json" -H "Authorization: Token <your_token>" -d '{"action": "reset_password", "password": "32hjk4h53fgn03gnsvw08eu"}'  "https://api.systemongrid.com/v1/orbits/650/actions"
    

    The above command returns JSON structured like this:

      {
        "status":"Running",
        "vcpus":1,
        "ip_address":"38.76.11.250",
        "description":null,
        "id":650,
        "delete_root":false,
        "name":"test",
        "root_volume_size":20,
        "ram":1,
        "image":"Debian 8.7 64bit",
        "created_at":"2017-12-11T15:44:40Z",
        "volumes":[
          {
            "status":"Running",
            "name":"test_root",
            "is_root":true,
            "size":20,
            "created_at":"2017-12-11T15:44:55Z",
            "attached_orbit":650,
            "is_bootable":true,
            "id":731,
            "source_image":"Debian 8.7 64bit"
          }
        ]
      }
    

    To reset password of your orbit, send a POST request to actions endpoint, that is /v1/orbits/<Orbit ID>/actions. Send the JSON body {"action": "reset_password", "password": "32hjk4h53fgn03gnsvw08eu"} and use the password key or ssh_key_id to specify what authentication parameters you want to use. After you reset the password, your SSH fingerprint of the Orbit will change.

    Delete an Orbit

    curl -X DELETE -H "Content-Type: application/json" -H "Authorization: Token <your_token>" https://api.systemongrid.com/v1/orbits/20
    

    The above command returns JSON structured like this:

      {
        "name":"test",
        "created_at":"2017-12-11T15:44:40Z",
        "root_volume_size":20,
        "ip_address":"38.76.11.250",
        "ram":1,
        "image":"Debian 8.7 64bit",
        "delete_root":false,
        "description":null,
        "volumes":[
          {
            "name":"test_root",
            "created_at":"2017-12-11T15:44:55Z",
            "is_root":true,
            "id":731,
            "size":20,
            "status":"Running",
            "source_image":"Debian 8.7 64bit",
            "attached_orbit":650,
            "is_bootable":true
          }
        ],
        "id":650,
        "status":"Running",
        "vcpus":1
      }
    

    To delete your running orbit, send a DELETE request to /v1/orbits/<Orbit ID>.

    Volumes

    All volumes on System on Grid are supported by Block storage and can be attached to Orbits to expand storage and various other purposes.

    A volume response may include volume object with following interviews.

    Name Type Description
    id integer Unique identifier of the Volume.
    name string Name of the volume set while creation.
    size integer Size of the volume in gigabytes.
    status string A string describing the current status of the Volume.
    source_image string A string specifying the base image used to create the Volume.
    is_root boolean Boolean specifying whether this is a root Volume of the orbit.
    is_bootable boolean A boolean specifying whether the Volume is bootable. This boolean can be used when deciding to create an Orbit from existing volume.
    created_at string The UTC timestamp of Volume creation.
    attachment object An object that gives detail about the Volume being attached to an orbit or not.

    List volumes

    curl -X GET -H "Content-Type: application/json" -H "Authorization: Token asdfasdf" https://api.systemongrid.com/v1/volumes?page=1&per_page=25
    

    The above command returns the following response:

      {
        "volumes": [
          {
            "id":729,
            "is_root":false,
            "source_image":"Debian 8.7 64bit",
            "is_bootable":true,
            "size":20,
            "created_at":"2017-12-08T20:55:00Z",
            "name":"abc_root",
            "attached_orbit":null,
            "status":"Running"
          },
          {
            "id":731,
            "is_root":true,
            "source_image":"Debian 8.7 64bit",
            "is_bootable":true,
            "size":20,
            "created_at":"2017-12-11T15:44:55Z",
            "name":"test_root",
            "attached_orbit":650,
            "status":"Running"
          }
        ],
        "meta": {"total":2},
        "links":{"next_page":null,"last_page":"https://api.systemongrid.com/v1/volumes?page=1&per_page=25"}
      }
    

    To list all volumes under your account, send a GET request to /v1/volumes. The response will be JSON object with key called volumes. It will be an array with each object having certain attributes.

    Name Type Description
    id integer Unique identifier of the Volume.
    name string Name of the volume set while creation.
    size integer Size of the volume in gigabytes.
    status string A string describing the current status of the Volume.
    source_image string A string specifying the base image used to create the Volume.
    is_root boolean Boolean specifying whether this is a root Volume of the orbit.
    is_bootable boolean A boolean specifying whether the Volume is bootable. This boolean can be used when deciding to create an Orbit from existing volume.
    created_at string The UTC timestamp of Volume creation.
    attachment object An object that gives detail about the Volume being attached to an orbit or not.

    The response is paginated and the response includes information to list the next set volume. The response object will also include object for key links, to list the next page of volumes.

    List volume templates

    curl -X GET -H "Content-Type: application/json" -H "Authorization: Token asdfasdf" https://api.systemongrid.com/v1/volumes/tempaltes
    

    The above command returns the following response:

      {
        "templates":[
          {
            "id":1,
            "monthly":100.0,
            "capacity":"20 GB",
            "hourly":0.2
          },
          {
            "id":2,
            "monthly":200.0,
            "capacity":"40 GB",
            "hourly":0.41
          },
          {
            "id":3,
            "monthly":400.0,
            "capacity":"80 GB",
            "hourly":0.83
          },
          {
            "id":4,
            "monthly":600.0,
            "capacity":"120 GB",
            "hourly":1.25
          },
          {
            "id":5,
            "monthly":1200.0,
            "capacity":"240 GB",
            "hourly":2.5
          },
          {
            "id":6,
            "monthly":2500.0,
            "capacity":"500 GB",
            "hourly":5.2
          },
          {
            "id":7,
            "monthly":5000.0,
            "capacity":"1000 GB",
            "hourly":10.4
          }
        ],
        "meta": {"total":7},
      }
    

    You can send a GET request /v1/volumes/templates to list available volume templates. You can choose which template you want while creating a volume.

    The response will be a JSON object with key templates. Each of which will have certain attributes describing the template cost and size.

    Name Type Description
    id integer Unique identifier of the Volume template.
    monthly float The monthly cost of the Volume size in cents (USD).
    hourly float The hourly cost of the Volume size in cents (USD).
    capacity integer The size of volume in gigabytes.

    Create a new Volume

    curl -X POST -H "Content-Type: application/json" -H "Authorization: Token asdfasdf" -d '{"name": "first_vol", "size": 20}' https://api.systemongrid.com/v1/volumes
    

    The above command returns the following response:

      {
        "created_at": "2018-01-08T20:33:48.539144Z",
        "attached_orbit": null,
        "is_root": false,
        "is_bootable": false,
        "source_image": null,
        "id": 835,
        "status": "Creating",
        "size": 20,
        "name": "first_vol"
      }
    

    To create a new Volume, make a POST request to the volumes endpoint with following parameters:

    Name Type Description
    name string Name of the Volume
    size integer Size of the Volume
    orbit_id integer The unique id of the orbit to attach to after volume has been created.

    Delete Volume

    curl -X DELETE -H "Content-Type: application/json" -H "Authorization: Token asdfasdf" https://api.systemongrid.com/v1/volumes/820
    

    The above command returns the following response:

      {
        "created_at": "2018-01-08T20:47:16Z",
        "attached_orbit": null,
        "is_root": false,
        "is_bootable": false,
        "source_image": null,
        "id": 836,
        "status": "Running",
        "size": 20,
        "name": "first_vol"
    }
    

    To delete your Volume, make a DELETE request to the volumes endpoint endpoint.

    Volume Actions

    Resize Volume

    curl -X POST -H "Content-Type: application/json" -H "Authorization: Token asdfasdf" -d '{"action": "resize", "size": 40}' https://api.systemongrid.com/v1/volumes/820/actions
    

    The above command returns the following response:

      {
        "created_at": "2018-01-08T20:47:16Z",
        "attached_orbit": null,
        "is_root": false,
        "is_bootable": false,
        "source_image": null,
        "id": 836,
        "status": "Running",
        "size": 20,
        "name": "first_vol"
    }
    

    To resize your Volume, make a POST request to the volumes actions endpoint this JSON data with action key to specify which action, size for size in Gigabytes or template_id to specify the size.

    Clone Volume

    curl -X POST -H "Content-Type: application/json" -H "Authorization: Token asdfasdf" -d '{"action": "clone", "name": "clone_vol"}' https://api.systemongrid.com/v1/volumes/820/actions
    

    The above command returns the following response:

      {
        "created_at": "2018-01-08T20:47:16Z",
        "attached_orbit": null,
        "is_root": false,
        "is_bootable": false,
        "source_image": null,
        "id": 836,
        "status": "Running",
        "size": 20,
        "name": "clone_vol"
    }
    

    To clone a Volume, make a POST request to the volumes actions endpoint this JSON data with action key to specify which action, and name to specify the name for the cloned volume.

    Attach Volume

    curl -X POST -H "Content-Type: application/json" -H "Authorization: Token asdfasdf" -d '{"action": "attach", "orbit_id": 17}' https://api.systemongrid.com/v1/volumes/820/actions
    

    The above command returns the following response:

      {
        "created_at": "2018-01-08T20:47:16Z",
        "attached_orbit": null,
        "is_root": false,
        "is_bootable": false,
        "source_image": null,
        "id": 836,
        "status": "Running",
        "size": 20,
        "name": "first_vol"
    }
    

    To attach your Volume to the Orbit, make a POST request to the volumes actions endpoint this JSON data with action key to specify which action, orbit_id for the unique ID of the orbit to attach to.

    Detach Volume

    curl -X POST -H "Content-Type: application/json" -H "Authorization: Token asdfasdf" -d '{"action": "detach"}' https://api.systemongrid.com/v1/volumes/820/actions
    

    The above command returns the following response:

      {
        "created_at": "2018-01-08T20:47:16Z",
        "attached_orbit": null,
        "is_root": false,
        "is_bootable": false,
        "source_image": null,
        "id": 836,
        "status": "Running",
        "size": 20,
        "name": "first_vol"
    }
    

    To detach your Volume from the Orbit, make a POST request to the volumes actions endpoint this JSON data with action key to specify which action.

    Images

    You can list available images on System on Grid to base your volume off of on this endpoint. You can currently only list the available images.

    An image response will include image object which will have the following attributes.

    Name Type Description
    id integer Unique identifier of the Volume.
    name string Name of the volume set while creation.
    size integer Size of the volume in gigabytes.
    status string A string describing the current status of the Volume.
    source_image string A string specifying the base image used to create the Volume.
    is_root boolean Boolean specifying whether this is a root Volume of the orbit.
    is_bootable boolean A boolean specifying whether the Volume is bootable. This boolean can be used when deciding to create an Orbit from existing volume.
    created_at string The UTC timestamp of Volume creation.
    attachment object An object that gives detail about the Volume being attached to an orbit or not.

    List Images

    curl -X GET -H "Content-Type: application/json" -H "Authorization: Token asdfasdf" https://api.systemongrid.com/v1/images?page=1&per_page=2
    
      > The above command returns the following response:
      {
        "links":{"last_page":"https://api.systemongrid.com/v1/images?per_page=2&page=22","next_page":"https://api.systemongrid.com/v1/images?per_page=2&page=2"},
        "meta":{"total":2},
        "images":[
          {
            "os_version":"7 64bit",
            "id":3,
            "os_distro":"CentOS",
            "image_name":"CentOS 7 64bit",
            "category":"",
            "restrictions":{},
            "description":"",
            "app_name":""
          },
          {
            "os_version":"6 64bit",
            "id":4,
            "os_distro":"CentOS",
            "image_name":"CentOS 6 64bit",
            "category":"",
            "restrictions":{},
            "description":"",
            "app_name":""
          },
        ]
      }
    

    To get a list of available images, send a GET request to /v1/images. The response will be a JSON object with a key images with list of images.

    Name Type Description
    id integer Unique identifier of the Image object.
    os_version string Version of the operating system of the image.
    image_name string Name of the image with os_version and the distro.
    category boolean Boolean specifying whether this is a root Volume of the orbit.
    restrictions object An object with ram and vcpus keys to define minimum requirements of orbit flavor for the image.
    description string The description of the image.
    app_name string A string describing the name of the application installed on the image. Mainly applicable for photons

    The response is paginated and the response includes information to list the next set of images. The response object inclues object for key links, to list the next page of images.

    Keys

    You can list your SSH keys on System on Grid on this endpoint. You can currently only list the SSH keys.

    The response will include SSH key object which will have the following attributes.

    List SSH keys

    curl -X GET -H "Content-Type: application/json" -H "Authorization: Token asdfasdf" https://api.systemongrid.com/v1/images?page=1&per_page=2
    
      > The above command returns the following response:
    
      {
        "meta":{"total":3},
        "ssh_keys":[
          {
            "name":"key_1",
            "id":88,
            "public_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCuJ0FA6Gr4WFP0UO0LNtCxH7OU3in+KyHmpowWkAzyreLXer7ikyKjpJlRPmP7BQBUejHQpCaD3JRMlNQHMnQbHe9MZVxHgS+xSs4RltlWOtoZ4jUyI/Gdnv93ue9hn349utvwqirfv/XMh7qUPuovNwUQhvnQg39AI45Hi07rHfld8vTAKeC95YDkIlZzkO7np/++h+0Wj8W8ruMP/PpMeSZQNBxrbAq5UjJ9LMyLK6fmloBk7mW9rcdfURsp/FvZ1eh4307XGOQfB someemail"
          },
          {
            "name":"key_2",
            "id":169,
            "public_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7hX1r9RZyM2ifmRwIjijhujxNc18xyzuJnOyKg7jLK3qIWxJSjSsvlPyU6TV1xgKYLoAo55fPpYm7jArFTYT2P6/gCXsAYK5mdT6Ju22fLONgArunf49875n24gvhn49u0hn4/tRpExWxWJcdAfp6mjFTHe8I9mv3c3s6GH/yxo5mHSj4KJrx8jMxeurpc00+CsdlbS2Hd7G5rBE1zIJtOVDtmrzbJ75J9wqEaMIK7QF49tS5heLohJF1QCda9z1nAZ6gk1A1/BUx/3fTY0iXobkdDjpH+5sJSsNU8R/JzDvKNeKVFwDUcbmxQqfk5r7Pn/aEuiYexFgSobdw/KL65VX someotheremail"
            }
        ]
      }
    

    Send GET request to /v1/keys to list your SSH keys.

    Name Type Description
    id integer Unique identifier of the SSH key.
    name string Name of the SSH key you specified during creation.
    public_key string Public key added by you for the SSH key object.