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
CodeHTTPMeaning
TOOL_NOT_FOUND404Unknown tool slug — see /tools for valid slugs
RATE_LIMITED429Too many requests; check X-RateLimit-* headers
INVALID_API_KEY401Key missing, revoked, or expired
INVALID_INPUT400Body failed the tool's input contract
FILE_TOO_LARGE413Uploaded file exceeds the 10MB limit
CONTRACT_VIOLATION422Engine 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.