Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
openapi: 3.2.0
info:
title: certdesk Security API
version: 1.8.0
description: 'TLS/SSL certificate diagnostics with a verdict: status OK | WARN | CRITICAL | UNKNOWN, judged from the certificate chain the server actually serves — measured from Korean point A (full chain, CRL revocation) plus point B and an overseas point on the Globalping public measurement network — verification, expiry, renewal point, revocation (CRL), chain, plus security grade, TLS error explanations and free expiry monitoring by email (double opt-in). If the server cannot be measured the status is UNKNOWN; CT logs are then shown only as an estimate and days left is null. No API key. Limit: 30 requests per minute per IP; results cached per domain for 10 minutes (security: 30 minutes). Free and best-effort. Docs: https://certdesk.dev/en/api/ · MCP server: https://certdesk.dev/mcp'
contact:
email: hello@certdesk.dev
url: https://certdesk.dev/en/api/
servers:
- url: https://certdesk.dev/api/v1
tags:
- name: Security
paths:
/security:
get:
operationId: checkSecurity
summary: Web server security grade
description: TLS protocol versions (legacy 1.0/1.1 detection), security headers, HTTP→HTTPS redirect and key/signature strength. No port scanning.
parameters:
- $ref: '#/components/parameters/domain'
- $ref: '#/components/parameters/client'
responses:
'200':
description: Grade and checks
content:
application/json:
schema:
type: object
properties:
domain:
type: string
grade:
type: string
enum:
- A
- A-
- B
- C
- D
checks:
type: array
items:
type: object
properties:
id:
type: string
level:
type: string
enum:
- pass
- warn
- fail
detail:
type: string
description: Korean text
'400':
$ref: '#/components/responses/Error'
'429':
$ref: '#/components/responses/RateLimited'
tags:
- Security
components:
responses:
Error:
description: Invalid input
content:
application/json:
schema:
type: object
properties:
error:
type: string
code:
type: string
description: EMPTY, INVALID_DOMAIN, INVALID_PORT, PORT_UNSUPPORTED, IP_LITERAL, PRIVATE_ADDRESS (400); MEASURE_LIMIT, FRESH_LIMIT (429)
RateLimited:
description: More than 30 requests per minute from this IP
headers:
retry-after:
schema:
type: integer
parameters:
client:
name: client
in: query
required: false
description: Optional name of your app or tool, used only for aggregate usage counts
schema:
type: string
domain:
name: domain
in: query
required: true
schema:
type: string
examples:
- example.com