Inspect SSL/TLS certificates for validity, expiration, and chain issues
Inspect SSL/TLS certificates for any hostname to catch expiry, weak protocols, and chain issues before they cause outages. Automated certificate monitoring helps DevOps teams avoid unexpected downtime, maintain compliance with security standards, and ensure every endpoint serves a valid, trusted certificate.
X-API-Key header with every request.
All requests go through the API gateway which handles authentication, rate limiting, and usage tracking.
{
"hostname": "example.com",
"port": 443
}
| Field | Type | Description |
|---|---|---|
hostname |
string |
Target hostname to inspect |
port |
integer |
Target port number |
{
"hostname": "example.com",
"valid": true,
"issuer": "Let's Encrypt Authority X3",
"subject": "example.com",
"notBefore": "2026-01-01T00:00:00Z",
"notAfter": "2026-04-01T00:00:00Z",
"daysUntilExpiry": 7,
"protocol": "TLSv1.3",
"chainValid": true
}
| Field | Type | Description |
|---|---|---|
hostname |
string |
Target hostname to inspect |
valid |
boolean |
Whether the input is valid |
issuer |
string |
Field value |
subject |
string |
Field value |
notBefore |
string |
Field value |
notAfter |
string |
Field value |
daysUntilExpiry |
integer |
Field value |
protocol |
string |
Field value |
chainValid |
boolean |
Field value |
| Status | Meaning |
|---|---|
200 | Request completed successfully |
400 | Bad request — invalid or missing parameters |
401 | Missing or invalid X-API-Key header |
429 | Rate limit exceeded — check Retry-After header |
500 | Internal server error |
400 Invalid hostnameRequest that triggers this:
{"hostname": "invalid..domain", "port": 443}
Error response:
{"type": "/problems/validation-error", "title": "Invalid Hostname", "status": 400, "detail": "'invalid..domain' is not a valid hostname"}
How to fix: Use a valid hostname (e.g., example.com). Avoid special characters and consecutive dots.
503 Connection timeoutRequest that triggers this:
{"hostname": "unreachable.example.com", "port": 443}
Error response:
{"type": "/problems/service-unavailable", "title": "Connection Timeout", "status": 503, "detail": "Could not connect to unreachable.example.com:443"}
How to fix: Ensure the hostname is accessible and port 443 is open. Check firewall rules and certificate validity.
curl -X POST /v1/ssl/check \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{
"hostname": "example.com",
"port": 443
}'
// Node.js (18+) or modern browser
const response = await fetch("/v1/ssl/check", {
method: "POST",
headers: {
"X-API-Key": "YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
"hostname": "example.com",
"port": 443
}),
});
const data = await response.json();
console.log(response.status, data);
import requests
response = requests.post(
"/v1/ssl/check",
headers={
"X-API-Key": "YOUR_API_KEY",
"Content-Type": "application/json",
},
json={
"hostname": "example.com",
"port": 443
},
)
print(response.status_code)
print(response.json())
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
body := strings.NewReader(`{
"hostname": "example.com",
"port": 443
}`)
req, _ := http.NewRequest("POST", "/v1/ssl/check", body)
req.Header.Set("X-API-Key", "YOUR_API_KEY")
req.Header.Set("Content-Type", "application/json")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
data, _ := io.ReadAll(resp.Body)
fmt.Println(resp.StatusCode)
fmt.Println(string(data))
}
{
"name": "ssl_checker",
"description": "Inspect SSL/TLS certificates for validity, expiration, and chain issues",
"inputSchema": {
"type": "object",
"properties": {
"api_key": {"type": "string", "description": "Your Orovai API key"},
"request": {"type": "object", "description": "Request body"}
},
"required": ["api_key", "request"]
},
"endpoint": "/v1/ssl/check",
"method": "POST",
"headers": {
"X-API-Key": "{{api_key}}",
"Content-Type": "application/json"
}
}