Getting started with WEKA REST API
The WEKA system provides a RESTful API, enabling you to automate interactions with the WEKA system and integrate them into your workflows or monitoring systems.
It is essential to have a solid understanding of the WEKA CLI commands and parameters related to the REST API functions.
For example, to create a filesystem using the
POST /fileSystems
function, see the related documentation in Create a filesystem (using the CLI).You can access the REST API using one of the following methods:
Direct access
Through the cluster
Through the WEKA GUI
WEKA static API
Using port 14000 and the URL
/api/v2
.By browsing to:
https://<cluster name>:14000/api/v2/docs
Select the three dots on the upper right menu and select REST API.

Access the REST API through the WEKA GUI
In addition, you can create a client code using the OpenAPI client generator and the
.json
file.
api.docs.weka.io

Explore the REST API through the GUI
To use the WEKA REST API, provide an access or refresh token.
You can generate an access or refresh for the REST API usage through the CLI or the GUI.
SeeObtain authentication tokens.
You can also call the login API to obtain access or refresh tokens through the API, providing it with a
username
and password
. If you already obtained a refresh token, you can use the
login/refresh
API to refresh the access token.Login
Refresh
Python example calling the login API
import requests
url = "https://weka01:14000/api/v2/login"
payload="{\n \"username\": \"admin\",\n \"password\": \"admin\"\n}"
headers = {
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
Python example calling the login refresh API
import requests
url = "https://weka01:14000/api/v2/login/refresh"
payload="{\n \"refresh_token\": \"REPLACE-WITH-REFRESH-TOKEN\"\n}"
headers = {
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
The response includes the access token (valid for 5 minutes) to use in the other APIs requiring token authentication, along with the refresh token (valid for 1 year), for getting additional access tokens without using the username/password.
Login/Refresh Response
{
"data": [
{
"access_token": "ACCESS-TOKEN",
"token_type": "Bearer",
"expires_in": 300,
"refresh_token": "REFRESH-TOKEN"
}
]
}
Once you obtain an access token, you can call WEKA REST API commands with it. For example, you can query the cluster status:
Python example calling cluster status API
import requests
url = "https://weka01:14000/api/v2/cluster"
payload={}
headers = {
'Authorization': 'Bearer REPLACE-WITH-ACCESS-TOKEN'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
Related topics