Exoscale Public API

Infrastructure automation API, allowing programmatic access to all Exoscale products and services.

This documentation refers to an alpha version, and is currently not officially supported.

The OpenAPI Specification source of this documentation can be obtained here:

The currently supported API documentation can be consulted here:
https://community.exoscale.com/api/

This is the documentation for version 2.0.0-alpha2 of the API. Last update on Mar 1, 2021.

Base URL
https://api-{zone}.exoscale.com/v2.alpha

API structure has changed on
  • Updated: GET /load-balancer/{id}/service/{service-id}
  • Response modified: 200
  • Updated: PUT /load-balancer/{id}/service/{service-id}
  • Updated: GET /load-balancer
  • Response modified: 200
  • Updated: POST /load-balancer/{id}/service
  • Updated: GET /load-balancer/{id}
  • Response modified: 200
  • Updated: GET /sks-cluster/{id}/nodepool/{sks-nodepool-id}
  • Response modified: 200
  • Updated: GET /sks-cluster
  • Response modified: 200
  • Updated: GET /sks-cluster/{id}
  • Response modified: 200
  • Updated: GET /instance-pool
  • Response modified: 200
  • Updated: POST /instance-pool
  • Updated: GET /instance-pool/{id}
  • Response modified: 200
  • Updated: PUT /instance-pool/{id}
  • Added: GET /elastic-ip
  • Added: POST /elastic-ip
  • Added: DELETE /elastic-ip/{id}/{field}
  • Updated: GET /elastic-ip/{id}
  • Response modified: 200
  • Body attributes added: description, healthcheck
  • Added: PUT /elastic-ip/{id}
  • Added: DELETE /elastic-ip/{id}
  • Removed: DELETE /private-network/{id}/{field}
API structure has changed on
  • Added: PUT /sks-cluster/{id}/rotate-ccm-credentials
API structure has changed on
  • Updated: GET /load-balancer/{id}/service/{service-id}
  • Response modified: 200
  • Body attributes modified: protocol, name, target-port, port, strategy
  • Updated: GET /load-balancer
  • Response modified: 200
  • Updated: POST /load-balancer
  • Body attributes removed: id, state, created-at, ip, services
  • Updated: POST /load-balancer/{id}/service
  • Body attributes removed: state, id, healthcheck-status
  • Updated: GET /load-balancer/{id}
  • Response modified: 200
  • Body attribute modified: name
  • Updated: PUT /sks-cluster/{id}/nodepool/{sks-nodepool-id}:scale
  • Body attribute modified: size
  • Updated: POST /sks-cluster
  • Body attributes modified: name, level, version
  • Updated: POST /sks-cluster/{id}/nodepool
  • Body attributes removed: instance-pool, version, template
  • Body attributes modified: name, size, disk-size
  • Updated: PUT /sks-cluster/{id}/upgrade
  • Body attribute modified: version
  • Updated: PUT /instance-pool/{id}:scale
  • Body attributes removed: anti-affinity-groups, description, security-groups, elastic-ips, name, instance-type, private-networks, template, state, ssh-key, user-data, manager, instances, ipv6-enabled, id, disk-size
  • Body attribute modified: size
  • Updated: POST /instance-pool
  • Body attributes removed: state, manager, instances, id
  • Body attributes modified: name, size, disk-size
  • Updated: PUT /instance-pool/{id}
  • Body attributes removed: state, size, manager, instances, id
  • Added: DELETE /instance-pool/{id}/{field}
  • Updated: POST /instance/{instance-id}:revert-snapshot
  • Body attributes removed: name, description, created-at, state, export, instance
  • Body attribute modified: id
  • Updated: POST /anti-affinity-group
  • Body attributes removed: id, instances
  • Body attribute modified: name
  • Updated: POST /security-group
  • Body attributes removed: id, rules
  • Body attribute modified: name
  • Updated: POST /security-group/{id}/rules
  • Body attribute removed: id
  • Body attribute modified: flow-direction
  • Updated: POST /private-network
  • Body attribute removed: id
  • Body attribute modified: name
  • Updated: PUT /private-network/{id}
  • Body attribute removed: id
  • Added: DELETE /private-network/{id}/{field}
  • Updated: POST /template/{id}
  • Body attribute modified: target-zone
  • Updated: POST /template
  • Body attributes removed: family, build, id, version, created-at, visibility
  • Body attributes modified: ssh-key-enabled, name, password-enabled, checksum, url
