Public API
UtilityForge API
Automate any of our 450+ tools from your own code. Get a free API key, make a POST request, get JSON back. No SDK required.
Free API Keys
Request a key via the contact form — approved within 24 hours.
600 req/min
With a key. Anonymous callers get 30 req/min per IP.
Typed Results
Structured JSON responses with per-tool input/output contracts.
Endpoint
POST
/api/execute/{tool-slug}Authentication (optional)
x-api-key: uf_<your-key>Send your key in the header to unlock the privileged rate tier.
JSON body
{
"data": {
"operation": "merge-pdf",
"mode": "normal"
},
"files": [ /* multipart upload for file tools */ ]
}File tools (multipart/form-data)
POST /api/execute/image-resizer
Content-Type: multipart/form-data
x-api-key: uf_xxxx
files[] = photo.jpg
data = { "operation": "resize", "width": 800 }Code Examples
cURL
curl -X POST https://www.utilityforges.com/api/execute/word-counter \
-H "Content-Type: application/json" \
-H "x-api-key: uf_YOUR_KEY" \
-d '{"data": {"text": "hello world hello"}}'JavaScript (fetch)
const res = await fetch(
"https://www.utilityforges.com/api/execute/json-formatter",
{
method: "POST",
headers: {
"Content-Type": "application/json",
"x-api-key": "uf_YOUR_KEY"
},
body: JSON.stringify({
data: { json: '{"a":1}' }
})
}
);
const result = await res.json();Python
import requests
resp = requests.post(
"https://www.utilityforges.com/api/execute/hash-generator",
headers={"x-api-key": "uf_YOUR_KEY"},
json={"data": {"text": "hello", "algorithm": "md5"}},
)
print(resp.json())Sample response
{
"success": true,
"data": { "words": 4, "characters": 17 },
"metadata": {
"executionTime": "0.62ms"
}
}Rate Limits & Errors
Anonymous
30 requests / minute / IP
With API key
600 requests / minute
| Code | HTTP | Meaning |
|---|---|---|
| TOOL_NOT_FOUND | 404 | Unknown tool slug — see /tools for valid slugs |
| RATE_LIMITED | 429 | Too many requests; check X-RateLimit-* headers |
| INVALID_API_KEY | 401 | Key missing, revoked, or expired |
| INVALID_INPUT | 400 | Body failed the tool's input contract |
| FILE_TOO_LARGE | 413 | Uploaded file exceeds the 10MB limit |
| CONTRACT_VIOLATION | 422 | Engine output did not match the documented shape |
Get your free API key
Fill out the contact form with a short description of your use case and we'll issue your key within 24 hours.