Developer API — REST v1

Integrate any tool
into your workflow.

Access 15+ utility tools via REST API. Parse, validate, convert, and generate — all from a single integration. Free tier with 1,000 calls per month.

Quick start

Three steps to your first call.

1. Get your API key

Create a free account to get your API key. You can find it in your account dashboard. 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

API key in every header.

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

€19/month
50,000 calls/month
60 requests/minute
  • All 15 endpoints
  • Priority queue
  • Email support
  • Usage dashboard

Scale

€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

Transparent 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

15 REST endpoints.

All endpoints accept POST requests with a JSON body and return JSON responses.

Text DiffJSON FormatterMarkdown to HTMLCSV to JSONURL Encoder/DecoderBase64 Encode/DecodeRegex TesterColor ConverterPassword StrengthWord CounterCron ParserUUID GeneratorIBAN ValidatorSlug GeneratorEmail Validator
POST/api/v1/tools/text-diff

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

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

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

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

URL Encoder/Decoder

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

Base64 Encode/Decode

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

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

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

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

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

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

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

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

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

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

When things go wrong.

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

One endpoint root.

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.