{"openapi":"3.1.0","info":{"title":"SSL Certificate API","version":"1.0.0","description":"Check any website's SSL/TLS certificate as an API. Pass a domain and the service performs a live TLS handshake and returns the certificate's subject and issuer, the validity window, the exact number of days until it expires, whether it is currently valid and trusted by a standard CA chain, the negotiated TLS protocol, serial number, SHA-256 fingerprint, key size and the full list of Subject Alternative Names (SANs). A lean expiry endpoint returns a simple ok / expiring_soon / expired status, perfect for uptime and certificate-expiry monitoring, dashboards, CI checks and security tooling. Self-contained — no third-party service. IP addresses and internal hosts are not supported.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/sslcheck-api","description":"oanor gateway"}],"tags":[{"name":"SSL"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/check":{"get":{"operationId":"get_v1_check","tags":["SSL"],"summary":"Full certificate details for a domain","description":"","parameters":[{"name":"domain","in":"query","required":true,"description":"Domain to check, e.g. github.com","schema":{"type":"string"},"example":"github.com"},{"name":"port","in":"query","required":false,"description":"TLS port (default 443)","schema":{"type":"string"},"example":"443"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"certificate":{"port":443,"domain":"github.com","issuer":{"common_name":"Sectigo Public Server Authentication CA DV E36","organization":"Sectigo Limited"},"expired":false,"subject":{"common_name":"github.com"},"key_bits":256,"valid_to":"2026-08-02T23:59:59.000Z","valid_from":"2026-05-05T00:00:00.000Z","self_signed":false,"tls_protocol":"TLSv1.3","chain_trusted":true,"not_yet_valid":false,"serial_number":"E7CECC3B13FB3B7B8A46EA8CD0AEB71C","days_remaining":63,"subject_alt_names":["github.com","www.github.com"],"fingerprint_sha256":"A7:B8:10:34:CD:43:95:51:C5:0A:29:B5:43:55:25:4A:84:94:2A:0A:99:0C:1A:9E:12:85:6C:85:5B:64:B6:5F"}},"meta":{"timestamp":"2026-05-31T11:14:11.369Z","request_id":"7b0203c0-d89b-4ed1-94ff-48d095c6e455"},"status":"ok","message":"Certificate checked","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/expiry":{"get":{"operationId":"get_v1_expiry","tags":["SSL"],"summary":"Lean expiry status (for monitoring)","description":"","parameters":[{"name":"domain","in":"query","required":true,"description":"Domain to check, e.g. github.com","schema":{"type":"string"},"example":"github.com"},{"name":"port","in":"query","required":false,"description":"TLS port (default 443)","schema":{"type":"string"},"example":"443"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"port":443,"domain":"github.com","status":"ok","expired":false,"valid_to":"2026-08-02T23:59:59.000Z","chain_trusted":true,"days_remaining":63},"meta":{"timestamp":"2026-05-31T11:14:11.456Z","request_id":"8e2ff3ee-b942-44e3-8fc3-9da17b20f312"},"status":"ok","message":"Expiry checked","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Service info","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Inspect any HTTPS host's TLS certificate by direct handshake. /v1/check?domain= returns the full certificate (issuer, subject, validity, days remaining, SANs, chain trust, fingerprint); /v1/expiry?domain= returns a lean expiry status (ok / expiring_soon / expired) for monitoring. IP addresses and internal hosts are not supported.","service":"SSL/TLS certificate checker","endpoints":["/v1/check","/v1/expiry","/v1/meta"]},"meta":{"timestamp":"2026-05-31T11:14:11.534Z","request_id":"ef6f16fe-6405-4634-866c-006a0e36f698"},"status":"ok","message":"Meta retrieved","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":3420,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":395,"monthly_call_quota":47600,"rps_limit":8,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":1205,"monthly_call_quota":236000,"rps_limit":20,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":3290,"monthly_call_quota":1188000,"rps_limit":50,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/sslcheck-api"}