System
https://api.example.com
/api/v1/system/health
Health Check
Health check endpoint for monitoring Checks: - API server status - PostgreSQL connection - Redis connection - RabbitMQ connection Returns: Service status information
200Successful Response
curl -X GET 'https://api.example.com/api/v1/system/health' \
-H 'Authorization: Bearer '
import httpx
resp = httpx.get(
"https://api.example.com/api/v1/system/health",
headers={"Authorization": "Bearer "},
)
resp.raise_for_status()
print(resp.json())
const resp = await fetch("https://api.example.com/api/v1/system/health", {
method: "GET",
headers: { "Authorization": "Bearer " }
});
const data = await resp.json();
console.log(data);
package main
import (
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.example.com/api/v1/system/health", nil)
req.Header.Set("Authorization", "Bearer ")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}
/api/v1/system/queue-stats
Get Queue Stats
Get queue statistics Returns: Current queue depths for all job types
200Successful Response
curl -X GET 'https://api.example.com/api/v1/system/queue-stats' \
-H 'Authorization: Bearer '
import httpx
resp = httpx.get(
"https://api.example.com/api/v1/system/queue-stats",
headers={"Authorization": "Bearer "},
)
resp.raise_for_status()
print(resp.json())
const resp = await fetch("https://api.example.com/api/v1/system/queue-stats", {
method: "GET",
headers: { "Authorization": "Bearer " }
});
const data = await resp.json();
console.log(data);
package main
import (
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.example.com/api/v1/system/queue-stats", nil)
req.Header.Set("Authorization", "Bearer ")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}
/api/v1/system/credential-health
Credential Health
Count active clients missing Fernet-encrypted credentials. `missing_encrypted_credentials` must stay at 0 — any non-zero value means one or more active clients cannot have their Bearer token reconstructed by the scheduler, so their WindMill campaigns will be skipped (and the scheduler will emit ERROR logs every cycle until fixed). Run `python -m scripts.backfill_missing_encrypted_credentials` to rotate.
200Successful Response
curl -X GET 'https://api.example.com/api/v1/system/credential-health' \
-H 'Authorization: Bearer '
import httpx
resp = httpx.get(
"https://api.example.com/api/v1/system/credential-health",
headers={"Authorization": "Bearer "},
)
resp.raise_for_status()
print(resp.json())
const resp = await fetch("https://api.example.com/api/v1/system/credential-health", {
method: "GET",
headers: { "Authorization": "Bearer " }
});
const data = await resp.json();
console.log(data);
package main
import (
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.example.com/api/v1/system/credential-health", nil)
req.Header.Set("Authorization", "Bearer ")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}
/api/v1/system/info
Get System Info
Get system information Returns: API configuration and version information
200Successful Response
curl -X GET 'https://api.example.com/api/v1/system/info' \
-H 'Authorization: Bearer '
import httpx
resp = httpx.get(
"https://api.example.com/api/v1/system/info",
headers={"Authorization": "Bearer "},
)
resp.raise_for_status()
print(resp.json())
const resp = await fetch("https://api.example.com/api/v1/system/info", {
method: "GET",
headers: { "Authorization": "Bearer " }
});
const data = await resp.json();
console.log(data);
package main
import (
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.example.com/api/v1/system/info", nil)
req.Header.Set("Authorization", "Bearer ")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}