---
title: "Ssl Check"
method: POST
path: "/public/tools/ssl-check"
tags: ["Tools (public)"]
---

# Ssl Check

`POST /public/tools/ssl-check`

## Request

- Base URL: `https://api.fettle.sh` (the document declares no server; this is the origin it was published from)
- URL: `https://api.fettle.sh/public/tools/ssl-check`
- Auth: none declared

Check a host's TLS certificate.

Returns the issuer, validity window, days left and the certificate chain.
A host that cannot be reached is reported in the body, not as an error.

## Request body

- SslCheckRequest: Body of ``POST /public/tools/ssl-check``.
  - `host` string, required
  - `port` integer

## Response `200`

Successful Response

- SslCheckResponse: Certificate facts for one host, or an honest "no handshake" answer.
  - `host` string, required
  - `port` integer, required
  - `resolved_ip` string, required
  - `reachable` boolean, required
  - `valid` boolean, required
  - `probe_error` string, nullable
  - `verify_error` string, nullable
  - `tls_version` string, nullable
  - `cipher` string, nullable
  - `subject_common_name` string, nullable
  - `subject_alternative_names` string[]
  - `issuer` SslIssuer
    - `common_name` string, nullable
    - `organization` string, nullable
  - `not_before` string, date-time, nullable
  - `not_after` string, date-time, nullable
  - `days_left` integer, nullable
  - `chain` SslChainLink[]
    - `subject_common_name` string, nullable
    - `issuer_common_name` string, nullable
    - `not_after` string, date-time, required
  - `checked_at` string, date-time, required

## Other responses

- `422`: The target is malformed or cannot be checked (non-global address, disallowed port, unresolvable host), or the request body itself failed validation.
- `503`: This tool is temporarily disabled by the operator kill switch.

---

[API](https://skmtc.dev/fettle/apis/fettle-sh.md) · [All operations](https://skmtc.dev/fettle/apis/fettle-sh/llms.txt) · [OpenAPI document](https://skmtc.dev/fettle/apis/fettle-sh/revisions/f32c8a18606f?raw)
