Try our new documentation site (beta).
Next: Using Remote Services with Up: Programming with Remote Services Previous: Distributed Algorithm Considerations
Cluster REST API
Each node in the cluster also exposes a REST API in order to support advanced integration. The API follows standard REST principles and can be used in various languages and tools (Java, Python, Node, curl...).
The base URL of the API is the node address followed by the API prefix /api/v1. For example, if a node is runnning on server1 using HTTP on the default port, the base URL will be:
http://server1/api/v1If it is using HTTPS on a custom port 61000, the base URL will be
https://server1:61000/api/v1
The API is composed of several endpoints. In order to access an API endpoint, you will also need to provide a the password in the header X-GUROBI-CSPASSWORD. The password can be the client or administrator password depending on the endpoint.
We distinguish between the cluster and the node endpoints. Cluster endpoints provide cluster-wide APIs and any of the nodes from the same cluster can be used. On the other hand, node endpoints provide node specific APIs, for example to manage the configuration of a node or access a running or recently completed job on a specific node. Here is a summary of the cluster endpoints:
- GET /cluster/licenses
- Lists the licenses
- GET /cluster/nodes
- Lists the nodes
- GET /cluster/jobs
- Lists the jobs
- GET /cluster/jobs/id
- Returns a job description
- DELETE /cluster/jobs/id/processing
- Aborts a job - Administrator password is required.
Here is a summary of the node endpoints:
- GET /ping
- Pings a node
- GET /config
- Gets current configuration
- POST /config
- Updates the configuration - Administrator password is required.
- GET /jobs/id/log
- Returns the log of an active job
- GET /jobs/id/metrics
- Returns the metrics of an active job
- GET /jobs/id/parameters
- Returns the parameters of an active job
The detailed and interactive documentation is also provided using the Swagger format and available directly on a node, for example:
http://server1/swagger.html