Super Whois API
Simple, JSON-based WHOIS lookups for domains, IPs, and ASNs.
v2.0Base 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 Header | Description |
|---|---|
X-RateLimit-Limit | Maximum requests per window |
X-RateLimit-Remaining | Requests remaining this window |
X-RateLimit-Reset | Unix timestamp when window resets |
Query Parameters
| Parameter | Required | Description |
|---|---|---|
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
| Field | Type | Description |
|---|---|---|
query | string | The sanitized input query |
query_type | string | domain | ipv4 | ipv6 | asn |
status | string | registered | available | found | unsupported_tld | error |
whois_server | string | The WHOIS server that provided the data |
timestamp | ISO 8601 | UTC time of this API response |
query_ms | integer | Query time in milliseconds |
api_version | string | API version string |
data | object | Structured parsed fields (domain queries only, when registered) |
data.creation_date | ISO 8601 | Domain registration date |
data.expiration_date | ISO 8601 | Domain expiry date |
data.updated_date | ISO 8601 | Last updated date |
data.registrar | string | Registrar name |
data.registrar_iana_id | string | Registrar IANA ID |
data.nameservers | array | List of nameservers (lowercase, sorted) |
data.status | array | Domain EPP status codes |
data.dnssec | string | signed or unsigned |
subdomain_suggestion | string? | If querying a subdomain, the suggested apex domain |
raw | string | Full 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
| HTTP | Meaning |
|---|---|
400 | Bad Request — invalid or missing q parameter |
401 | Unauthorized — API key required but not provided or invalid |
429 | Too Many Requests — rate limit exceeded |
500 | Server 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