Developer API & MCP server
Use 43 of our tools from your own code or let an AI assistant use them for you. DNS, SSL, redirects, SEO tags, broken links, hashing, encoding and more, over plain HTTPS.
Your first call in 30 seconds
Every endpoint takes a JSON body and returns JSON. Your remaining balance comes back with every call.
- Sign in with Google. You get 200 free credits.
- Open API keys and create a key. Copy it, it is shown only once.
- Send it as
Authorization: Bearer …and readdatawhenokis true.
curl -X POST https://api.apextoolstation.com/api/v1/dns-lookup \
-H "Authorization: Bearer ats_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"domain":"example.com","type":"MX"}'const res = await fetch("https://api.apextoolstation.com/api/v1/dns-lookup", {
method: "POST",
headers: {
"Authorization": "Bearer ats_live_YOUR_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({ domain: "example.com", type: "MX" }),
});
const { ok, data, error } = await res.json();
console.log(ok ? data : error.message);import requests
r = requests.post(
"https://api.apextoolstation.com/api/v1/dns-lookup",
headers={"Authorization": "Bearer ats_live_YOUR_KEY"},
json={"domain": "example.com", "type": "MX"},
timeout=30,
)
body = r.json()
print(body["data"] if body["ok"] else body["error"]["message"]){
"ok": true,
"tool": "dns-lookup",
"ms": 142,
"credits": { "charged": 1, "remaining": 299 },
"data": { "domain": "example.com", "results": { "MX": [ ... ] } }
}{
"ok": false,
"tool": "dns-lookup",
"error": { "code": "bad_request", "message": "Please enter a valid domain name, like example.com." }
}All endpoints
Base URL https://api.apextoolstation.com. Click an endpoint for its fields and a live playground. The playground uses your signed-in account, so you do not need to paste a key.
POST/api/v1/dns-lookupDNS Lookup1 creditNetwork
Look up DNS records (A, AAAA, CNAME, MX, NS, TXT, SOA, CAA, SRV, DS, DNSKEY) for a domain, or the PTR record for an IP address. Uses public DNS-over-HTTPS resolvers.
Input
| Field | Type | Description |
|---|---|---|
domain required | string | Domain name (example.com) or IP address for a reverse lookup. |
type | string ALL · A · AAAA · CNAME · MX · NS · TXT · SOA · CAA · SRV · DS · DNSKEY · PTR | Record type, or ALL for the common set. Default: ALL |
Try it
POST/api/v1/ssl-checkSSL Certificate Check2 creditsNetwork
Check whether a website’s HTTPS certificate is trusted and when it expires, with issuer and covered domain names.
Input
| Field | Type | Description |
|---|---|---|
host required | string | Website or hostname, e.g. example.com. |
Try it
POST/api/v1/email-authSPF, DKIM & DMARC Check2 creditsNetwork
Read a domain’s MX, SPF, DMARC and DKIM records (trying common selectors), plus MTA-STS and BIMI, to diagnose email deliverability.
Input
| Field | Type | Description |
|---|---|---|
domain required | string | Domain or email address. |
selector | string | Optional DKIM selector to check instead of the common list. |
Try it
POST/api/v1/ip-lookupIP Address Lookup1 creditNetwork
Look up an IP address: country, region, city, coordinates, timezone, ISP and ASN. Uses ipwho.is (free, no key); results are cached for one hour.
Input
| Field | Type | Description |
|---|---|---|
ip required | string | IPv4 or IPv6 address, e.g. 8.8.8.8. |
Try it
POST/api/v1/reverse-ipReverse IP Lookup1 creditNetwork
Find the hostname behind an IP address (reverse DNS / PTR record). Returns null when the IP has no reverse DNS entry.
Input
| Field | Type | Description |
|---|---|---|
ip required | string | IPv4 or IPv6 address, e.g. 8.8.8.8. |
Try it
POST/api/v1/pingPing & Latency Check2 creditsNetwork
Measure how fast a host answers: three HTTP HEAD attempts with min/avg/max latency and packet loss. Cloudflare Workers cannot send ICMP ping, so this measures HTTP latency — it is labelled honestly as such.
Input
| Field | Type | Description |
|---|---|---|
host required | string | Domain or IP address, e.g. example.com. |
Try it
POST/api/v1/smtp-testSMTP Server Test3 creditsNetwork
Test a domain’s mail server: resolves its MX records, connects to the top MX host on port 587 (STARTTLS) or 465 (implicit TLS), reads the greeting and lists its capabilities (STARTTLS, AUTH, SIZE). Never sends credentials or a message. Port 25 is blocked by the Workers runtime.
Input
| Field | Type | Description |
|---|---|---|
host required | string | Domain to test, e.g. gmail.com. |
port | integer 587 · 465 | 587 (STARTTLS) or 465 (implicit TLS). Port 25 is blocked by the runtime. Default: 587 |
Try it
POST/api/v1/redirect-chainRedirect Chain Tracer2 creditsNetwork
Follow a URL’s redirects hop by hop (up to 12) and return each status code, location and timing. Detects loops.
Input
| Field | Type | Description |
|---|---|---|
url required | string | URL to trace, e.g. http://example.com. |
Try it
POST/api/v1/http-headersHTTP Headers & Security Grade2 creditsNetwork
Fetch a URL and return its response headers, status, response time and a security-header grade (HSTS, CSP, X-Frame-Options and more).
Input
| Field | Type | Description |
|---|---|---|
url required | string | Page URL. |
Try it
POST/api/v1/website-statusWebsite Up/Down Check1 creditNetwork
Check whether a website is reachable right now and return its HTTP status and response time.
Input
| Field | Type | Description |
|---|---|---|
url required | string | Website URL. |
Try it
POST/api/v1/broken-linksLink Status Checker8 creditsNetwork
Check the HTTP status of up to 40 URLs at once and report which are broken (4xx/5xx or unreachable) and which redirect.
Input
| Field | Type | Description |
|---|---|---|
urls required | array | List of absolute URLs to check (max 40). |
Try it
POST/api/v1/http-requestHTTP Request Tester2 creditsNetwork
Send a custom HTTP request (GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS) with your own headers and body, and get the status, headers, timing and body back. Same SSRF protection as every other tool: public addresses only.
Input
| Field | Type | Description |
|---|---|---|
url required | string | URL to request. |
method | string GET · POST · PUT · PATCH · DELETE · HEAD · OPTIONS | HTTP method. Default: GET |
body | string | Request body for POST, PUT or PATCH (max 100 KB). |
headers | object | Extra request headers as name/value pairs. |
Try it
POST/api/v1/web-scrapeWeb Scraper3 creditsNetwork
Fetch a web page and return its clean text, title and (optionally) its links and headings. Scripts, styles and tags are stripped; text is truncated at your limit (default 20,000 characters, max 100,000). Same SSRF protection as every other tool.
Input
| Field | Type | Description |
|---|---|---|
url required | string | Page URL to scrape. |
include | string text · links · headings · all | What to return besides text. Default: text |
maxChars | integer | Max characters of text to return. Default: 20000 1000–100000 |
Try it
POST/api/v1/seo-metaSEO Meta Tag Extractor2 creditsNetwork
Fetch a page and extract its title, meta description (with lengths), canonical, robots, Open Graph, Twitter tags, H1s, image alt gaps, link counts and word count.
Input
| Field | Type | Description |
|---|---|---|
url required | string | Page URL. |
Try it
POST/api/v1/robots-sitemapRobots.txt & Sitemap Check2 creditsNetwork
Fetch a site’s robots.txt, list its declared sitemaps and validate the XML sitemap with a URL count and sample.
Input
| Field | Type | Description |
|---|---|---|
url required | string | Website URL or domain. |
Try it
POST/api/v1/hashHash Generator1 creditInstant
Compute SHA-1, SHA-256, SHA-384 or SHA-512 hashes of text (hex and Base64).
Input
| Field | Type | Description |
|---|---|---|
text required | string | Text to hash. |
algorithm | string SHA-1 · SHA-256 · SHA-384 · SHA-512 | Hash algorithm. Default: SHA-256 |
Try it
POST/api/v1/passwordPassword Generator1 creditInstant
Generate strong random passwords using a cryptographic random source, with entropy in bits.
Input
| Field | Type | Description |
|---|---|---|
length | integer | Default: 16 6–128 |
count | integer | Default: 1 1–20 |
symbols | boolean | Default: true |
numbers | boolean | Default: true |
uppercase | boolean | Default: true |
lowercase | boolean | Default: true |
Try it
POST/api/v1/uuidUUID Generator1 creditInstant
Generate random version 4 UUIDs.
Input
| Field | Type | Description |
|---|---|---|
count | integer | Default: 1 1–100 |
Try it
POST/api/v1/jwt-decodeJWT Decoder1 creditInstant
Decode a JSON Web Token’s header and payload and report expiry. Does not verify the signature.
Input
| Field | Type | Description |
|---|---|---|
token required | string | The JWT string. |
Try it
POST/api/v1/bcrypt-hashBcrypt Hash Generator2 creditsInstant
Hash a password with bcrypt (version 2a, cost 4–12, default 11 — the competitor’s default). The result is a standard $2a$ hash that any bcrypt verifier accepts. Passwords are capped at 72 bytes, bcrypt’s own limit.
Input
| Field | Type | Description |
|---|---|---|
password required | string | Password to hash (max 72 bytes). |
cost | integer | Work factor. Higher is slower and stronger. Default: 11 4–12 |
Try it
POST/api/v1/bcrypt-verifyBcrypt Hash Verifier2 creditsInstant
Check a password against a bcrypt hash ($2a$, $2b$ or $2y$). Returns whether it matches; the comparison runs in the bcrypt library’s own timing-safe path.
Input
| Field | Type | Description |
|---|---|---|
password required | string | Password to check. |
hash required | string | Bcrypt hash to check against, e.g. $2a$11$... |
Try it
POST/api/v1/argon2-hashArgon2 Hash Generator3 creditsInstant
Hash a password with Argon2id (the OWASP-recommended password hash), version 19, memory 8192 KiB, 2 passes, 1 lane. The result is a standard PHC-format string ($argon2id$v=19$...) that any Argon2 verifier accepts. Hashing takes about 1 second on this service.
Input
| Field | Type | Description |
|---|---|---|
password required | string | Password to hash (max 4096 characters). |
Try it
POST/api/v1/argon2-verifyArgon2 Hash Verifier3 creditsInstant
Check a password against an Argon2id hash (PHC format, $argon2id$v=19$...). The parameters are read from the hash itself, so hashes made anywhere with any parameters verify here. Comparison is constant-time.
Input
| Field | Type | Description |
|---|---|---|
password required | string | Password to check. |
hash required | string | Argon2id hash to check against, e.g. $argon2id$v=19$m=8192,t=2,p=1$... |
Try it
POST/api/v1/base64Base64 Encode / Decode1 creditInstant
Encode text to Base64 (UTF-8) or decode Base64 / Base64URL back to text.
Input
| Field | Type | Description |
|---|---|---|
text required | string | Input text. |
mode | string encode · decode | encode or decode. Default: encode |
Try it
POST/api/v1/url-encodeURL Encode / Decode1 creditInstant
Percent-encode text for use in URLs, or decode it back.
Input
| Field | Type | Description |
|---|---|---|
text required | string | Input text. |
mode | string encode · decode | encode or decode. Default: encode |
Try it
POST/api/v1/json-formatJSON Formatter & Validator1 creditInstant
Validate JSON and return it pretty-printed or minified, or the exact parse error.
Input
| Field | Type | Description |
|---|---|---|
json required | string | JSON text. |
indent | integer | 0 to minify. Default: 2 0–8 |
Try it
POST/api/v1/text-statsWord & Character Counter1 creditInstant
Count words, characters, sentences, paragraphs and estimate reading and speaking time.
Input
| Field | Type | Description |
|---|---|---|
text required | string | Text to analyse. |
Try it
POST/api/v1/case-convertCase Converter1 creditInstant
Convert text to upper, lower, title, sentence, camel, Pascal, snake, kebab or constant case.
Input
| Field | Type | Description |
|---|---|---|
text required | string | Input text. |
to required | string upper · lower · title · sentence · camel · pascal · snake · kebab · constant | Target case. |
Try it
POST/api/v1/timestampUnix Timestamp Converter1 creditInstant
Convert a Unix timestamp (seconds or milliseconds) or a date string to ISO, UTC and Unix forms. Without input, returns the current time.
Input
| Field | Type | Description |
|---|---|---|
value | string | Unix time (e.g. 1700000000) or a date (e.g. 2026-01-31T10:00:00Z). Optional. |
Try it
POST/api/v1/qr-generateQR Code Generator1 creditInstant
Generate a QR code (SVG) for any text or URL, with error-correction level L/M/Q/H and custom dark/light colours. SVG only — the Workers runtime has no canvas, so PNG output is not available for this tool.
Input
| Field | Type | Description |
|---|---|---|
text required | string | Text or URL to encode (max 2000 characters). |
errorCorrection | string L · M · Q · H | Error-correction level. Default: M |
size | integer | Output size in pixels. Default: 512 64–2048 |
dark | string | Dark module colour, e.g. #000000. Default: #000000 |
light | string | Background colour, e.g. #FFFFFF. Default: #FFFFFF |
Try it
POST/api/v1/currency-ratesCurrency Exchange Rates1 creditNetwork
Get live exchange rates for a base currency (default USD). Returns the full table, or only the currencies you ask for (max 50). Uses exchangerate-api.com (free, no key); rates are cached for one hour.
Input
| Field | Type | Description |
|---|---|---|
base | string | Base currency code, e.g. USD. Default: USD |
currencies | array | Optional list of currency codes to return (max 50). Omit for the full table. |
Try it
POST/api/v1/gold-priceGold & Silver Price1 creditInstant
Get the live gold and silver spot price, in your currency and unit (ounce, gram, tola or kilogram). Uses gold-api.com (free, no key); prices are cached for 10 minutes. Non-USD currencies are converted with the same exchange-rate service as currency-rates.
Input
| Field | Type | Description |
|---|---|---|
currency | string | Currency code, e.g. USD. Default: USD |
unit | string ounce · gram · tola · kilogram | Weight unit. Default: ounce |
Try it
POST/api/v1/pdf-metadataPDF Metadata Reader2 creditsInstant
Read a PDF’s metadata: title, author, subject, keywords, creator, producer, creation and modification dates, version, page count and whether it is encrypted. Upload a base64 PDF (max 200 KB) or give a URL (max 1.5 MB).
Input
| Field | Type | Description |
|---|---|---|
file | string | Base64-encoded PDF (max 200 KB). One of file or url is required. |
url | string | URL of the PDF to read (max 1.5 MB). One of file or url is required. |
Try it
POST/api/v1/watermark-imageImage Watermark2 creditsInstant
Add a text watermark to a PNG image (upload base64, max 200 KB, or give a URL, max 5 MB). Choose the position, opacity and colour. PNG input only; text renders in capitals using a built-in 5x7 font (the Workers runtime has no canvas). Returns a base64 PNG.
Input
| Field | Type | Description |
|---|---|---|
image | string | Base64-encoded PNG (max 200 KB). One of image or url is required. |
url | string | URL of the PNG to watermark (max 5 MB). One of image or url is required. |
text required | string | Watermark text (max 100 characters). |
position | string bottom-right · bottom-left · top-right · top-left · center | Where to place the text. Default: bottom-right |
opacity | number | Text opacity, 0.05 to 1. Default: 0.5 0.05–1 |
color | string | Text colour, e.g. #FFFFFF. Default: #FFFFFF |
Try it
POST/api/v1/word-to-pdfWord to PDF15 creditsInstant
Convert a Word (.docx) or ODT (.odt) document to PDF. TEXT-ONLY conversion: text and paragraph breaks are preserved; images, tables, headers/footers and complex layout are not (full-fidelity conversion needs LibreOffice, which does not run on Cloudflare Workers). Upload base64 (max 200 KB) or give a URL (max 5 MB).
Input
| Field | Type | Description |
|---|---|---|
file | string | Base64-encoded .docx or .odt file (max 200 KB). One of file or url is required. |
url | string | URL of the .docx/.odt file (max 5 MB). One of file or url is required. |
Try it
POST/api/v1/ppt-to-pdfPowerPoint to PDF15 creditsInstant
Convert a PowerPoint (.pptx) file to PDF, one PDF page per slide. TEXT-ONLY conversion: slide text is preserved; images, shapes, animations, speaker notes and complex layout are not (full-fidelity conversion needs LibreOffice, which does not run on Cloudflare Workers). Upload base64 (max 200 KB) or give a URL (max 5 MB).
Input
| Field | Type | Description |
|---|---|---|
file | string | Base64-encoded .pptx file (max 200 KB). One of file or url is required. |
url | string | URL of the .pptx file (max 5 MB). One of file or url is required. |
Try it
POST/api/v1/pdf-to-wordPDF to Word20 creditsInstant
Convert a PDF to a Word (.docx) document. TEXT-ONLY conversion: the extracted text is rebuilt as paragraphs; images, tables and the original layout are not preserved (full-fidelity conversion needs LibreOffice, which does not run on Cloudflare Workers). Scanned/image-only PDFs have no text to convert. Max 100 pages. Upload base64 (max 200 KB) or give a URL (max 5 MB).
Input
| Field | Type | Description |
|---|---|---|
file | string | Base64-encoded PDF (max 200 KB). One of file or url is required. |
url | string | URL of the PDF (max 5 MB). One of file or url is required. |
Try it
POST/api/v1/pdf-to-excelPDF to Excel20 creditsInstant
Convert a PDF to an Excel (.xlsx) spreadsheet: one row per text line, with the page number in the first column. TEXT-ONLY conversion: the extracted text is rebuilt as rows; images, tables and the original layout are not preserved (full-fidelity conversion needs LibreOffice, which does not run on Cloudflare Workers). Scanned/image-only PDFs have no text to convert. Max 100 pages / 10,000 rows. Upload base64 (max 200 KB) or give a URL (max 5 MB).
Input
| Field | Type | Description |
|---|---|---|
file | string | Base64-encoded PDF (max 200 KB). One of file or url is required. |
url | string | URL of the PDF (max 5 MB). One of file or url is required. |
Try it
POST/api/v1/pdf-to-pptPDF to PowerPoint20 creditsInstant
Convert a PDF to a PowerPoint (.pptx) deck, one slide per PDF page. TEXT-ONLY conversion: the extracted text is rebuilt as text boxes; images, shapes and the original layout are not preserved (full-fidelity conversion needs LibreOffice, which does not run on Cloudflare Workers). Scanned/image-only PDFs have no text to convert. Max 100 pages. Upload base64 (max 200 KB) or give a URL (max 5 MB).
Input
| Field | Type | Description |
|---|---|---|
file | string | Base64-encoded PDF (max 200 KB). One of file or url is required. |
url | string | URL of the PDF (max 5 MB). One of file or url is required. |
Try it
POST/api/v1/remove-backgroundRemove Background25 creditsInstant
NOT YET AVAILABLE on the API: AI background removal needs an ONNX segmentation model (U²-Net) running on a worker, which Cloudflare Workers cannot host (no ONNX runtime, 10 MB script limit, 128 MB memory). Calling it returns an honest "not available" error and charges 0 credits. The same removal already works in your browser on this site (Remove Background tool, on-device AI) — only the API/MCP version is missing.
Input
| Field | Type | Description |
|---|---|---|
image | string | Base64-encoded PNG (max 200 KB). |
url | string | URL of the image (max 5 MB). |
Try it
POST/api/v1/website-screenshotWebsite Screenshot25 creditsNetwork
Take a screenshot of any public web page (one viewport, or the full page) and get a PNG back. Rendered by a free third-party screenshot service (thum.io, with microlink as fallback — no key; their availability and rate limits apply). Same SSRF protection as every other tool: public addresses only. PNG output only.
Input
| Field | Type | Description |
|---|---|---|
url required | string | Page URL to capture. |
width | integer | Viewport width in pixels. Default: 1280 320–1920 |
height | integer | Viewport height (ignored for full-page captures). Default: 800 400–1600 |
fullPage | boolean | Capture the full page height instead of one viewport. Default: false |
Try it
POST/api/v1/html-to-imageHTML to Image25 creditsInstant
NOT YET AVAILABLE on the API: turning raw HTML into an image needs headless Chromium. The free screenshot services this API can use (thum.io, microlink) only capture live URLs — both reject raw HTML (tested 2026-11-09: thum.io returns 400, microlink rejects data: URLs). Calling it returns an honest "not available" error and charges 0 credits. Use website-screenshot for any live URL instead.
Input
| Field | Type | Description |
|---|---|---|
html required | string | HTML to render (max 100 KB). |
width | integer | Output width in pixels. Default: 1280 320–1920 |
height | integer | Output height in pixels. Default: 800 400–1600 |
Try it
POST/api/v1/image-upscaleImage Upscaler30 creditsInstant
Enlarge a PNG image 2x or 4x with high-quality (separable bilinear) interpolation. This is classic upscaling, NOT AI: it will not invent new detail the way Real-ESRGAN does — Real-ESRGAN needs a GPU worker, which does not exist yet. PNG input only (max 200 KB upload / 5 MB by URL; input capped at 4 megapixels, output at 16 megapixels).
Input
| Field | Type | Description |
|---|---|---|
image | string | Base64-encoded PNG (max 200 KB). One of image or url is required. |
url | string | URL of the PNG (max 5 MB). One of image or url is required. |
scale | integer 2 · 4 | Enlarge 2x or 4x. Default: 2 |
Try it
Let your AI assistant use the tools
Our MCP server speaks the Streamable HTTP transport. Add the URL with your key and your assistant can check DNS, SSL, redirects, SEO tags and more on its own. Each tool tells the model its price.
https://api.apextoolstation.com/api/mcp?key=ats_live_YOUR_KEYClaude Code
Run this once in your terminal.
claude mcp add --transport http apex-tools "https://api.apextoolstation.com/api/mcp?key=ats_live_YOUR_KEY"Claude (web & desktop)
Settings → Connectors → Add custom connector, then paste the server URL above.
Use the server URL with your key in it. Then turn the connector on in a chat and ask, for example, “Check the SSL certificate of example.com”.
Cursor
Add to ~/.cursor/mcp.json.
{
"mcpServers": {
"apex-tools": {
"url": "https://api.apextoolstation.com/api/mcp",
"headers": { "Authorization": "Bearer ats_live_YOUR_KEY" }
}
}
}VS Code
Add to .vscode/mcp.json in your project.
{
"servers": {
"apex-tools": {
"type": "http",
"url": "https://api.apextoolstation.com/api/mcp",
"headers": { "Authorization": "Bearer ats_live_YOUR_KEY" }
}
}
}Other clients: use the “Streamable HTTP” (or just “HTTP”) transport and send your key as a Bearer token, or keep it in the URL as ?key=. Browsing the tool list is free; only tool calls use credits.
Pay per successful call. Nothing else.
Start with 200 free credits and get 100 more every month. Top up with a one-off pack when you need more. No subscription, and credits never expire.
For side projects, scripts and trying things out.
Choose StarterThe sweet spot for a live app or a busy AI agent.
Choose ProLowest price per call, for automated workloads.
Choose BusinessWhat each endpoint costs
| Endpoint | Group | Credits | Why this price |
|---|---|---|---|
base64Base64 Encode / Decode | Data & Text | 1 | Pure computation, no outbound traffic. |
case-convertCase Converter | Data & Text | 1 | Pure computation, no outbound traffic. |
currency-ratesCurrency Exchange Rates | Data & Text | 1 | One request to a free rates service, cached for an hour. |
dns-lookupDNS Lookup | Network & DNS | 1 | A few DNS questions to public resolvers, answered in milliseconds. |
gold-priceGold & Silver Price | Data & Text | 1 | One request to a free metals service, cached for 10 minutes. |
hashHash Generator | Security | 1 | Pure computation, no outbound traffic. |
ip-lookupIP Address Lookup | Network & DNS | 1 | One request to a free geolocation service, cached for an hour. |
json-formatJSON Formatter & Validator | Data & Text | 1 | Pure computation, no outbound traffic. |
jwt-decodeJWT Decoder | Security | 1 | Pure computation, no outbound traffic. |
passwordPassword Generator | Security | 1 | Pure computation, no outbound traffic. |
qr-generateQR Code Generator | Data & Text | 1 | Pure computation, no outbound traffic. |
reverse-ipReverse IP Lookup | Network & DNS | 1 | One PTR question to public DNS resolvers. |
text-statsWord & Character Counter | Data & Text | 1 | Pure computation, no outbound traffic. |
timestampUnix Timestamp Converter | Data & Text | 1 | Pure computation, no outbound traffic. |
url-encodeURL Encode / Decode | Data & Text | 1 | Pure computation, no outbound traffic. |
uuidUUID Generator | Security | 1 | Pure computation, no outbound traffic. |
website-statusWebsite Up/Down Check | Web & HTTP | 1 | A single request with a short timeout. |
bcrypt-hashBcrypt Hash Generator | Security | 2 | A deliberately slow hash — about 250 ms of CPU at the default cost. |
bcrypt-verifyBcrypt Hash Verifier | Security | 2 | A deliberately slow hash check, same cost as hashing. |
email-authSPF, DKIM & DMARC Check | Network & DNS | 2 | Around 25 DNS queries: MX, SPF, DMARC and many DKIM selectors. |
http-headersHTTP Headers & Security Grade | Web & HTTP | 2 | A full request to your page, following redirects. |
http-requestHTTP Request Tester | Web & HTTP | 2 | One outbound request with a body and custom headers. |
pdf-metadataPDF Metadata Reader | Documents | 2 | Parses the PDF header and information dictionary — no rendering. |
pingPing & Latency Check | Network & DNS | 2 | Three quick requests plus an HTTP fallback when HTTPS fails. |
redirect-chainRedirect Chain Tracer | Web & HTTP | 2 | One outbound request for every hop in the chain. |
robots-sitemapRobots.txt & Sitemap Check | SEO | 2 | Fetches robots.txt and up to three sitemaps. |
seo-metaSEO Meta Tag Extractor | SEO | 2 | Downloads and parses a whole HTML page. |
ssl-checkSSL Certificate Check | Network & DNS | 2 | A live HTTPS handshake plus a certificate log lookup. |
watermark-imageImage Watermark | Images | 2 | Decodes the PNG, draws text and re-encodes it — pure computation. |
argon2-hashArgon2 Hash Generator | Security | 3 | Argon2id is memory-hard: about 1 second of CPU and 8 MB of memory per hash. |
argon2-verifyArgon2 Hash Verifier | Security | 3 | Argon2id verification re-derives the hash: same cost as hashing. |
smtp-testSMTP Server Test | Network & DNS | 3 | Resolves MX records, opens a real TCP connection and speaks SMTP. |
web-scrapeWeb Scraper | Web & HTTP | 3 | Downloads and parses a whole HTML page. |
broken-linksLink Status Checker | Web & HTTP | 8 | Up to 40 outbound requests in one call. |
ppt-to-pdfPowerPoint to PDF | Documents | 15 | Parses the slides and renders a text-only PDF in pure JS — no LibreOffice worker exists yet. |
word-to-pdfWord to PDF | Documents | 15 | Parses the document and renders a text-only PDF in pure JS — no LibreOffice worker exists yet. |
pdf-to-excelPDF to Excel | Documents | 20 | Extracts the PDF text and rebuilds it as a spreadsheet in pure JS — no LibreOffice worker exists yet. |
pdf-to-pptPDF to PowerPoint | Documents | 20 | Extracts the PDF text and rebuilds it as slides in pure JS — no LibreOffice worker exists yet. |
pdf-to-wordPDF to Word | Documents | 20 | Extracts the PDF text and rebuilds it as a Word document in pure JS — no LibreOffice worker exists yet. |
html-to-imageHTML to Image | Images | 25 | Rendering raw HTML needs headless Chromium, which does not exist yet — this tool is not available, so it never charges. |
remove-backgroundRemove Background | Images | 25 | AI segmentation needs an ONNX worker that does not exist yet — this tool is not available, so it never charges. |
website-screenshotWebsite Screenshot | Images | 25 | Renders the page in a real browser via a free screenshot service (one or two requests). |
image-upscaleImage Upscaler | Images | 30 | Pure-CPU resampling of every pixel — the heaviest synchronous job in the catalogue. |
Successful calls are charged
You pay the listed price only when the call returns a result.
Invalid input is free
If a field is missing or wrong, the credits go straight back.
Our failures are refunded
Timeouts or errors on our side never cost you anything.
Balance on every reply
The X-Credits-Remaining header shows what is left after each call.
Responses, errors & limits
Every response is JSON with an ok flag. HTTP status codes tell you what happened.
| Status | Code | Meaning |
|---|---|---|
| 200 | — | Success. Result is in data. |
| 400 | bad_request | A field is missing or invalid, or the target could not be reached. error.message explains it in plain words. |
| 401 | missing_key / invalid_key | No API key was sent, or it was revoked. Create one in your account. |
| 402 | insufficient_credits | Your balance is lower than the price of this call. Top up in Billing. |
| 404 | not_found | No tool with that name. GET /api/v1 lists them all. |
| 429 | rate_limited | Too many calls from your IP. Wait for the Retry-After seconds. |
| 500 | server_error | Something failed on our side. Try again shortly. |
| MCP | — | MCP tools/call errors return a generic error message — insufficient credits has no distinct MCP error code (REST returns 402). |
Network tools never connect to private, loopback or cloud-metadata addresses, and only use ports 80, 443, 8080 and 8443.
How much does it cost?
Every new account gets 200 free credits, plus 100 more on the 1st of every month. Most calls cost 1 or 2 credits. When you need more, buy a one-off credit pack; there is no subscription.
Which calls use credits?
Only successful ones. If your input is invalid or the call fails, the credits are returned straight away and the call shows as refunded in your usage.
Do credits expire?
No. Purchased credits stay on your account until you use them, and they add up with the free monthly allowance.
What are the rate limits?
Network tools (DNS, SSL, HTTP, SEO and link checks) allow about 30 requests per minute per IP. Instant tools (hashing, encoding, text) allow about 120. Going over returns HTTP 429 with a Retry-After header.
Do you log or store what I send?
No. Inputs and results are not stored. Network tools contact the domain or URL you give them from our server and return the answer to you.
Can I call the API from a web page?
Yes. Every endpoint sends CORS headers, so you can call it with fetch() straight from the browser.
Which MCP clients work?
Any client that supports the Streamable HTTP transport, including Claude (web, desktop and Claude Code), Cursor, VS Code, Windsurf and custom agents built on an MCP SDK.
Can I use it in a commercial product?
Yes. For very high or guaranteed volumes, contact us and we can set up a dedicated plan.