curl --request GET \
--url http://localhost:8080/api/v1/version \
--header 'x-api-key: <api-key>'import requests
url = "http://localhost:8080/api/v1/version"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('http://localhost:8080/api/v1/version', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "8080",
CURLOPT_URL => "http://localhost:8080/api/v1/version",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "http://localhost:8080/api/v1/version"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("http://localhost:8080/api/v1/version")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:8080/api/v1/version")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"version": "<string>",
"gitHeadCommit": "<string>",
"builtAtMillis": "<string>",
"environment": "<string>",
"environmentLabel": "<string>",
"multiTenant": "<string>",
"hosted": "<string>",
"useUserAuth": "<string>",
"oidcEnabled": "<string>",
"useApiKeys": "<string>",
"useAuditLog": "<string>",
"useAgentPolicy": "<string>",
"recoveryAgentEnabled": "<string>",
"postgresDatabase": "<string>",
"mongodbDatabase": "<string>",
"useTapRunner": "<string>",
"pipelineMaxPayloadMB": "<string>",
"pipelineMaxPayloadMBSource": "env",
"tapScriptTimeoutSeconds": "<string>",
"tapScriptTimeoutSecondsSource": "env",
"tapRunTimeoutSeconds": "<string>",
"tapRunTimeoutSecondsSource": "env"
}Get server version
curl --request GET \
--url http://localhost:8080/api/v1/version \
--header 'x-api-key: <api-key>'import requests
url = "http://localhost:8080/api/v1/version"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('http://localhost:8080/api/v1/version', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "8080",
CURLOPT_URL => "http://localhost:8080/api/v1/version",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "http://localhost:8080/api/v1/version"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("http://localhost:8080/api/v1/version")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:8080/api/v1/version")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"version": "<string>",
"gitHeadCommit": "<string>",
"builtAtMillis": "<string>",
"environment": "<string>",
"environmentLabel": "<string>",
"multiTenant": "<string>",
"hosted": "<string>",
"useUserAuth": "<string>",
"oidcEnabled": "<string>",
"useApiKeys": "<string>",
"useAuditLog": "<string>",
"useAgentPolicy": "<string>",
"recoveryAgentEnabled": "<string>",
"postgresDatabase": "<string>",
"mongodbDatabase": "<string>",
"useTapRunner": "<string>",
"pipelineMaxPayloadMB": "<string>",
"pipelineMaxPayloadMBSource": "env",
"tapScriptTimeoutSeconds": "<string>",
"tapScriptTimeoutSecondsSource": "env",
"tapRunTimeoutSeconds": "<string>",
"tapRunTimeoutSecondsSource": "env"
}Authorizations
Optional API key for authentication (enabled via application.yaml)
Response
Server version
Git commit the running jar was built from
Build time of the running jar, epoch milliseconds
Environment name (e.g., oss for self-hosted, or tenant prefix for managed hosting)
Deployment label from DATRIS_ENV (e.g. dev, qa, prod); present only when set
Whether the server is running in multi-tenant mode (true/false)
"true" only when OIDC single sign-on is effectively on (user auth on, OIDC enabled and its settings valid at startup); the login page shows "Sign in with SSO" only then. Older servers omit the field.
Canonical Postgres database name
Canonical MongoDB database name
Per-run payload disk budget in force on this install, in MB (0 = unlimited)
Where the disk budget came from - env, deprecated-alias or default
env, deprecated-alias, default Wall-clock ceiling in force for a tap test, in seconds
Where the test ceiling came from - env or default
env, default Wall-clock ceiling in force for a real or scheduled tap run, in seconds
Where the run ceiling came from - env (TAP_RUN_TIMEOUT_SECONDS), derived (unset, resolved to max(3600, tapScriptTimeoutSeconds)) or default
env, derived, default 