API structure has changed on
  • Updated: PUT /sks-cluster/{id}/nodepool/{sks-nodepool-id}
  • Body attributes removed: version, created-at, template, state, size, instance-pool, id
  • Updated: PUT /sks-cluster/{id}/nodepool/{sks-nodepool-id}:scale
  • Body attributes removed: anti-affinity-groups, description, security-groups, name, instance-type, template, state, instance-pool, id, disk-size, version, created-at
  • Updated: POST /sks-cluster
  • Body attributes removed: state, nodepools, created-at, endpoint, id
  • Updated: PUT /sks-cluster/{id}
  • Body attributes removed: state, nodepools, level, addons, id, version, created-at, endpoint, cni
  • Added: DELETE /sks-cluster/{id}/{field}
  • Updated: POST /sks-cluster/{id}/nodepool
  • Body attributes removed: state, id, created-at
  • Added: DELETE /sks-cluster/{id}/nodepool/{sks-nodepool-id}/{field}
  • Updated: PUT /sks-cluster/{id}/upgrade
  • Body attributes removed: description, cni, name, state, nodepools, level, addons, id, created-at, endpoint
API structure has changed on
  • Added: POST /template/{id}
API structure has changed on
  • Updated: GET /load-balancer/{id}/service/{service-id}
  • Response modified: 200
  • Updated: GET /load-balancer
  • Response modified: 200
  • Updated: POST /load-balancer
  • Updated: POST /load-balancer/{id}/service
  • Updated: GET /load-balancer/{id}
  • Response modified: 200
  • Updated: GET /sks-cluster/{id}/nodepool/{sks-nodepool-id}
  • Response modified: 200
  • Updated: PUT /sks-cluster/{id}/nodepool/{sks-nodepool-id}
  • Updated: PUT /sks-cluster/{id}/nodepool/{sks-nodepool-id}:scale
  • Updated: GET /sks-cluster
  • Response modified: 200
  • Updated: POST /sks-cluster
  • Updated: GET /sks-cluster/{id}
  • Response modified: 200
  • Updated: PUT /sks-cluster/{id}
  • Updated: POST /sks-cluster/{id}/nodepool
  • Updated: PUT /sks-cluster/{id}/upgrade
  • Added: PUT /instance-pool/{id}:scale
  • Added: GET /instance-pool
  • Added: POST /instance-pool
  • Added: GET /instance-pool/{id}
  • Added: PUT /instance-pool/{id}
  • Added: DELETE /instance-pool/{id}
  • Added: PUT /instance-pool/{id}:evict
  • Added: GET /elastic-ip/{id}
API structure has changed on
  • Updated: GET /sks-cluster
  • Response modified: 200
  • Updated: POST /sks-cluster
  • Body attribute added: cni
  • Body attribute modified: addons
  • Updated: GET /sks-cluster/{id}
  • Response modified: 200
  • Body attribute added: cni
  • Body attribute modified: addons
  • Updated: PUT /sks-cluster/{id}
  • Body attribute added: cni
  • Body attribute modified: addons
  • Updated: PUT /sks-cluster/{id}/upgrade
  • Body attribute added: cni
  • Body attribute modified: addons
API structure has changed on
  • Updated: GET /sks-cluster
  • Response modified: 200
  • Updated: POST /sks-cluster
  • Body attribute added: level
  • Updated: GET /sks-cluster/{id}
  • Response modified: 200
  • Body attribute added: level
  • Updated: PUT /sks-cluster/{id}
  • Body attribute added: level
  • Updated: PUT /sks-cluster/{id}/upgrade
  • Body attribute added: level
