# Forest TLS Certificate Change Detector

> Forest TLS Certificate Change Detector is a paid API for AI agents from http--forest-gas-station-mainnet--lcjl27p8lmjs.code.run, paid per call via x402, $0.001/call, status unknown (last checked 2026-10-02).

Detects material changes in a public TLS certificate (fingerprint, issuer, SANs, validity window) by comparing a deterministic hash against a previously stored hash.

## Facts

- Endpoint: POST https://http--forest-gas-station-mainnet--lcjl27p8lmjs.code.run/tls/changed?utm_source=zero.xyz
- Price: $0.001/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/forest-tls-certificate-change-detector-a5a35d9e
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_woul3faRPrdcY7QhtpMpd

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability forest-tls-certificate-change-detector-a5a35d9e -d '<json body>'
```

Example prompt: Check whether the TLS certificate on api.example.com has changed since my last check — here's the previous hash: abc123def456, flag any changes in fingerprint, issuer, SANs, or validity window.

## When to prefer this

Use this endpoint when you need a lightweight, deterministic signal of whether a TLS certificate has materially changed — ideal for polling in monitoring workflows where handshake timing noise would produce false positives. Prefer this over a full TLS inspection endpoint when you already have a baseline hash and only need a change/no-change answer. Best for automated certificate rotation detection, security alerting pipelines, or third-party vendor cert monitoring.

## Known failure modes

- Invalid hostname format (fails pattern validation)
- Host is unreachable or DNS does not resolve
- TLS handshake fails (e.g. self-signed, expired cert blocking connection)
- previous_hash not provided — changed field returns null rather than a boolean
- Timeout during TLS probe
- Non-public or internal hostnames rejected

## How this service works

Detect material public certificate changes in fingerprint, issuer, SANs or validity window using a deterministic hash. Handshake timing noise is ignored. Base mainnet USDC

## Output

Returns a JSON object indicating whether the certificate changed (boolean or null if no previous hash), the new deterministic hash, the previous hash, a list of changed fields (e.g. fingerprint, issuer, SANs, validity window), the current certificate fingerprint, and the not_after expiry timestamp. Also includes metadata such as provider, checked_at timestamp, and cache info.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "host": {
   "type": "string",
   "pattern": "^[a-z0-9.-]+$",
   "maxLength": 253,
   "description": "Public DNS hostname to resolve."
  },
  "port": {
   "const": 443,
   "description": "TLS port to probe; only the public TLS endpoint is supported."
  },
  "previous_hash": {
   "type": "string",
   "description": "Earlier result hash used to detect a material change."
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/forest-tls-certificate-change-detector-a5a35d9e/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from http--forest-gas-station-mainnet--lcjl27p8lmjs.code.run](https://www.zero.xyz/host/http--forest-gas-station-mainnet--lcjl27p8lmjs.code.run/llms.txt)
