Health
curl --request GET \
--url https://api.tic.io/free/health \
--header 'x-api-key: <api-key>'import requests
url = "https://api.tic.io/free/health"
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('https://api.tic.io/free/health', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.tic.io/free/health",
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 := "https://api.tic.io/free/health"
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("https://api.tic.io/free/health")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tic.io/free/health")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"ok": true,
"upcomingServiceWindows": [
{
"startDateUtc": "2023-11-07T05:31:56Z",
"endDateUtc": "2023-11-07T05:31:56Z",
"notes": "<string>",
"lastUpdatedAtUtc": "2023-11-07T05:31:56Z"
}
],
"limits": {
"rateLimitReset": 123,
"rateLimit": 123,
"rateLimitRemaining": 123,
"rateLimitMinute": 123,
"rateLimitIP": 123
}
}Free
Health
Aggregate health of the LENS API and its upstream services (Typesense, Redis, database). Returns 200 when all critical services are reachable and 503 when any is not. Anonymous callers receive service status and upcoming SLA windows; authenticated callers additionally receive their current rate-limit state.
GET
/
free
/
health
Health
curl --request GET \
--url https://api.tic.io/free/health \
--header 'x-api-key: <api-key>'import requests
url = "https://api.tic.io/free/health"
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('https://api.tic.io/free/health', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.tic.io/free/health",
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 := "https://api.tic.io/free/health"
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("https://api.tic.io/free/health")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tic.io/free/health")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"ok": true,
"upcomingServiceWindows": [
{
"startDateUtc": "2023-11-07T05:31:56Z",
"endDateUtc": "2023-11-07T05:31:56Z",
"notes": "<string>",
"lastUpdatedAtUtc": "2023-11-07T05:31:56Z"
}
],
"limits": {
"rateLimitReset": 123,
"rateLimit": 123,
"rateLimitRemaining": 123,
"rateLimitMinute": 123,
"rateLimitIP": 123
}
}⌘I