Health
curl --request GET \
--url https://api.tattooapi.com/health/liveimport requests
url = "https://api.tattooapi.com/health/live"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.tattooapi.com/health/live', 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.tattooapi.com/health/live",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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.tattooapi.com/health/live"
req, _ := http.NewRequest("GET", url, nil)
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.tattooapi.com/health/live")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tattooapi.com/health/live")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_bodyHealth
Check API availability and readiness before making requests.
GET
/
health
/
live
Health
curl --request GET \
--url https://api.tattooapi.com/health/liveimport requests
url = "https://api.tattooapi.com/health/live"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.tattooapi.com/health/live', 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.tattooapi.com/health/live",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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.tattooapi.com/health/live"
req, _ := http.NewRequest("GET", url, nil)
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.tattooapi.com/health/live")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tattooapi.com/health/live")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_bodyHealth endpoints do not require credentials or an
HTTP
Readiness summarizes service status without secret values. Inspect the response status as well as the HTTP code.
Examples below show only the status fields; responses may contain additional diagnostic information.
A ready response does not grant permissions, enable public writes, or prove that an end-to-end portfolio workflow has completed successfully.
api-version parameter. They return direct JSON objects rather than a success/data wrapper.
Liveness
curl "https://api.tattooapi.com/health/live"
200 indicates that the API process is responding.
Readiness
curl "https://api.tattooapi.com/health/ready"
| Response status | Meaning |
|---|---|
ready | Readiness checks passed |
degraded | The API is responding with limited readiness |
blocked | One or more required checks failed |
{ "status": "ready", "service": "tattoo-api" }
{ "status": "blocked", "service": "tattoo-api" }
Compatibility
Existing clients may use/api/v1/health/live and /api/v1/health/ready. The older /api/v1/health diagnostic endpoint has a different response format; use liveness and readiness for new integrations.Was this page helpful?
