API Documentation
Access all Ping64 diagnostic tools programmatically via a simple REST API. Authenticate with an API key and start making requests in seconds.
Quick start
Get an API key
Go to Account → API keys → Create a new key. Requires a Starter or Pro plan.
Make a request
Send a POST request with your API key in the Authorization header.
curl -X POST https://ping64.io/api/v1/tools/dns-lookup \
-H "Authorization: Bearer p64_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"domain": "example.com", "type": "A"}'Authentication
All API requests must include your API key in the Authorization header using the Bearer scheme:
Authorization: Bearer p64_YOUR_API_KEYAPI keys are created from your Account page. Keep your keys secret — do not share them in public repositories or client-side code.
Rate limits
API usage is metered monthly per API key. Limits reset on the first of each month (UTC).
| Plan | Monthly limit | Price |
|---|---|---|
| Free | No API access | €0/mo |
| Starter | 1,000 calls/mo | €9/mo |
| Pro | 50,000 calls/mo | €24/mo |
When you exceed your limit, the API returns 429 Too Many Requests.
Base URL
https://ping64.io/api/v1/tools/{tool-id}All tool endpoints accept POST requests with a JSON body and return JSON responses.
Response format
Successful responses return the tool's result directly as a JSON object. Error responses follow a consistent format:
{
"ok": false,
"error": {
"code": "RATE_LIMITED",
"message": "Monthly API limit reached (1000/1000)"
}
}| HTTP Status | Code | Description |
|---|---|---|
| 200 | — | Success |
| 401 | UNAUTHORIZED | Missing or invalid API key |
| 404 | NOT_FOUND | Unknown tool ID |
| 422 | VALIDATION_ERROR | Invalid request body |
| 429 | RATE_LIMITED | Monthly API limit exceeded |
| 502 | BACKEND_ERROR | Backend service unavailable |
Available tools
Each tool is available at POST /api/v1/tools/{tool-id}.
dns-lookup— DNS LookupQuery DNS records for a domain. Types: A, AAAA, MX, TXT, CNAME, NS, SOA.
{ "domain": "example.com", "type": "A" }whois-lookup— WHOIS LookupGet WHOIS registration data for a domain or IP.
{ "domain": "example.com" }dns-performance— DNS PerformanceMeasure DNS resolution time across multiple public resolvers.
{ "domain": "example.com" }mx-checker— MX Record CheckerCheck MX records and mail server connectivity.
{ "domain": "example.com" }cidr-calculator— CIDR CalculatorCalculate network range, broadcast, and host count from CIDR notation.
{ "cidr": "192.168.1.0/24" }ip-range-calculator— IP Range CalculatorCalculate the minimal CIDR blocks covering an IP range.
{ "start": "192.168.1.1", "end": "192.168.1.254" }ip-geolocation— IP GeolocationGeolocate an IP address (country, city, ISP, coordinates).
{ "ip": "8.8.8.8" }traceroute— Visual TracerouteTrace the network path to a host.
{ "host": "example.com" }dmarc-validator— DMARC/SPF/DKIM ValidatorValidate DMARC DNS records and policy configuration.
{ "domain": "example.com" }ssl-checker— SSL Certificate CheckerInspect SSL/TLS certificate details, chain, and expiration.
{ "host": "example.com" }port-scanner— Port ScannerScan ports on a host. Max 100 ports per request. Requires Starter plan.
{ "host": "example.com", "ports": [22, 80, 443] }json-formatter— JSON/XML FormatterFormat, validate, and minify JSON strings.
{ "input": "{\"key\":\"value\"}" }base64— Base64 Encoder/DecoderEncode or decode Base64 strings. Modes: "encode", "decode".
{ "input": "Hello World", "mode": "encode" }hash-generator— Hash GeneratorGenerate hashes. Algorithms: md5, sha1, sha256, sha512.
{ "input": "Hello World", "algorithm": "sha256" }regex-tester— RegEx TesterTest regex patterns against input strings with match highlighting.
{ "pattern": "\\d+", "input": "abc123def", "flags": "g" }speed-test— Website Speed TestMeasure HTTP response time, TTFB, and download speed.
{ "url": "https://example.com" }Code examples
curl -X POST https://ping64.io/api/v1/tools/dns-lookup \
-H "Authorization: Bearer p64_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"domain": "example.com", "type": "A"}'const response = await fetch("https://ping64.io/api/v1/tools/dns-lookup", {
method: "POST",
headers: {
"Authorization": "Bearer p64_YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({ domain: "example.com", type: "A" }),
});
const data = await response.json();
console.log(data);import requests
response = requests.post(
"https://ping64.io/api/v1/tools/dns-lookup",
headers={"Authorization": "Bearer p64_YOUR_API_KEY"},
json={"domain": "example.com", "type": "A"},
)
data = response.json()
print(data)