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

1

Get an API key

Go to Account → API keys → Create a new key. Requires a Starter or Pro plan.

2

Make a request

Send a POST request with your API key in the Authorization header.

Example — DNS Lookup
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_KEY

API 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).

PlanMonthly limitPrice
FreeNo API access€0/mo
Starter1,000 calls/mo€9/mo
Pro50,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 StatusCodeDescription
200Success
401UNAUTHORIZEDMissing or invalid API key
404NOT_FOUNDUnknown tool ID
422VALIDATION_ERRORInvalid request body
429RATE_LIMITEDMonthly API limit exceeded
502BACKEND_ERRORBackend service unavailable

Available tools

Each tool is available at POST /api/v1/tools/{tool-id}.

dns-lookupDNS Lookup
POST

Query DNS records for a domain. Types: A, AAAA, MX, TXT, CNAME, NS, SOA.

{ "domain": "example.com", "type": "A" }
whois-lookupWHOIS Lookup
POST

Get WHOIS registration data for a domain or IP.

{ "domain": "example.com" }
dns-performanceDNS Performance
POST

Measure DNS resolution time across multiple public resolvers.

{ "domain": "example.com" }
mx-checkerMX Record Checker
POST

Check MX records and mail server connectivity.

{ "domain": "example.com" }
cidr-calculatorCIDR Calculator
POST

Calculate network range, broadcast, and host count from CIDR notation.

{ "cidr": "192.168.1.0/24" }
ip-range-calculatorIP Range Calculator
POST

Calculate the minimal CIDR blocks covering an IP range.

{ "start": "192.168.1.1", "end": "192.168.1.254" }
ip-geolocationIP Geolocation
POST

Geolocate an IP address (country, city, ISP, coordinates).

{ "ip": "8.8.8.8" }
tracerouteVisual Traceroute
POST

Trace the network path to a host.

{ "host": "example.com" }
dmarc-validatorDMARC/SPF/DKIM Validator
POST

Validate DMARC DNS records and policy configuration.

{ "domain": "example.com" }
ssl-checkerSSL Certificate Checker
POST

Inspect SSL/TLS certificate details, chain, and expiration.

{ "host": "example.com" }
port-scannerPort Scanner
POST

Scan ports on a host. Max 100 ports per request. Requires Starter plan.

{ "host": "example.com", "ports": [22, 80, 443] }
json-formatterJSON/XML Formatter
POST

Format, validate, and minify JSON strings.

{ "input": "{\"key\":\"value\"}" }
base64Base64 Encoder/Decoder
POST

Encode or decode Base64 strings. Modes: "encode", "decode".

{ "input": "Hello World", "mode": "encode" }
hash-generatorHash Generator
POST

Generate hashes. Algorithms: md5, sha1, sha256, sha512.

{ "input": "Hello World", "algorithm": "sha256" }
regex-testerRegEx Tester
POST

Test regex patterns against input strings with match highlighting.

{ "pattern": "\\d+", "input": "abc123def", "flags": "g" }
speed-testWebsite Speed Test
POST

Measure HTTP response time, TTFB, and download speed.

{ "url": "https://example.com" }

Code examples

cURL
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"}'
JavaScript / TypeScript
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);
Python
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)