API Reference

SSL Certificate Checker

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.

certificate chain validationexpiry alertsprotocol detectionSANs listing

Endpoint

POST /v1/ssl/check
Authentication: Include your API key in the X-API-Key header with every request. All requests go through the API gateway which handles authentication, rate limiting, and usage tracking.
Open Swagger UI (interactive docs)

Request

{
  "hostname": "example.com",
  "port": 443
}

Request Fields

FieldTypeDescription
hostname string Target hostname to inspect
port integer Target port number

Response

{
  "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
}

Response Fields

FieldTypeDescription
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

Error Codes

StatusMeaning
200Request completed successfully
400Bad request — invalid or missing parameters
401Missing or invalid X-API-Key header
429Rate limit exceeded — check Retry-After header
500Internal server error

Common Error Scenarios

400 Invalid hostname

Request 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 timeout

Request 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.

Code Examples

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"
  }
}

API Reference