SSL certificate check

Current TLS certificates for a domain from Certificate Transparency logs, with days until expiry.

TLS/SSL certificate check from public Certificate Transparency logs (Cert Spotter, crt.sh fallback): currently valid certificates for a hostname, newest first, with issuer, validity dates, days left, SAN names and an expiring-within-14-days flag. For expiry monitoring and phishing/subdomain vetting.

$0.005 per call in USDC on Base via x402, or pay by card with prepaid credits (5 credits) · 1 free call per caller · no signup · Listed on PayAPI Market (this route is not PayAPI-verified yet; 7 other routes are, each by one settled test payment)

GET https://freetier-agent-api.pages.dev/api/ssl-cert

When to use it

Use ssl-cert to check TLS certificate expiry and issuer for a hostname from public CT logs.

Parameters

NameTypeDescription
domain requiredstringexact hostname, e.g. www.example.com

Example output (real response, trimmed)

{
 "domain": "example.com",
 "has_valid_cert": true,
 "newest": {
  "issuer": "SSL.com",
  "not_before": "2026-09-26T22:49:11Z",
  "not_after": "2026-12-25T22:56:35Z",
  "dns_names": [
   "*.example.com",
   "example.com"
  ],
  "sha256": "85ca6ab068e9bcce88b6c4aa3c47f7d17228134a457f870d3800e6223a0df07a",
  "dns_names_total": 2,
  "days_left": 61
 },
 "newest_days_left": 61,
 "expiring_within_14d": false,
 "valid_count": 13,
 "issuers": [
  "SSL.com",
  "Sectigo"
 ],
 "certs": [
  {
   "issuer": "SSL.com",
   "not_before": "2026-09-26T22:49:11Z",
   "not_after": "2026-12-25T22:56:35Z",
   "dns_names": [
    "*.example.com",
    "example.com"
   ],
   "sha256": "85ca6ab068e9bcce88b6c4aa3c47f7d17228134a457f870d3800e6223a0df07a",
   "dns_names_total": 2,
   "days_left": 61
  },
  {
   "issuer": "SSL.com",
   "not_before": "2026-09-26T22:48:57Z",
   "not_after": "2026-12-25T22:56:35Z",
   "dns_names": [
    "*.example.com",
    "example.com"
   ],
   "sha256": "8355fddfbed74907fff8ad99b4844c3f3a4644261e6f339a12f9f38d56b19502",
   "dns_names_total": 2,
   "days_left": 61
  }
 ],
 "note": "Certificates logged in public Certificate Transparency logs that cover this exact name and are valid now (newest first). The certificate a given server prese...",
 "checked_at": "2026-10-25T22:37:38.437Z",
 "sources": [
  {
   "name": "SSLMate Cert Spotter CT API",
   "url": "https://sslmate.com/ct_search_api/"
  }
 ]
}

Try it

Free call (no wallet needed)

curl -s "https://freetier-agent-api.pages.dev/api/ssl-cert?domain=example.com"

Pay by card (no wallet): prepaid credits

Buy a credit pack on Gumroad (1,000 credits $3), then send your license key. The X-Credits-Remaining response header shows your balance; failed calls are not charged.

curl -s "https://freetier-agent-api.pages.dev/api/ssl-cert?domain=example.com" \
  -H 'X-License-Key: YOUR-LICENSE-KEY'

JavaScript / TypeScript (@x402/fetch)

// npm i @x402/fetch @x402/evm viem
import { wrapFetchWithPaymentFromConfig } from "@x402/fetch";
import { ExactEvmScheme } from "@x402/evm";
import { privateKeyToAccount } from "viem/accounts";

const account = privateKeyToAccount(process.env.EVM_PRIVATE_KEY); // wallet with USDC on Base
const fetchWithPayment = wrapFetchWithPaymentFromConfig(fetch, {
  schemes: [{ network: "eip155:8453", client: new ExactEvmScheme(account) }],
});
const res = await fetchWithPayment("https://freetier-agent-api.pages.dev/api/ssl-cert?domain=example.com");
console.log(await res.json());

Python (x402 + httpx)

# pip install "x402[httpx,evm]" eth-account
import asyncio, os
from eth_account import Account
from x402 import x402Client
from x402.http.clients import x402HttpxClient
from x402.mechanisms.evm import EthAccountSigner
from x402.mechanisms.evm.exact.register import register_exact_evm_client

async def main():
    client = x402Client()
    register_exact_evm_client(client, EthAccountSigner(Account.from_key(os.environ["EVM_PRIVATE_KEY"])))
    async with x402HttpxClient(client) as http:
        r = await http.get("https://freetier-agent-api.pages.dev/api/ssl-cert?domain=example.com")
        print(r.json())

asyncio.run(main())

A bare request without parameters returns the HTTP 402 payment challenge (x402 v2 in the PAYMENT-REQUIRED header, v1 in the body). Invalid input gets a 400 before any payment.

Billing policy

Failed calls are never charged. Failed calls are never charged: the payment is verified first, the request runs, and the payment is settled only if it succeeded. Errors (4xx/5xx) are not settled, and invalid input is rejected before any payment or free call.

Uptime and latency

Independent monitoring of this endpoint: 402index service page (health, 30-day uptime, p50 latency).

Also available as


Agent Extraction API by FreeTier Kits · Terms · llms.txt · /.well-known/x402 · MCP: https://freetier-agent-api.pages.dev/mcp · Contact: tec@mail.grokbot.com
This site and its texts were written with AI assistance and reviewed for accuracy; example outputs are real responses from the API.