API Documentation
ToolSparkr exposes 7 server-side tools as JSON endpoints. Anyone can call them at the free rate limits. A ToolSparkr Pro API key raises every limit 10×.
Basics
- Base URL:
https://toolsparkr.com - Method: every endpoint takes
POSTwith a JSON body (Content-Type: application/json) and returns JSON. - Errors: failures return a JSON object with an
errorfield.
Authentication
No key is needed for free use. Free requests are rate limited per IP address.
ToolSparkr Pro subscribers send their personal key in the X-API-Key header. With a valid key, each endpoint allows 10× its free limit, counted per key instead of per IP. Keys are issued by email after you subscribe on the Pricing page.
-H "X-API-Key: YOUR_KEY"
Rate limits and status codes
Limits use a 60-second sliding window. They are enforced per server worker, so treat them as approximate.
| Endpoint | Free (per IP / min) | Pro (per key / min) |
|---|---|---|
/api/tools/dns-lookup | 30 | 300 |
/api/tools/whois-lookup | 20 | 200 |
/api/tools/ip-lookup | 30 | 300 |
/api/tools/ssl-checker | 20 | 200 |
/api/tools/http-headers | 30 | 300 |
/api/tools/meta-tags | 30 | 300 |
/api/tools/bcrypt | 12 | 120 |
200: success.400: a required field is missing or invalid.401: anX-API-Keyheader was sent but the key is not valid. Response:{"error": "Invalid API key"}.429: rate limit reached. Response:{"error": "Too many requests. Please slow down and try again shortly."}. Wait and retry.404(DNS lookup only): the domain could not be resolved.500: the lookup itself failed, for example the remote host did not respond.
DNS lookup
POST /api/tools/dns-lookup
Request: domain (string, required).
Response: domain, records (list of {"type": "A" | "AAAA", "value": "..."}), and raw (nslookup output, may be empty).
curl -X POST https://toolsparkr.com/api/tools/dns-lookup \
-H "X-API-Key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"domain":"example.com"}'
WHOIS lookup
POST /api/tools/whois-lookup
Request: domain (string, required).
Response: domain, parsed (registrar, creation date, registry expiry date, name servers and domain status where the registry provides them), and raw (the full WHOIS text).
curl -X POST https://toolsparkr.com/api/tools/whois-lookup \
-H "X-API-Key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"domain":"example.com"}'
IP lookup
POST /api/tools/ip-lookup
Request: ip (string, an IPv4 or IPv6 address).
Response: geolocation and network details for the address (for example country, city, isp, query), passed through from ip-api.com.
curl -X POST https://toolsparkr.com/api/tools/ip-lookup \
-H "X-API-Key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"ip":"8.8.8.8"}'
SSL checker
POST /api/tools/ssl-checker
Request: domain (string, required). The certificate is read from port 443.
Response: domain, issued_to, issued_by, valid_from, valid_to, days_remaining, protocol, sans (subject alternative names) and valid (true while the certificate has not expired).
curl -X POST https://toolsparkr.com/api/tools/ssl-checker \
-H "X-API-Key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"domain":"example.com"}'
HTTP headers
POST /api/tools/http-headers
Request: url (string, required). https:// is added if no scheme is given. Private, loopback and other non-public addresses are rejected with 400.
Response: url, status_code and headers (the response headers of a HEAD request).
curl -X POST https://toolsparkr.com/api/tools/http-headers \
-H "X-API-Key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com"}'
Meta tags
POST /api/tools/meta-tags
Request: url (string, required). Same URL rules as HTTP headers.
Response: url and tags: the page title, every <meta name|property> tag keyed by its lowercase name, and canonical.
curl -X POST https://toolsparkr.com/api/tools/meta-tags \
-H "X-API-Key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com"}'
Bcrypt
POST /api/tools/bcrypt
Request: password (string, required), action ("hash", the default, or "verify"), rounds (hash only, 4 to 12, default 10), and hash (required for verify).
Response: {"hash": "..."} for hash, {"match": true | false} for verify.
curl -X POST https://toolsparkr.com/api/tools/bcrypt \
-H "X-API-Key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"action":"hash","password":"correct horse battery staple","rounds":10}'
Support
Questions about the API or your key: [email protected].