API structure has changed on
  • Updated: GET /sks-cluster
  • Response modified: 200
  • Updated: POST /sks-cluster
  • Body attribute added: addons
  • Body attribute removed: enable-exoscale-cloud-controller
  • Updated: GET /sks-cluster/{id}
  • Response modified: 200
  • Body attribute added: addons
  • Body attribute removed: enable-exoscale-cloud-controller
  • Updated: PUT /sks-cluster/{id}
  • Body attribute added: addons
  • Body attribute removed: enable-exoscale-cloud-controller
  • Added: PUT /sks-cluster/{id}/upgrade
  • Added: GET /ssh-key/{name}
API structure has changed on
  • Updated: GET /load-balancer/{id}/service/{service-id}
  • Response modified: 200
  • Updated: GET /load-balancer
  • Response modified: 200
  • Updated: POST /load-balancer
  • Updated: POST /load-balancer/{id}/service
  • Updated: GET /load-balancer/{id}
  • Response modified: 200
  • Updated: GET /sks-cluster/{id}/nodepool/{sks-nodepool-id}
  • Response modified: 200
  • Updated: PUT /sks-cluster/{id}/nodepool/{sks-nodepool-id}
  • Updated: PUT /sks-cluster/{id}/nodepool/{sks-nodepool-id}:scale
  • Updated: GET /sks-cluster
  • Response modified: 200
  • Updated: POST /sks-cluster
  • Updated: GET /sks-cluster/{id}
  • Response modified: 200
  • Updated: PUT /sks-cluster/{id}
  • Updated: POST /sks-cluster/{id}/nodepool
API structure has changed on
  • Added: GET /sks-cluster-version
API structure has changed on
  • Added: POST /anti-affinity-group
  • Added: DELETE /anti-affinity-group/{id}
API structure has changed on
  • Removed: DELETE /security-group/{id}/rules/{rule-id}
  • Removed: GET /security-group
  • Removed: POST /security-group
  • Removed: GET /security-group/{id}
  • Removed: DELETE /security-group/{id}
  • Removed: POST /security-group/{id}/rules
  • Removed: GET /instance-type/{id}
  • Removed: GET /instance-type
  • Removed: POST /instance/{id}:create-snapshot
  • Removed: POST /instance
  • Removed: POST /snapshot/{id}:export
  • Removed: GET /snapshot/{id}
  • Removed: DELETE /snapshot/{id}
  • Removed: GET /snapshot
  • Removed: GET /zone
  • Removed: GET /operation/{id}
  • Removed: GET /template/{id}
  • Removed: DELETE /template/{id}
  • Removed: GET /template
  • Removed: POST /template
  • Updated: GET /sks-cluster/{id}/nodepool/{sks-nodepool-id}
  • Response modified: 200
  • Body attribute added: anti-affinity-groups
  • Updated: PUT /sks-cluster/{id}/nodepool/{sks-nodepool-id}
  • Body attribute added: anti-affinity-groups
  • Updated: PUT /sks-cluster/{id}/nodepool/{sks-nodepool-id}:scale
  • Body attribute added: anti-affinity-groups
  • Added: PUT /sks-cluster/{id}/nodepool/{sks-nodepool-id}:evict
  • Updated: GET /sks-cluster
  • Response modified: 200
  • Updated: POST /sks-cluster
  • Updated: GET /sks-cluster/{id}
  • Response modified: 200
  • Updated: PUT /sks-cluster/{id}
  • Updated: POST /sks-cluster/{id}/nodepool
  • Body attribute added: anti-affinity-groups
  • Removed: GET /private-network
  • Removed: POST /private-network
  • Removed: GET /private-network/{id}
  • Removed: PUT /private-network/{id}
  • Removed: DELETE /private-network/{id}
  • Added: POST /instance/{id}:create-snapshot
  • Added: POST /instance
  • Added: GET /anti-affinity-group
  • Added: GET /anti-affinity-group/{id}
  • Added: DELETE /security-group/{id}/rules/{rule-id}
  • Added: GET /security-group
  • Added: POST /security-group
  • Added: GET /security-group/{id}
  • Added: DELETE /security-group/{id}
  • Added: POST /security-group/{id}/rules
  • Added: GET /instance-type/{id}
  • Added: GET /instance-type
  • Added: GET /zone
  • Added: GET /private-network
  • Added: POST /private-network
  • Added: GET /private-network/{id}
  • Added: PUT /private-network/{id}
  • Added: DELETE /private-network/{id}
  • Added: POST /snapshot/{id}:export
  • Added: GET /snapshot/{id}
  • Added: DELETE /snapshot/{id}
  • Added: GET /snapshot
  • Added: GET /operation/{id}
  • Added: GET /template/{id}
  • Added: DELETE /template/{id}
  • Added: GET /template
  • Added: POST /template
