Security tools. One key.
29 APIs built and run by PhylaxNet: DNS, SSL, website headers, firewall detection, email spoofing checks, file forensics, generators and more. Clean JSON, every time.
Quick start
Get a key
Buy a 1 month or 1 year key. It appears on your dashboard under API keys.
Call any API
Add your key as ?key= or send it in the X-API-Key header (safer: it stays out of logs).
Read the JSON
Every answer has ok, the result (or an error), and your usage. Add &pretty=1 to make it easy to read.
curl -H "X-API-Key: XXXXX-XXXXX-XXXXX-XXXXX" \
"https://phylaxnet.com/?tool=dnsresolver&host=example.com"{
"ok": true,
"api": "dnsresolver",
"result": {
"host": "example.com",
"ip": "93.184.215.14",
"ipv4": [
"93.184.215.14"
],
"ipv6": [
"2606:2800:21f:cb07:6820:80da:af6b:8b2c"
]
},
"usage": {
"used_this_month": 1204,
"monthly_limit": 150000,
"remaining": 148796,
"resets_at": "2026-11-01T00:00:00Z",
"key_expires_at": "2027-10-26T00:00:00Z"
},
"ms": 38
}Errors and limits
Failed calls return {"ok": false, "error": "…"} with an HTTP status: 400 bad or missing parameter · 401 missing or wrong key · 402 key expired · 403 blocked by your key's IP or User-Agent rules, or a private address · 404 unknown API · 429 monthly limit or too many requests · 502/504 the site you asked about didn't answer.
Each key has 150,000 requests per calendar month. Tools that contact other servers only ever reach public websites on ports 80 and 443. Keep your key secret: use it from your server, not in web pages people can see.
Forensics APIs take a file instead: upload it with -F "file=@name" (up to 20 MB), send it as base64 in a POST body, or pass a public url (up to 20 MB). Files are read in memory and never stored. Extra statuses: 413 file too large · 422 not the right kind of file, or damaged · 501 not available on this server.
All APIs (29)
Host to IP
Gets the IPv4 and IPv6 addresses a host name points to.
/?tool=dnsresolverParameters
| key | Your API key (or the X-API-Key header) required |
| host | Domain or host name required e.g. example.com |
Example result
{
"ok": true,
"api": "dnsresolver",
"result": {
"host": "example.com",
"ip": "93.184.215.14",
"ipv4": [
"93.184.215.14"
],
"ipv6": [
"2606:2800:21f:cb07:6820:80da:af6b:8b2c"
]
}
}IP to Host
Reverse DNS: finds the host name an IP address belongs to.
/?tool=gethostnameParameters
| key | Your API key (or the X-API-Key header) required |
| host | IPv4 or IPv6 address required e.g. 1.1.1.1 |
Example result
{
"ok": true,
"api": "gethostname",
"result": {
"ip": "1.1.1.1",
"hostname": "one.one.one.one",
"found": true
}
}Advanced DNS Checker
Looks up DNS records for a domain: A, AAAA, CNAME, MX, NS, TXT, SOA, CAA, SRV or all of them.
/?tool=dnscheckerParameters
| key | Your API key (or the X-API-Key header) required |
| domain | Domain name required e.g. example.com |
| type | Record type, or ALL (default) e.g. MX |
Example result
{
"ok": true,
"api": "dnschecker",
"result": {
"domain": "example.com",
"type": "MX",
"records": {
"MX": [
{
"priority": 0,
"value": "",
"ttl": 86400
}
]
}
}
}IP Validator
Checks whether a string is a valid IPv4 or IPv6 address and what kind it is (public, private, loopback…).
/?tool=ipvalidatorParameters
| key | Your API key (or the X-API-Key header) required |
| ip | Address to check required e.g. 8.8.8.8 |
Example result
{
"ok": true,
"api": "ipvalidator",
"result": {
"ip": "8.8.8.8",
"valid": true,
"version": 4,
"public": true,
"private": false,
"reserved": false,
"loopback": false,
"decimal": "134744072",
"reverse_pointer": "8.8.8.8.in-addr.arpa"
}
}Subnet Calculator
Works out the network, broadcast, netmask, host range and size of a subnet (IPv4 and IPv6).
/?tool=subnetcalculatorParameters
| key | Your API key (or the X-API-Key header) required |
| cidr | Network in CIDR form required e.g. 192.168.1.0/24 |
Example result
{
"ok": true,
"api": "subnetcalculator",
"result": {
"network": "192.168.1.0",
"prefix": 24,
"netmask": "255.255.255.0",
"wildcard": "0.0.0.255",
"broadcast": "192.168.1.255",
"first_host": "192.168.1.1",
"last_host": "192.168.1.254",
"total_addresses": 256,
"usable_hosts": 254
}
}What Is My IP
Returns the IP address, reverse host name and User-Agent your request came from.
/?tool=myipParameters
| key | Your API key (or the X-API-Key header) required |
Example result
{
"ok": true,
"api": "myip",
"result": {
"ip": "203.0.113.7",
"version": 4,
"hostname": "cpe-203-0-113-7.example.net",
"user_agent": "curl/8.4.0"
}
}Website Up or Down
Checks whether a website is online, with its status code and response time.
/?tool=upordownParameters
| key | Your API key (or the X-API-Key header) required |
| host | Domain or full URL required e.g. example.com |
Example result
{
"ok": true,
"api": "upordown",
"result": {
"host": "example.com",
"online": true,
"status": 200,
"response_ms": 182,
"final_url": "https://example.com/",
"redirects": 0
}
}Website Headers
Fetches the HTTP response headers a website sends back.
/?tool=getheadersParameters
| key | Your API key (or the X-API-Key header) required |
| host | Domain or full URL required e.g. example.com |
Example result
{
"ok": true,
"api": "getheaders",
"result": {
"url": "https://example.com/",
"status": 200,
"headers": {
"content-type": "text/html; charset=UTF-8",
"server": "ECS (dcb/7F84)"
}
}
}Firewall (WAF) Detector
Detects whether a website sits behind a known web application firewall or protective CDN (Cloudflare, Sucuri, Akamai, Imperva and more).
/?tool=firewalldetectorParameters
| key | Your API key (or the X-API-Key header) required |
| url | Domain or full URL required e.g. sucuri.net |
Example result
{
"ok": true,
"api": "firewalldetector",
"result": {
"url": "https://sucuri.net/",
"detected": true,
"firewall": "Sucuri",
"firewalls": [
{
"name": "Sucuri",
"type": "waf",
"evidence": [
"header x-sucuri-id"
]
}
]
}
}SSL Certificate Checker
Inspects a site’s TLS certificate: who issued it, when it expires, whether it is trusted and matches the name.
/?tool=sslcheckerParameters
| key | Your API key (or the X-API-Key header) required |
| host | Domain name required e.g. example.com |
| port | 443 (default), 8443, 465, 993 or 995 e.g. 443 |
Example result
{
"ok": true,
"api": "sslchecker",
"result": {
"host": "example.com",
"valid": true,
"trusted": true,
"hostname_match": true,
"days_left": 74,
"issuer": "DigiCert Inc",
"valid_to": "2027-01-15T23:59:59Z",
"protocol": "TLSv1.3"
}
}Security Headers Grade
Grades a website A+ to F on the protective HTTP headers it sends (HSTS, CSP, frame and sniffing protection…).
/?tool=securityheadersParameters
| key | Your API key (or the X-API-Key header) required |
| url | Domain or full URL required e.g. example.com |
Example result
{
"ok": true,
"api": "securityheaders",
"result": {
"url": "https://example.com/",
"grade": "D",
"score": 40,
"missing": [
"content-security-policy",
"permissions-policy"
]
}
}Email Validator
Checks an email address’s format and that its domain is set up to receive mail; flags disposable, role and typo addresses.
/?tool=emailvalidatorParameters
| key | Your API key (or the X-API-Key header) required |
| Email address required e.g. someone@outlook.com |
Example result
{
"ok": true,
"api": "emailvalidator",
"result": {
"email": "someone@outlook.com",
"valid": true,
"verdict": "valid",
"accepts_mail": true,
"disposable": false,
"role_account": false,
"free_provider": true,
"did_you_mean": null
}
}Disposable Mail Check
Tells you whether an email address or domain belongs to a throwaway (temporary) email service.
/?tool=disposablemailcheckerParameters
| key | Your API key (or the X-API-Key header) required |
| Email address or domain required e.g. someone@yopmail.com |
Example result
{
"ok": true,
"api": "disposablemailchecker",
"result": {
"email": "someone@yopmail.com",
"domain": "yopmail.com",
"disposable": true
}
}Email Spoofing Check
Grades a domain’s protection against fake email in its name: SPF, DMARC, DKIM, MTA-STS, TLS-RPT and BIMI.
/?tool=emailsecurityParameters
| key | Your API key (or the X-API-Key header) required |
| domain | Domain name required e.g. example.com |
Example result
{
"ok": true,
"api": "emailsecurity",
"result": {
"domain": "example.com",
"grade": "B",
"score": 70,
"spoofable": false,
"spf": {
"found": true,
"policy": "-all"
},
"dmarc": {
"found": true,
"policy": "reject"
}
}
}Password Generator
Generates strong random passwords with your own rules.
/?tool=passwordgeneratorParameters
| key | Your API key (or the X-API-Key header) required |
| length | 4–128 (default 16) required e.g. 16 |
| include | numbers, letters, lowercase, uppercase, chars required e.g. numbers,letters,chars |
| customlist | Use only these characters |
| amount | 1–50 e.g. 1 |
Example result
{
"ok": true,
"api": "passwordgenerator",
"result": {
"password": "q7#Vd!m2Rx9@Lp4z",
"length": 16,
"entropy_bits": 101.8,
"strength": "very strong"
}
}Random Number
Cryptographically secure random numbers: a number of a given length, or between two values.
/?tool=randomnumberParameters
| key | Your API key (or the X-API-Key header) required |
| length | Digits (1–100) required e.g. 10 |
| between | min,max instead of length e.g. 1,100 |
| amount | 1–100 e.g. 1 |
Example result
{
"ok": true,
"api": "randomnumber",
"result": {
"number": "4829105736",
"length": 10
}
}License Key Generator
Generates license keys from a template: ? = letter or number, # = number (write it as %23 in a URL), @ = letter.
/?tool=licensekeygeneratorParameters
| key | Your API key (or the X-API-Key header) required |
| template | Key pattern (max 100 characters) required e.g. ?????-?????-?????-????? |
| amount | 1–100 required e.g. 1 |
| case | upper, lower or mixed e.g. upper |
Example result
{
"ok": true,
"api": "licensekeygenerator",
"result": {
"key": "K7R2M-9XQ4T-B3NW8-P5ZD1",
"keys": [
"K7R2M-9XQ4T-B3NW8-P5ZD1"
]
}
}UUID Generator
Generates random version-4 UUIDs.
/?tool=uuidParameters
| key | Your API key (or the X-API-Key header) required |
| amount | 1–100 e.g. 1 |
Example result
{
"ok": true,
"api": "uuid",
"result": {
"uuid": "3f2b8c1e-9a4d-4e7b-b1c2-5d6e7f8a9b0c",
"version": 4
}
}QR Code Generator
Turns text or a link into a QR code (SVG). Add &output=svg to get the image itself.
/?tool=qrgeneratorParameters
| key | Your API key (or the X-API-Key header) required |
| string | Text or URL (max ~270 characters) required e.g. Hello World |
| size | Width in pixels (100–1000) required e.g. 150 |
| ecc | Error correction L, M, Q or H e.g. M |
| output | svg = return the image instead of JSON e.g. svg |
Example result
{
"ok": true,
"api": "qrgenerator",
"result": {
"version": 2,
"ecc": "M",
"modules": 25,
"size": 150,
"svg": "<svg xmlns=…>…</svg>",
"data_uri": "data:image/svg+xml;base64,PHN2Zy…"
}
}Password Strength
Scores a password 0–4 and estimates how long it would take to crack. Send it in a POST body so it never sits in a URL.
/?tool=passwordstrengthParameters
| key | Your API key (or the X-API-Key header) required |
| password | Password to test (POST recommended) required e.g. Summer2024! |
Example result
{
"ok": true,
"api": "passwordstrength",
"result": {
"score": 1,
"strength": "weak",
"entropy_bits": 34.2,
"crack_time": "2 hours",
"feedback": [
"Avoid years and common words."
]
}
}Hash Generator
Hashes text with MD5, SHA-1, SHA-2, SHA-3, CRC32 and more.
/?tool=hashParameters
| key | Your API key (or the X-API-Key header) required |
| text | Text to hash required e.g. hello |
| algo | One algorithm, or all (default) e.g. sha256 |
Example result
{
"ok": true,
"api": "hash",
"result": {
"algo": "sha256",
"hash": "2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824"
}
}Base64 Encode / Decode
Encodes text to Base64 or decodes it back (standard or URL-safe).
/?tool=base64Parameters
| key | Your API key (or the X-API-Key header) required |
| text | Text to convert required e.g. Hello World |
| action | encode (default) or decode required e.g. encode |
| urlsafe | true for URL-safe Base64 e.g. false |
Example result
{
"ok": true,
"api": "base64",
"result": {
"action": "encode",
"result": "SGVsbG8gV29ybGQ="
}
}JWT Decoder
Decodes a JSON Web Token’s header and payload and tells you if it has expired (the signature is not checked).
/?tool=jwtdecodeParameters
| key | Your API key (or the X-API-Key header) required |
| token | The JWT required e.g. eyJhbGciOi… |
Example result
{
"ok": true,
"api": "jwtdecode",
"result": {
"algorithm": "HS256",
"header": {
"alg": "HS256",
"typ": "JWT"
},
"payload": {
"sub": "1234567890",
"exp": 1767225600
},
"expired": false,
"verified": false
}
}File Type Detector
Finds out what a file really is from its contents (90+ formats) and flags files whose extension lies, like a program renamed to .pdf.
/?tool=filetypeParameters
| key | Your API key (or the X-API-Key header) required |
| file | The file, uploaded as multipart/form-data (up to 20 MB) required e.g. @invoice.pdf |
| url | Or a public link to the file (up to 20 MB) e.g. https://example.com/invoice.pdf |
| base64 | Or the file as Base64 in a JSON or form POST body |
| filename | Original name, for the extension check (taken from the upload automatically) e.g. invoice.pdf |
Example request
curl -H "X-API-Key: XXXXX-XXXXX-XXXXX-XXXXX" \
-F "file=@invoice.pdf" "https://phylaxnet.com/?tool=filetype"Example result
{
"ok": true,
"api": "filetype",
"result": {
"filename": "invoice.pdf",
"size": 48128,
"detected": {
"name": "Windows executable (PE32+, GUI app)",
"extensions": [
"exe",
"dll",
"sys"
],
"mime": "application/vnd.microsoft.portable-executable",
"category": "executable",
"confidence": "high"
},
"extension": "pdf",
"status": "mismatch",
"severity": "high",
"note": ".pdf file contains Windows executable (PE32+, GUI app) - executable content disguised by its extension"
}
}File Entropy
Measures how random a file’s bytes are (0–8 bits per byte) and flags content that looks encrypted, with an optional block-by-block profile.
/?tool=entropyParameters
| key | Your API key (or the X-API-Key header) required |
| file | The file, uploaded as multipart/form-data (up to 20 MB) required e.g. @secret.bin |
| url | Or a public link to the file (up to 20 MB) e.g. https://example.com/secret.bin |
| base64 | Or the file as Base64 in a JSON or form POST body |
| block | Block size in bytes for a per-block profile e.g. 4096 |
Example request
curl -H "X-API-Key: XXXXX-XXXXX-XXXXX-XXXXX" \
-F "file=@secret.bin" "https://phylaxnet.com/?tool=entropy"Example result
{
"ok": true,
"api": "entropy",
"result": {
"filename": "secret.bin",
"size": 65536,
"entropy": 7.9972,
"description": "very high - compressed or encrypted",
"detected": null,
"suspicious": true,
"assessment": "suspicious: very high entropy without a known compressed format (possibly encrypted)"
}
}File Hash
MD5, SHA-1, SHA-256, SHA-512, SHA3-256 and CRC32 of a file in one call, and checks it against a hash you expect.
/?tool=filehashParameters
| key | Your API key (or the X-API-Key header) required |
| file | The file, uploaded as multipart/form-data (up to 20 MB) required e.g. @setup.exe |
| url | Or a public link to the file (up to 20 MB) e.g. https://example.com/setup.exe |
| base64 | Or the file as Base64 in a JSON or form POST body |
| expected | A hash to compare against (any of the algorithms) e.g. e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 |
Example request
curl -H "X-API-Key: XXXXX-XXXXX-XXXXX-XXXXX" \
-F "file=@setup.exe" "https://phylaxnet.com/?tool=filehash"Example result
{
"ok": true,
"api": "filehash",
"result": {
"filename": "setup.exe",
"size": 1048576,
"hashes": {
"md5": "…",
"sha1": "…",
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"sha512": "…",
"sha3-256": "…",
"crc32b": "…"
},
"expected": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"match": true,
"matched_algo": "sha256"
}
}Browser History Reader
Reads a Chrome, Edge, Brave, Opera, Firefox or Safari history database: visits, downloads, searches or bookmarks, newest first.
/?tool=browserhistoryParameters
| key | Your API key (or the X-API-Key header) required |
| file | The file, uploaded as multipart/form-data (up to 20 MB) required e.g. @History |
| url | Or a public link to the file (up to 20 MB) e.g. https://example.com/History |
| base64 | Or the file as Base64 in a JSON or form POST body |
| type | visits (default), downloads, searches or bookmarks e.g. visits |
| limit | 1–5000 (default 200) e.g. 200 |
Example request
curl -H "X-API-Key: XXXXX-XXXXX-XXXXX-XXXXX" \
-F "file=@History" "https://phylaxnet.com/?tool=browserhistory"Example result
{
"ok": true,
"api": "browserhistory",
"result": {
"browser": "chromium",
"type": "downloads",
"total": 1,
"returned": 1,
"order": "newest first",
"note": null,
"items": [
{
"start_time": "2026-10-02T08:30:15Z",
"url": "https://cdn.example.net/tool.exe",
"target_path": "C:\\Users\\Test\\Downloads\\tool.exe",
"state": "complete",
"danger": "dangerous_file",
"opened": true
}
]
}
}Registry Hive Reader
Reads a Windows registry hive file (NTUSER.DAT, SOFTWARE, SYSTEM…): keys, values and last-written times, and recovers deleted keys and values.
/?tool=registryParameters
| key | Your API key (or the X-API-Key header) required |
| file | The file, uploaded as multipart/form-data (up to 20 MB) required e.g. @NTUSER.DAT |
| url | Or a public link to the file (up to 20 MB) e.g. https://example.com/NTUSER.DAT |
| base64 | Or the file as Base64 in a JSON or form POST body |
| path | Key path (default: the root key) e.g. Software\Microsoft\Windows\CurrentVersion\Run |
| depth | Levels of subkeys to include in full, 0–3 e.g. 0 |
| deleted | true = also recover deleted keys and values e.g. true |
Example request
curl -H "X-API-Key: XXXXX-XXXXX-XXXXX-XXXXX" \
-F "file=@NTUSER.DAT" "https://phylaxnet.com/?tool=registry"Example result
{
"ok": true,
"api": "registry",
"result": {
"hive": {
"embedded_name": "\\??\\C:\\Users\\Test\\ntuser.dat",
"last_written": "2026-10-03T23:59:59Z",
"version": "1.5",
"checksum_ok": true,
"dirty": false
},
"key": {
"path": "ROOT\\Software\\Microsoft\\Windows\\CurrentVersion\\Run",
"name": "Run",
"last_written": "2026-10-02T08:30:15Z",
"subkey_count": 0,
"value_count": 1,
"values": [
{
"name": "Updater",
"type": "REG_EXPAND_SZ",
"size": 46,
"data": "%TEMP%\\upd.exe -silent"
}
],
"subkeys": []
},
"deleted": {
"keys": [
{
"path": "ROOT\\DeletedPersistence",
"name": "DeletedPersistence",
"last_written": "2026-10-03T23:59:59Z"
}
],
"values": []
}
}
}Event Log Reader
Reads a Windows event log (.evtx) into JSON: event IDs, times, users, computers and event data, with filters by event ID and source.
/?tool=evtxParameters
| key | Your API key (or the X-API-Key header) required |
| file | The file, uploaded as multipart/form-data (up to 20 MB) required e.g. @Security.evtx |
| url | Or a public link to the file (up to 20 MB) e.g. https://example.com/Security.evtx |
| base64 | Or the file as Base64 in a JSON or form POST body |
| event_id | Only these event IDs (comma-separated) e.g. 4624,4625 |
| provider | Only events from this source e.g. Microsoft-Windows-Security-Auditing |
| limit | 1–500 (default 50) e.g. 50 |
| offset | Skip this many matching events (for paging) e.g. 0 |
| xml | true = include each event’s full XML e.g. true |
Example request
curl -H "X-API-Key: XXXXX-XXXXX-XXXXX-XXXXX" \
-F "file=@Security.evtx" "https://phylaxnet.com/?tool=evtx"Example result
{
"ok": true,
"api": "evtx",
"result": {
"file": {
"version": "3.1",
"chunks": 1,
"dirty": false,
"checksum_ok": true
},
"records_scanned": 3,
"matched": 1,
"returned": 1,
"more": false,
"events": [
{
"record_id": 2,
"event_id": 4624,
"provider": "Microsoft-Windows-Security-Auditing",
"level_name": "Information",
"channel": "Security",
"computer": "WS01.lab.local",
"time_created": "2026-10-02T08:30:15.2500000Z",
"event_data": {
"TargetUserName": "mallory",
"LogonType": "10",
"IpAddress": "203.0.113.9"
}
}
]
}
}