REST API v1

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.

terminal
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.

response.json
{
  "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.

terminal
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

Free

1,000 calls/month

10 requests/minute

  • All 15 endpoints
  • JSON responses
  • Standard support
Popular

Dev

EUR 19/month

50,000 calls/month

60 requests/minute

  • All 15 endpoints
  • Priority queue
  • Email support
  • Usage dashboard

Scale

EUR 99/month

500,000 calls/month

300 requests/minute

  • All 15 endpoints
  • Priority queue
  • Dedicated support
  • Usage dashboard
  • Webhook notifications
  • Custom rate limits

Rate limits

PlanMonthly callsRate limitBurst
Free1,00010 req/min5 req/sec
Dev50,00060 req/min20 req/sec
Scale500,000300 req/min50 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.

POST/api/v1/tools/text-diff

Compare two texts and return a structured diff with additions, deletions, and unchanged lines.

Request body

request.json
{
  "original": "Hello world",
  "modified": "Hello there, world!"
}

Response

response.json
{
  "changes": [
    {
      "type": "equal",
      "value": "Hello "
    },
    {
      "type": "delete",
      "value": "world"
    },
    {
      "type": "insert",
      "value": "there, world!"
    }
  ]
}

curl example

terminal
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!"}'
POST/api/v1/tools/json-formatter

Format, validate, and prettify JSON strings. Returns formatted output or validation errors.

Request body

request.json
{
  "json": "{\"name\":\"ToolForte\",\"version\":1}",
  "indent": 2
}

Response

response.json
{
  "formatted": "{\n  \"name\": \"ToolForte\",\n  \"version\": 1\n}",
  "valid": true
}

curl example

terminal
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}'
POST/api/v1/tools/markdown-to-html

Convert Markdown content to sanitized HTML. Supports GFM tables, code blocks, and task lists.

Request body

request.json
{
  "markdown": "# Hello\n\nThis is **bold** text."
}

Response

response.json
{
  "html": "<h1>Hello</h1>\n<p>This is <strong>bold</strong> text.</p>"
}

curl example

terminal
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."}'
POST/api/v1/tools/csv-to-json

Parse CSV data into a JSON array of objects. Auto-detects delimiters and handles quoted fields.

Request body

request.json
{
  "csv": "name,age\nAlice,30\nBob,25",
  "delimiter": ","
}

Response

response.json
{
  "data": [
    {
      "name": "Alice",
      "age": "30"
    },
    {
      "name": "Bob",
      "age": "25"
    }
  ],
  "rows": 2,
  "columns": 2
}

curl example

terminal
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":","}'
POST/api/v1/tools/url-encoder

Encode or decode URL components. Handles special characters and unicode.

Request body

request.json
{
  "text": "hello world & foo=bar",
  "mode": "encode"
}

Response

response.json
{
  "result": "hello%20world%20%26%20foo%3Dbar"
}

curl example

terminal
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"}'
POST/api/v1/tools/base64

Encode text to Base64 or decode Base64 strings back to plain text.

Request body

request.json
{
  "text": "Hello, ToolForte!",
  "mode": "encode"
}

Response

response.json
{
  "result": "SGVsbG8sIFRvb2xGb3J0ZSE="
}

curl example

terminal
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"}'
POST/api/v1/tools/regex-tester

Test a regular expression against a string. Returns all matches with groups and indices.

Request body

request.json
{
  "pattern": "(\\d{4})-(\\d{2})-(\\d{2})",
  "flags": "g",
  "text": "Today is 2026-04-08 and tomorrow is 2026-04-09."
}

Response

response.json
{
  "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

terminal
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."}'
POST/api/v1/tools/color-converter

Convert colors between HEX, RGB, HSL, and HSB formats. Returns all representations.

Request body

request.json
{
  "color": "#4338ca",
  "format": "hex"
}

Response

response.json
{
  "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

terminal
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"}'
POST/api/v1/tools/password-strength

Analyze password strength and return a score with detailed feedback and suggestions.

Request body

request.json
{
  "password": "MyS3cur3P@ss!"
}

Response

response.json
{
  "score": 4,
  "label": "Strong",
  "crack_time": "centuries",
  "feedback": {
    "suggestions": [],
    "warning": null
  }
}

curl example

terminal
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!"}'
POST/api/v1/tools/word-counter

Count words, characters, sentences, and paragraphs. Estimates reading and speaking time.

Request body

request.json
{
  "text": "The quick brown fox jumps over the lazy dog."
}

Response

response.json
{
  "words": 9,
  "characters": 44,
  "characters_no_spaces": 36,
  "sentences": 1,
  "paragraphs": 1,
  "reading_time_seconds": 2
}

curl example

terminal
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."}'
POST/api/v1/tools/cron-parser

Parse a cron expression into a human-readable description and list the next N scheduled runs.

Request body

request.json
{
  "expression": "0 9 * * MON-FRI",
  "count": 3
}

Response

response.json
{
  "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

terminal
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}'
POST/api/v1/tools/uuid-generator

Generate one or more UUIDs (v4). Optionally return as uppercase or without dashes.

Request body

request.json
{
  "count": 2,
  "uppercase": false
}

Response

response.json
{
  "uuids": [
    "f47ac10b-58cc-4372-a567-0e02b2c3d479",
    "7c9e6679-7425-40de-944b-e07fc1f90ae7"
  ]
}

curl example

terminal
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}'
POST/api/v1/tools/iban-validator

Validate an IBAN number. Returns country, bank code, and checksum verification.

Request body

request.json
{
  "iban": "DE89370400440532013000"
}

Response

response.json
{
  "valid": true,
  "country": "Germany",
  "country_code": "DE",
  "bank_code": "37040044",
  "checksum": "89"
}

curl example

terminal
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"}'
POST/api/v1/tools/slug-generator

Convert any text into a URL-friendly slug. Handles unicode, diacritics, and special characters.

Request body

request.json
{
  "text": "Hello World! This is a Test.",
  "separator": "-"
}

Response

response.json
{
  "slug": "hello-world-this-is-a-test"
}

curl example

terminal
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":"-"}'
POST/api/v1/tools/email-validator

Validate email address syntax and check for common typos in popular domain names.

Request body

request.json
{
  "email": "user@gmial.com"
}

Response

response.json
{
  "valid": true,
  "syntax_ok": true,
  "suggestion": "user@gmail.com",
  "disposable": false
}

curl example

terminal
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

400

Bad Request

The request body is missing required fields or contains invalid data.

{ "error": "Missing required field: text", "code": 400 }
401

Unauthorized

API key is missing, invalid, or has been revoked.

{ "error": "Invalid or missing API key", "code": 401 }
429

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 }
500

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.