API structure has changed on
  • Removed: PUT /sks-cluster/{id}/nodepool/{sks-nodepool-id}:evict
API structure has changed on
  • Updated: GET /sks-cluster
  • Response modified: 200
  • Updated: POST /sks-cluster
  • Body attribute added: enable-exoscale-cloud-controller
  • Updated: GET /sks-cluster/{id}
  • Response modified: 200
  • Body attribute added: enable-exoscale-cloud-controller
  • Updated: PUT /sks-cluster/{id}
  • Body attribute added: enable-exoscale-cloud-controller
API structure has changed on
  • Removed: GET /private-network
  • Added: GET /private-network
  • Added: GET /private-network/{id}
  • Removed: GET /private-network/{id}
API structure has changed on
  • Updated: POST /sks-cluster-kubeconfig/{id}
  • Body attribute added: groups
  • Body attribute removed: roles
  • Added: PUT /sks-cluster/{id}/nodepool/{sks-nodepool-id}:evict
  • Updated: GET /sks-cluster
  • Response modified: 200
  • Updated: POST /sks-cluster
  • Body attribute added: nodepools
  • Body attribute removed: sks-nodepools
  • Updated: GET /sks-cluster/{id}
  • Response modified: 200
  • Body attribute added: nodepools
  • Body attribute removed: sks-nodepools
  • Updated: PUT /sks-cluster/{id}
  • Body attribute added: nodepools
  • Body attribute removed: sks-nodepools
  • Removed: GET /sks-cluster/{id}/nodepool
  • Added: GET /private-network
  • Added: POST /private-network
  • Added: PUT /private-network/{id}
  • Added: DELETE /private-network/{id}
  • Added: GET /private-network/{id}
API structure has changed on
  • Updated: POST /instance/{instance-id}:revert-snapshot
  • URL parameter added: instance-id
  • URL parameter removed: id
API structure has changed on
  • Updated: GET /template/{id}
  • Response modified: 200
  • Body attribute added: size
  • Updated: GET /template
  • Response modified: 200
  • Updated: POST /template
  • Body attribute added: size
  • Updated: GET /sks-cluster/{id}/nodepool/{sks-nodepool-id}
  • Response modified: 200
  • Updated: PUT /sks-cluster/{id}/nodepool/{sks-nodepool-id}
  • Updated: PUT /sks-cluster/{id}/nodepool/{sks-nodepool-id}:scale
  • Updated: GET /sks-cluster
  • Response modified: 200
  • Updated: POST /sks-cluster
  • Updated: GET /sks-cluster/{id}
  • Response modified: 200
  • Updated: PUT /sks-cluster/{id}
  • Updated: GET /sks-cluster/{id}/nodepool
  • Response modified: 200
  • Updated: POST /sks-cluster/{id}/nodepool
