Skip to content
Free · No API key · No signup

API Documentation

Every free tool on this site is a thin frontend over these same JSON endpoints — nothing held back. All are unauthenticated GET requests returning JSON. No account, no key.

Rate Limits

All /api/* routes are limited to 30 requests per minute per IP address. Exceeding it returns 429 Too Many Requests with a Retry-After header.

Several endpoints (CVE, CISA KEV) also proxy third-party services that enforce their own upstream limits independently of ours.

GET/api/cve

CVE Search

Search the live NIST NVD CVE database by keyword, CVE ID or severity.

ParamRequiredDescription
cveIdNoExact CVE ID, e.g. CVE-2021-44228
keywordNoFree-text keyword search
severityNoCRITICAL · HIGH · MEDIUM · LOW · NONE
pageNoZero-indexed page number (default 0)
limitNoResults per page, max 50 (default 20)
lastDaysNoOnly CVEs published in the last N days, max 120. Ignored when cveId is set.
curl "https://cyber.encse.com/api/cve?severity=CRITICAL&lastDays=7"

Response: { total, page, limit, lastDays, vulnerabilities: [{ id, description, cvssScore, severity, cweIds, references, ... }] }

⚠ Proxies services.nvd.nist.gov. Subject to NVD's own rate limits upstream — a 429 here can mean NVD itself is throttling.

GET/api/cisa-kev

CISA Known Exploited Vulnerabilities

Live CISA KEV catalog — vulnerabilities confirmed as actively exploited, with federal remediation due dates.

ParamRequiredDescription
limitNoMax entries returned, max 500 (default 100)
vendorNoFilter by vendor/project name (substring match)
searchNoFilter by CVE ID, vendor, product or name
daysNoOnly entries added within the last N days
curl "https://cyber.encse.com/api/cisa-kev?days=30&limit=50"

Response: { total, filtered, catalogVersion, dateReleased, vulnerabilities: [{ cveID, vendorProject, dateAdded, dueDate, ... }] }

GET/api/ioc-lookup

IOC Lookup

Check an IP, domain, URL or file hash against URLhaus and MalwareBazaar (abuse.ch) threat feeds.

ParamRequiredDescription
qYesIndicator to check — IP, domain, URL, or MD5/SHA-1/SHA-256 hash
curl "https://cyber.encse.com/api/ioc-lookup?q=185.220.101.45"

Response: { indicator, type, verdict: "malicious"|"clean"|"unknown", sourcesQueried, sourcesAnswered, scanned_at, sources: [{ source, ok, reason?, ... }] }

⚠ abuse.ch made API keys mandatory for URLhaus and MalwareBazaar. Without ABUSECH_AUTH_KEY configured server-side, feeds return ok:false and the verdict is "unknown" — never "clean". Treat "clean" as "not listed by the feeds that answered", not as proof an indicator is safe.

GET/api/ip-reputation

IP Reputation

Geolocation, ASN/ISP, proxy/VPN/Tor detection and AbuseIPDB abuse score for a public IP.

ParamRequiredDescription
ipYesPublic IPv4 or IPv6 address (private/loopback rejected)
curl "https://cyber.encse.com/api/ip-reputation?ip=1.1.1.1"

Response: { ip, riskLevel: "UNKNOWN"|"LOW"|"MEDIUM"|"HIGH", riskFlags: [], sourcesQueried, sourcesAnswered, geo: {...}, abuse: {...}|null, abuseipdbEnabled, geoTransport }

⚠ riskLevel is "UNKNOWN" when sourcesAnswered is 0 — never "LOW". Treat "LOW" as "no flags raised by the sources that answered", not as proof an address is safe. AbuseIPDB scoring is opt-in server-side (requires the site operator's own API key) — abuse will be null when disabled. geoTransport reports whether the upstream geolocation lookup used HTTPS: ip-api.com only serves TLS on its paid tier, so without IPAPI_PRO_KEY that lookup travels in cleartext between this server and ip-api.

GET/api/dns

DNS Lookup

Query DNS records via Cloudflare DNS-over-HTTPS.

ParamRequiredDescription
domainYesDomain name to query
typesNoComma-separated record types, e.g. A,MX,TXT (default A,MX,TXT,NS)
curl "https://cyber.encse.com/api/dns?domain=cloudflare.com&types=A,MX,TXT"

Response: { domain, results: { [type]: [{ name, type, TTL, data }] }, errors, timestamp }

GET/api/spf

SPF Checker

Validate an SPF record, parse mechanisms and check the RFC 7208 10-lookup limit.

ParamRequiredDescription
domainYesDomain name to check
curl "https://cyber.encse.com/api/spf?domain=google.com"

Response: { domain, found, record, analysis: { mechanisms, lookupCount, policy, valid }, warnings }

GET/api/dmarc

DMARC Checker

Parse DMARC policy, alignment mode, subdomain policy and reporting URIs.

ParamRequiredDescription
domainYesDomain name to check
curl "https://cyber.encse.com/api/dmarc?domain=google.com"

Response: { domain, found, record, analysis: { policy, percentage, spfAlignment, dkimAlignment, reportingUris }, warnings, recommendations }

GET/api/dkim

DKIM Checker

Retrieve and validate a DKIM public key record for a domain and selector.

ParamRequiredDescription
domainYesDomain name to check
selectorYesDKIM selector, e.g. google, selector1
curl "https://cyber.encse.com/api/dkim?domain=google.com&selector=google"

Response: { host, found, tags: { v, k, p, ... }, warnings, info, keyType }

GET/api/headers

Security Header Checker

Fetch a URL and grade its HTTP security headers (CSP, HSTS, X-Frame-Options, etc.).

ParamRequiredDescription
urlYesFull URL including scheme, e.g. https://example.com
curl "https://cyber.encse.com/api/headers?url=https://github.com"

Response: { url, finalUrl, statusCode, checks: {...}, total, passed, warned, failed, score, grade, allHeaders }

⚠ Redirects are followed one hop at a time and every hop is re-validated against the private-address guard. A warned header scores half credit, so the letter grade reflects partial configuration rather than all-or-nothing.

GET/api/ssl

SSL / TLS Checker

Perform a real TLS handshake against a host and return certificate, protocol and cipher details.

ParamRequiredDescription
hostYesHostname to connect to
portNoTCP port (default 443)
curl "https://cyber.encse.com/api/ssl?host=github.com"

Response: { host, port, subject, issuer, validFrom, validTo, daysLeft, protocol, cipher, authorized, fingerprint }

GET/api/whois

WHOIS / RDAP Lookup

Query RDAP registration data for a domain or IP address, with automatic registry fallback.

ParamRequiredDescription
qYesDomain name or IP address
curl "https://cyber.encse.com/api/whois?q=google.com"

Response: { type: "domain"|"ip", registrar|org, registered, expiration|country, nameservers|startAddress, ... }

GET/api/port-scan

Port Scanner

Real TCP connect-scan of 22 common ports against a public host. Private/loopback addresses are blocked.

ParamRequiredDescription
hostYesHostname or public IP
portsNoComma-separated custom port list, max 20 ports
curl "https://cyber.encse.com/api/port-scan?host=scanme.nmap.org"

Response: { host, scanned, open, results: [{ port, service, state }], riskFlags: [{ port, service, risk }] }

⚠ Only scan hosts you own or have explicit permission to scan. Takes up to ~10s per port batch.

GET/api/ransomware

Ransomware Tracker Proxy

Proxies ransomware.live for group profiles and recent leak-site victim posts.

ParamRequiredDescription
resourceYesgroups · recentvictims · victims
curl "https://cyber.encse.com/api/ransomware?resource=recentvictims"

Response: Passthrough of ransomware.live's JSON response for the requested resource.

⚠ Fully dependent on ransomware.live's third-party API — if it's down or has changed shape, this endpoint returns a 502 with an error message rather than fabricated data.