Super Whois

Back to lookup

Super Whois API

Simple, JSON-based WHOIS lookups for domains, IPs, and ASNs.

v2.0

Base URL

GEThttps://w.ppee.eu.org/api.php

Authentication

The API is publicly accessible without a key. Authenticated requests bypass the rate limit.

GEThttps://w.ppee.eu.org/api.php?q=google.com&key=YOUR_API_KEY

To issue API keys, create api_keys.php in the same directory:

<?php $apiKeys = [ 'sk_live_your_secret_key_here', ];

Rate Limiting

Unauthenticated requests are limited to 60 requests per hour per IP address.

Response HeaderDescription
X-RateLimit-LimitMaximum requests per window
X-RateLimit-RemainingRequests remaining this window
X-RateLimit-ResetUnix timestamp when window resets

Query Parameters

ParameterRequiredDescription
q Required The target to look up. Accepts a domain name (e.g. google.com), IPv4 / IPv6 address, or ASN (e.g. AS15169).
key Optional API key. Bypasses rate limiting when valid.
dns Optional Set to true to include DNS records (A, AAAA, MX, TXT, NS) in domain lookup results
lang Optional Docs language: en (default), zh-cn (Simplified), or zh-tw (Traditional)

Endpoints & Examples

Domain lookup

GEThttps://w.ppee.eu.org/api.php?q=google.com

IP lookup

GEThttps://w.ppee.eu.org/api.php?q=8.8.8.8

ASN lookup

GEThttps://w.ppee.eu.org/api.php?q=AS15169

Domain + DNS Records lookup

GEThttps://w.ppee.eu.org/api.php?q=google.com&dns=true

Response Fields

FieldTypeDescription
querystringThe sanitized input query
query_typestringdomain | ipv4 | ipv6 | asn
statusstringregistered | available | found | unsupported_tld | error
whois_serverstringThe WHOIS server that provided the data
timestampISO 8601UTC time of this API response
query_msintegerQuery time in milliseconds
api_versionstringAPI version string
dataobjectStructured parsed fields (domain queries only, when registered)
data.creation_dateISO 8601Domain registration date
data.expiration_dateISO 8601Domain expiry date
data.updated_dateISO 8601Last updated date
data.registrarstringRegistrar name
data.registrar_iana_idstringRegistrar IANA ID
data.nameserversarrayList of nameservers (lowercase, sorted)
data.statusarrayDomain EPP status codes
data.dnssecstringsigned or unsigned
subdomain_suggestionstring?If querying a subdomain, the suggested apex domain
rawstringFull raw WHOIS response (IPs redacted)

Sample Response — api.php?q=google.com

{ "query": "google.com", "query_type": "domain", "whois_server": "whois.markmonitor.com", "status": "registered", "timestamp": "2025-01-15T10:23:45Z", "query_ms": 320, "api_version": "2.0", "data": { "creation_date": "1997-09-15T04:00:00Z", "expiration_date": "2028-09-14T04:00:00Z", "updated_date": "2019-09-09T15:39:04Z", "registrar": "MarkMonitor Inc.", "registrar_iana_id": "292", "registrar_whois": "whois.markmonitor.com", "nameservers": ["ns1.google.com","ns2.google.com","ns3.google.com","ns4.google.com"], "status": ["clientDeleteProhibited","clientTransferProhibited"], "dnssec": "unsigned" }, "raw": "Domain Name: GOOGLE.COM\r\n..." }

Error Codes

HTTPMeaning
400Bad Request — invalid or missing q parameter
401Unauthorized — API key required but not provided or invalid
429Too Many Requests — rate limit exceeded
500Server Error — PHP extension missing or misconfiguration

Try It

Code Examples

JavaScript (fetch)

fetch("https:\/\/w.ppee.eu.org\/api.php?q=google.com") .then(r => r.json()) .then(data => { console.log(data.status); // "registered" console.log(data.data.registrar); // "MarkMonitor Inc." console.log(data.data.expiration_date); // "2028-09-14T04:00:00Z" });

Python (requests)

import requests resp = requests.get("https:\/\/w.ppee.eu.org\/api.php", params={'q': 'google.com'}) data = resp.json() print(data['status']) print(data['data']['registrar'])

cURL

curl "https://w.ppee.eu.org/api.php?q=google.com" | python3 -m json.tool