API structure has changed on
API structure has changed on
API structure has changed on
  • Added: POST /sks-cluster-kubeconfig/{id}
  • Added: GET /sks-cluster/{id}/nodepool/{sks-nodepool-id}
  • Added: PUT /sks-cluster/{id}/nodepool/{sks-nodepool-id}
  • Added: DELETE /sks-cluster/{id}/nodepool/{sks-nodepool-id}
  • Added: PUT /sks-cluster/{id}/nodepool/{sks-nodepool-id}:scale
  • Added: GET /sks-cluster
  • Added: POST /sks-cluster
  • Added: GET /sks-cluster/{id}
  • Added: PUT /sks-cluster/{id}
  • Added: DELETE /sks-cluster/{id}
  • Added: GET /sks-cluster/{id}/nodepool
  • Added: POST /sks-cluster/{id}/nodepool
API structure has changed on
API structure has changed on
  • Updated: GET /instance-pool
  • Response modified: 200
  • Updated: POST /instance-pool
  • Updated: GET /instance-pool/{id}
  • Response modified: 200
  • Updated: PUT /instance-pool/{id}
  • Updated: GET /snapshot/{id}
  • Response modified: 200
  • Body attribute added: export
  • Updated: GET /snapshot
  • Response modified: 200
  • Updated: GET /template/{id}
  • Response modified: 200
  • Body attributes added: ssh-key-enabled, checksum
  • Body attribute removed: sshkey-enabled
  • Added: DELETE /template/{id}
  • Added: GET /template
  • Added: POST /template
API structure has changed on
  • Updated: GET /security-group
  • Response modified: 200
  • Updated: POST /security-group
  • Updated: GET /security-group/{id}
  • Response modified: 200
  • Updated: POST /security-group/{id}/rules
  • Body attributes modified: end-port, start-port
  • Updated: GET /instance-pool
  • Response modified: 200
  • Updated: POST /instance-pool
  • Updated: GET /instance-pool/{id}
  • Response modified: 200
  • Updated: PUT /instance-pool/{id}
API structure has changed on
  • Added: DELETE /security-group/{id}/rules/{rule-id}
  • Added: GET /security-group
  • Added: POST /security-group
  • Added: GET /security-group/{id}
  • Added: DELETE /security-group/{id}
  • Added: POST /security-group/{id}/rules
  • Removed: GET /snapshot/{id}:export
  • Removed: POST /snapshot/{id}:export
  • Removed: GET /snapshot/{id}
  • Removed: DELETE /snapshot/{id}
  • Removed: GET /snapshot
  • Removed: POST /instance-pool
  • Removed: GET /instance-pool/{id}
  • Removed: POST /instance/{id}:create-snapshot
  • Removed: POST /instance
  • Removed: DELETE /security-group/{id}/rules/{rule-id}
  • Removed: GET /security-group
  • Removed: POST /security-group
  • Removed: GET /security-group/{id}
  • Removed: DELETE /security-group/{id}
  • Removed: POST /security-group/{id}/rules
  • Removed: GET /instance-type/{id}
  • Removed: GET /instance-type
  • Removed: GET /template/{id}
  • Added: GET /instance-pool
  • Added: POST /instance-pool
  • Added: GET /instance-pool/{id}
  • Added: PUT /instance-pool/{id}
  • Added: DELETE /instance-pool/{id}
  • Added: POST /instance-pool/{id}:evict
  • Added: POST /instance/{id}:create-snapshot
  • Added: POST /instance
  • Added: GET /snapshot/{id}:export
  • Added: POST /snapshot/{id}:export
  • Added: GET /snapshot/{id}
  • Added: DELETE /snapshot/{id}
  • Added: GET /snapshot
  • Added: GET /zone
  • Added: GET /operation/{id}
  • Added: GET /template/{id}
  • Added: GET /instance-type/{id}
  • Added: GET /instance-type
API structure has changed on
API documentation has been created on