ToolForte Developer API
Access 15+ utility tools via REST API. Parse, validate, convert, and generate - all from a single integration.
Quick start
1. Get your API key
Sign up at toolforte.com/developers/register to receive your free API key. The key is sent to your email instantly. No credit card required for the free tier.
2. Make your first request
All endpoints accept POST requests with a JSON body. Pass your API key in the X-API-Key header.
curl -X POST https://toolforte.com/api/v1/tools/json-formatter \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"json": "{\"name\": \"ToolForte\"}", "indent": 2}'3. Handle the response
Every response returns JSON with the tool-specific result. On success you get a 200 status code.
{
"formatted": "{\n \"name\": \"ToolForte\"\n}",
"valid": true
}Authentication
Authenticate every request by including your API key in the X-API-Key header. Never expose your key in client-side code or public repositories.
curl -X POST https://toolforte.com/api/v1/tools/uuid-generator \
-H "Content-Type: application/json" \
-H "X-API-Key: tf_live_abc123def456" \
-d '{"count": 1}'Security tip: Keep your API key server-side. If you suspect a key has been compromised, rotate it immediately from your dashboard.
Pricing
Start free. Upgrade when you need more.
Free
1,000 calls/month
10 requests/minute
- All 15 endpoints
- JSON responses
- Standard support
Dev
50,000 calls/month
60 requests/minute
- All 15 endpoints
- Priority queue
- Email support
- Usage dashboard
Scale
500,000 calls/month
300 requests/minute
- All 15 endpoints
- Priority queue
- Dedicated support
- Usage dashboard
- Webhook notifications
- Custom rate limits
Rate limits
| Plan | Monthly calls | Rate limit | Burst |
|---|---|---|---|
| Free | 1,000 | 10 req/min | 5 req/sec |
| Dev | 50,000 | 60 req/min | 20 req/sec |
| Scale | 500,000 | 300 req/min | 50 req/sec |
Rate limit headers are included in every response: X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset.
Endpoints
All endpoints accept POST requests with a JSON body and return JSON responses.
/api/v1/tools/text-diffCompare two texts and return a structured diff with additions, deletions, and unchanged lines.
Request body
{
"original": "Hello world",
"modified": "Hello there, world!"
}Response
{
"changes": [
{
"type": "equal",
"value": "Hello "
},
{
"type": "delete",
"value": "world"
},
{
"type": "insert",
"value": "there, world!"
}
]
}curl example
curl -X POST https://toolforte.com/api/v1/tools/text-diff \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"original":"Hello world","modified":"Hello there, world!"}'/api/v1/tools/json-formatterFormat, validate, and prettify JSON strings. Returns formatted output or validation errors.
Request body
{
"json": "{\"name\":\"ToolForte\",\"version\":1}",
"indent": 2
}Response
{
"formatted": "{\n \"name\": \"ToolForte\",\n \"version\": 1\n}",
"valid": true
}curl example
curl -X POST https://toolforte.com/api/v1/tools/json-formatter \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"json":"{\"name\":\"ToolForte\",\"version\":1}","indent":2}'/api/v1/tools/markdown-to-htmlConvert Markdown content to sanitized HTML. Supports GFM tables, code blocks, and task lists.
Request body
{
"markdown": "# Hello\n\nThis is **bold** text."
}Response
{
"html": "<h1>Hello</h1>\n<p>This is <strong>bold</strong> text.</p>"
}curl example
curl -X POST https://toolforte.com/api/v1/tools/markdown-to-html \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"markdown":"# Hello\n\nThis is **bold** text."}'/api/v1/tools/csv-to-jsonParse CSV data into a JSON array of objects. Auto-detects delimiters and handles quoted fields.
Request body
{
"csv": "name,age\nAlice,30\nBob,25",
"delimiter": ","
}Response
{
"data": [
{
"name": "Alice",
"age": "30"
},
{
"name": "Bob",
"age": "25"
}
],
"rows": 2,
"columns": 2
}curl example
curl -X POST https://toolforte.com/api/v1/tools/csv-to-json \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"csv":"name,age\nAlice,30\nBob,25","delimiter":","}'/api/v1/tools/url-encoderEncode or decode URL components. Handles special characters and unicode.
Request body
{
"text": "hello world & foo=bar",
"mode": "encode"
}Response
{
"result": "hello%20world%20%26%20foo%3Dbar"
}curl example
curl -X POST https://toolforte.com/api/v1/tools/url-encoder \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"text":"hello world & foo=bar","mode":"encode"}'/api/v1/tools/base64Encode text to Base64 or decode Base64 strings back to plain text.
Request body
{
"text": "Hello, ToolForte!",
"mode": "encode"
}Response
{
"result": "SGVsbG8sIFRvb2xGb3J0ZSE="
}curl example
curl -X POST https://toolforte.com/api/v1/tools/base64 \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"text":"Hello, ToolForte!","mode":"encode"}'/api/v1/tools/regex-testerTest a regular expression against a string. Returns all matches with groups and indices.
Request body
{
"pattern": "(\\d{4})-(\\d{2})-(\\d{2})",
"flags": "g",
"text": "Today is 2026-04-08 and tomorrow is 2026-04-09."
}Response
{
"matches": [
{
"match": "2026-04-08",
"index": 9,
"groups": [
"2026",
"04",
"08"
]
},
{
"match": "2026-04-09",
"index": 37,
"groups": [
"2026",
"04",
"09"
]
}
],
"count": 2
}curl example
curl -X POST https://toolforte.com/api/v1/tools/regex-tester \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"pattern":"(\\d{4})-(\\d{2})-(\\d{2})","flags":"g","text":"Today is 2026-04-08 and tomorrow is 2026-04-09."}'/api/v1/tools/color-converterConvert colors between HEX, RGB, HSL, and HSB formats. Returns all representations.
Request body
{
"color": "#4338ca",
"format": "hex"
}Response
{
"hex": "#4338ca",
"rgb": {
"r": 67,
"g": 56,
"b": 202
},
"hsl": {
"h": 245,
"s": 58,
"l": 51
},
"hsb": {
"h": 245,
"s": 72,
"b": 79
}
}curl example
curl -X POST https://toolforte.com/api/v1/tools/color-converter \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"color":"#4338ca","format":"hex"}'/api/v1/tools/password-strengthAnalyze password strength and return a score with detailed feedback and suggestions.
Request body
{
"password": "MyS3cur3P@ss!"
}Response
{
"score": 4,
"label": "Strong",
"crack_time": "centuries",
"feedback": {
"suggestions": [],
"warning": null
}
}curl example
curl -X POST https://toolforte.com/api/v1/tools/password-strength \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"password":"MyS3cur3P@ss!"}'/api/v1/tools/word-counterCount words, characters, sentences, and paragraphs. Estimates reading and speaking time.
Request body
{
"text": "The quick brown fox jumps over the lazy dog."
}Response
{
"words": 9,
"characters": 44,
"characters_no_spaces": 36,
"sentences": 1,
"paragraphs": 1,
"reading_time_seconds": 2
}curl example
curl -X POST https://toolforte.com/api/v1/tools/word-counter \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"text":"The quick brown fox jumps over the lazy dog."}'/api/v1/tools/cron-parserParse a cron expression into a human-readable description and list the next N scheduled runs.
Request body
{
"expression": "0 9 * * MON-FRI",
"count": 3
}Response
{
"description": "At 09:00 on every day-of-week from Monday through Friday",
"next_runs": [
"2026-04-09T09:00:00Z",
"2026-04-10T09:00:00Z",
"2026-04-11T09:00:00Z"
],
"valid": true
}curl example
curl -X POST https://toolforte.com/api/v1/tools/cron-parser \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"expression":"0 9 * * MON-FRI","count":3}'/api/v1/tools/uuid-generatorGenerate one or more UUIDs (v4). Optionally return as uppercase or without dashes.
Request body
{
"count": 2,
"uppercase": false
}Response
{
"uuids": [
"f47ac10b-58cc-4372-a567-0e02b2c3d479",
"7c9e6679-7425-40de-944b-e07fc1f90ae7"
]
}curl example
curl -X POST https://toolforte.com/api/v1/tools/uuid-generator \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"count":2,"uppercase":false}'/api/v1/tools/iban-validatorValidate an IBAN number. Returns country, bank code, and checksum verification.
Request body
{
"iban": "DE89370400440532013000"
}Response
{
"valid": true,
"country": "Germany",
"country_code": "DE",
"bank_code": "37040044",
"checksum": "89"
}curl example
curl -X POST https://toolforte.com/api/v1/tools/iban-validator \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"iban":"DE89370400440532013000"}'/api/v1/tools/slug-generatorConvert any text into a URL-friendly slug. Handles unicode, diacritics, and special characters.
Request body
{
"text": "Hello World! This is a Test.",
"separator": "-"
}Response
{
"slug": "hello-world-this-is-a-test"
}curl example
curl -X POST https://toolforte.com/api/v1/tools/slug-generator \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"text":"Hello World! This is a Test.","separator":"-"}'/api/v1/tools/email-validatorValidate email address syntax and check for common typos in popular domain names.
Request body
{
"email": "user@gmial.com"
}Response
{
"valid": true,
"syntax_ok": true,
"suggestion": "user@gmail.com",
"disposable": false
}curl example
curl -X POST https://toolforte.com/api/v1/tools/email-validator \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"email":"user@gmial.com"}'Error codes
Bad Request
The request body is missing required fields or contains invalid data.
{ "error": "Missing required field: text", "code": 400 }Unauthorized
API key is missing, invalid, or has been revoked.
{ "error": "Invalid or missing API key", "code": 401 }Too Many Requests
You have exceeded the rate limit for your plan. Check the Retry-After header.
{ "error": "Rate limit exceeded. Retry after 30 seconds", "code": 429, "retry_after": 30 }Internal Server Error
Something went wrong on our end. If this persists, contact support.
{ "error": "Internal server error", "code": 500 }Base URL
https://toolforte.com/api/v1/tools/All API traffic is served over HTTPS. HTTP requests are automatically redirected. The API supports gzip and brotli compression via the Accept-Encoding header.