POST/api/v1/tools/text-diff
Text Diff
Compare two texts and return a structured diff with additions, deletions, and unchanged lines.
Try the browser version of this tool
· 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/markdown-to-html
Markdown to HTML
Convert Markdown content to sanitized HTML. Supports GFM tables, code blocks, and task lists.
Try the browser version of this tool
· 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.
Try the browser version of this tool
· 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.
Try the browser version of this tool
· 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.
Try the browser version of this tool
· 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.
Try the browser version of this tool
· 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.
Try the browser version of this tool
· 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.
Try the browser version of this tool
· 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.
Try the browser version of this tool
· 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.
Try the browser version of this tool
· 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.
Try the browser version of this tool
· 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.
Try the browser version of this tool
· 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.
Try the browser version of this tool
· 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"}'
POST/api/v1/tools/vat-calculator
VAT Calculator
Add VAT to a net amount or extract VAT from a gross amount, at any rate. Built for invoicing and pricing flows.
Try the browser version of this tool
· Request body
· request.json
{
"amount": 100,
"rate": 21,
"mode": "add"
}
· Response
· response.json
{
"net": 100,
"vat": 21,
"gross": 121,
"rate": 21
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/vat-calculator \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"amount":100,"rate":21,"mode":"add"}'
POST/api/v1/tools/vat-number-check
VAT Number Format Check
Validate the format of EU (plus GB/CH) VAT numbers before storing them. Syntax check only, no VIES lookup.
Try the browser version of this tool
· Request body
· request.json
{
"vatNumber": "NL123456789B01"
}
· Response
· response.json
{
"input": "NL123456789B01",
"normalized": "NL123456789B01",
"country": "NL",
"validFormat": true,
"note": "Format is valid. This is a syntax check only; use the EU VIES service to confirm registration."
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/vat-number-check \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"vatNumber":"NL123456789B01"}'
POST/api/v1/tools/dutch-holidays
Dutch Public Holidays
All Dutch public holidays for a given year, including movable feasts like Easter, Ascension Day, and King's Day.
Try the browser version of this tool
· Request body
· request.json
{
"year": 2026
}
· Response
· response.json
{
"year": 2026,
"holidays": [
{
"date": "2026-04-27",
"name": "Koningsdag",
"nameEn": "King's Day",
"dayOff": true
}
]
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/dutch-holidays \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"year":2026}'
POST/api/v1/tools/working-days
Working Days Calculator
Count working days (Monday to Friday) between two dates, optionally excluding Dutch public holidays. Ideal for SLA and payroll calculations.
Try the browser version of this tool
· Request body
· request.json
{
"start": "2026-09-01",
"end": "2026-09-30",
"excludeDutchHolidays": true
}
· Response
· response.json
{
"start": "2026-09-01",
"end": "2026-09-30",
"totalDays": 30,
"workingDays": 22,
"weekendDays": 8,
"holidaysExcluded": []
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/working-days \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"start":"2026-09-01","end":"2026-09-30","excludeDutchHolidays":true}'
POST/api/v1/tools/test-bsn-generator
Test BSN Generator
Generate Dutch BSN test numbers that pass the elfproef (11-check) but are not linked to real persons. For development and test environments.
Try the browser version of this tool
· Request body
· request.json
{
"count": 3
}
· Response
· response.json
{
"count": 3,
"bsns": [
"111222333",
"123456782",
"987654321"
],
"note": "Test numbers that pass the elfproef (11-check). They are not linked to real persons."
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/test-bsn-generator \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"count":3}'
POST/api/v1/tools/test-iban-generator
Test IBAN Generator
Generate structurally valid test IBANs (correct mod-97 check digits) for NL, DE, BE, FR, or GB that are not linked to real bank accounts. For development and test environments.
Try the browser version of this tool
· Request body
· request.json
{
"country": "NL",
"count": 3
}
· Response
· response.json
{
"count": 3,
"country": "NL",
"ibans": [
"NL91ABNA0417164300",
"NL02RABO0123456789",
"NL39INGB0001234567"
],
"note": "Structurally valid IBANs (correct mod-97 check digits) not linked to real bank accounts. For test environments only."
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/test-iban-generator \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"country":"NL","count":3}'
POST/api/v1/tools/brp-test-data-generator
BRP Test Data Generator
Generate Dutch BRP/GBA test persons: valid BSNs, families, addresses and life events. Every setting on the tool page is a field here, and the same seed always returns the same people, so a test suite can assert on fixed values. Formats: json, csv, gba-totaalfile. Full parameter reference at /developers/generators.
Try the browser version of this tool
· Request body
· request.json
{
"format": "json",
"options": {
"count": 25,
"seed": 20270101,
"minAge": 60,
"maxAge": 80,
"eventMix": {
"married": 5,
"widowed": 3,
"deceased": 1
}
}
}
· Response
· response.json
{
"format": "json",
"count": 25,
"seed": 20270101,
"people": [
{
"bsn": "123456782",
"lastName": "de Vries",
"dateOfBirth": "19620314",
"lifeEvent": "married"
}
]
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/brp-test-data-generator \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"format":"json","options":{"count":25,"seed":20270101,"minAge":60,"maxAge":80,"eventMix":{"married":5,"widowed":3,"deceased":1}}}'
POST/api/v1/tools/upa-file-generator
UPA File Generator
Generate UPA pension declaration XML for one or more periods: employments, schemes, household situations and, when you ask for them, deliberate defects that the receiving system should reject. Every setting on the tool page is a field here and the seed makes it repeatable. Formats: xml, summary, participants-csv. Full parameter reference at /developers/generators.
Try the browser version of this tool
· Request body
· request.json
{
"format": "xml",
"options": {
"schemeType": "FPR",
"population": {
"count": 50,
"seed": 20270101
},
"period": {
"startYear": 2027,
"startMonth": 1,
"months": 3
},
"defects": {
"invalidBsn": true
}
}
}
· Response
· response.json
{
"format": "xml",
"fileCount": 3,
"peopleCount": 50,
"warnings": [
"1 deliberate defect injected. These files are meant to be rejected."
],
"files": [
{
"name": "UPA_202701_001.xml",
"periodLabel": "2027-01",
"employments": 50,
"content": "<?xml version=\"1.0\"?>…"
}
]
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/upa-file-generator \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"format":"xml","options":{"schemeType":"FPR","population":{"count":50,"seed":20270101},"period":{"startYear":2027,"startMonth":1,"months":3},"defects":{"invalidBsn":true}}}'
POST/api/v1/tools/text-case-converter
Text Case Converter
Convert a text to one case style: upper, lower, title, sentence, camel, pascal, snake or kebab. Returns the converted string.
Try the browser version of this tool
· Request body
· request.json
{
"text": "hello world from ToolForte",
"mode": "snake"
}
· Response
· response.json
{
"result": "hello_world_from_tool_forte",
"mode": "snake"
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/text-case-converter \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"text":"hello world from ToolForte","mode":"snake"}'
POST/api/v1/tools/lorem-ipsum-generator
Lorem Ipsum Generator
Generate classic lorem ipsum placeholder text as paragraphs, sentences, words or a list, optionally wrapped in HTML. Deterministic: the same options give the same text.
Try the browser version of this tool
· Request body
· request.json
{
"count": 2,
"type": "sentences",
"startWithLorem": true,
"html": false,
"seed": 1
}
· Response
· response.json
{
"text": "Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod tempor incididunt. Lorem ipsum dolor sit amet consectetur adipiscing elit.",
"type": "sentences",
"count": 2,
"words": 26,
"characters": 172,
"paragraphs": 1
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/lorem-ipsum-generator \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"count":2,"type":"sentences","startWithLorem":true,"html":false,"seed":1}'
POST/api/v1/tools/sort-lines
Sort Lines
Sort the lines of a text A to Z, Z to A, by length, in natural numeric order, or shuffle them with a seed. Can drop duplicates and ignore case. Returns the sorted text and line count.
Try the browser version of this tool
· Request body
· request.json
{
"text": "banana\napple\nCherry\nitem10\nitem2",
"mode": "natural",
"caseInsensitive": true,
"removeDuplicates": false,
"reverse": false,
"seed": 1
}
· Response
· response.json
{
"result": "apple\nbanana\nCherry\nitem2\nitem10",
"mode": "natural",
"lines": 5,
"removedDuplicates": 0
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/sort-lines \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"text":"banana\napple\nCherry\nitem10\nitem2","mode":"natural","caseInsensitive":true,"removeDuplicates":false,"reverse":false,"seed":1}'
POST/api/v1/tools/remove-duplicate-lines
Remove Duplicate Lines
Remove repeated lines from a text while keeping the original order. Returns the cleaned text with how many lines were removed.
Try the browser version of this tool
· Request body
· request.json
{
"text": "apple\nbanana\napple\n banana\ncherry",
"caseInsensitive": false,
"trim": true,
"keepFirst": true
}
· Response
· response.json
{
"result": "apple\nbanana\ncherry",
"total": 5,
"kept": 3,
"removed": 2
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/remove-duplicate-lines \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"text":"apple\nbanana\napple\n banana\ncherry","caseInsensitive":false,"trim":true,"keepFirst":true}'
POST/api/v1/tools/reverse-text
Reverse Text
Reverse a text by characters, by word order per line, or by the characters of each line. Returns the reversed string.
Try the browser version of this tool
· Request body
· request.json
{
"text": "one two three",
"mode": "words"
}
· Response
· response.json
{
"result": "three two one",
"mode": "words"
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/reverse-text \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"text":"one two three","mode":"words"}'
POST/api/v1/tools/find-and-replace
Find and Replace
Replace every occurrence of a string or regular expression in a text. Supports case sensitivity, whole word matching and regex groups in the replacement. Returns the new text and the number of replacements.
Try the browser version of this tool
· Request body
· request.json
{
"text": "The cat sat on the mat with another cat.",
"find": "cat",
"replace": "dog",
"caseSensitive": false,
"wholeWord": true,
"useRegex": false
}
· Response
· response.json
{
"result": "The dog sat on the mat with another dog.",
"count": 2
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/find-and-replace \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"text":"The cat sat on the mat with another cat.","find":"cat","replace":"dog","caseSensitive":false,"wholeWord":true,"useRegex":false}'
POST/api/v1/tools/word-frequency-counter
Word Frequency Counter
Count how often each word occurs in a text and return a ranked table, most frequent first, with counts and percentages. Can ignore case, skip short words and drop common stop words.
Try the browser version of this tool
· Request body
· request.json
{
"text": "the cat and the dog and the bird",
"ignoreCase": true,
"minLength": 1,
"excludeStopWords": false,
"limit": 3
}
· Response
· response.json
{
"words": [
{
"rank": 1,
"word": "the",
"count": 3,
"percent": 37.5
},
{
"rank": 2,
"word": "and",
"count": 2,
"percent": 25
},
{
"rank": 3,
"word": "bird",
"count": 1,
"percent": 12.5
}
],
"totalWords": 8,
"uniqueWords": 5
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/word-frequency-counter \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"text":"the cat and the dog and the bird","ignoreCase":true,"minLength":1,"excludeStopWords":false,"limit":3}'
POST/api/v1/tools/reading-time-calculator
Reading Time Calculator
Estimate how long a text takes to read and to speak aloud, from the text itself or a word count, at a chosen words-per-minute plus slow, average and fast presets.
Try the browser version of this tool
· Request body
· request.json
{
"text": "Knowing how long your content takes to read helps you plan articles, documentation and talks. This short paragraph is here as a sample.",
"readingWpm": 238,
"speakingWpm": 150
}
· Response
· response.json
{
"wordCount": 23,
"characters": 135,
"sentences": 2,
"reading": {
"label": "Custom",
"wpm": 238,
"minutes": 0.1,
"time": "< 1 min"
},
"speaking": {
"label": "Custom",
"wpm": 150,
"minutes": 0.15,
"time": "< 1 min"
},
"readingPresets": [
{
"label": "Slow Reader",
"wpm": 150,
"minutes": 0.15,
"time": "< 1 min"
}
],
"speakingPresets": [
{
"label": "Slow Speech",
"wpm": 100,
"minutes": 0.23,
"time": "< 1 min"
}
]
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/reading-time-calculator \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"text":"Knowing how long your content takes to read helps you plan articles, documentation and talks. This short paragraph is here as a sample.","readingWpm":238,"speakingWpm":150}'
POST/api/v1/tools/rot13
ROT13 Cipher
Apply ROT13, or any Caesar shift from 1 to 25, to a text. Letters rotate and keep their case; digits and punctuation stay as they are. Decoding with shift 13 gives the original back.
Try the browser version of this tool
· Request body
· request.json
{
"text": "Hello, World!",
"shift": 13,
"decode": false
}
· Response
· response.json
{
"result": "Uryyb, Jbeyq!",
"shift": 13,
"decode": false
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/rot13 \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"text":"Hello, World!","shift":13,"decode":false}'
POST/api/v1/tools/morse-code-translator
Morse Code Translator
Translate text to International Morse code or Morse back to text. Letters are separated by a space and words by a slash; characters without a Morse code are dropped.
Try the browser version of this tool
· Request body
· request.json
{
"text": "SOS help",
"mode": "encode"
}
· Response
· response.json
{
"result": "... --- ... / .... . .-.. .--.",
"mode": "encode"
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/morse-code-translator \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"text":"SOS help","mode":"encode"}'
POST/api/v1/tools/numbers-to-words
Numbers to Words
Write a number out in English words, up to 999 quadrillion, with decimals read digit by digit or as a currency amount in dollars, euros or pounds. Optional British style with "and".
Try the browser version of this tool
· Request body
· request.json
{
"number": "1234.56",
"mode": "plain",
"currency": "dollars",
"british": false
}
· Response
· response.json
{
"words": "One thousand two hundred thirty-four point five six",
"number": "1234.56"
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/numbers-to-words \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"number":"1234.56","mode":"plain","currency":"dollars","british":false}'
POST/api/v1/tools/roman-numeral-converter
Roman Numeral Converter
Convert a whole number from 1 to 3999 into a Roman numeral, or a Roman numeral back into a number, with strict validation and a symbol-by-symbol breakdown. Detects the direction from the input unless a mode is given.
Try the browser version of this tool
· Request body
· request.json
{
"value": "1994",
"mode": "auto"
}
· Response
· response.json
{
"direction": "toRoman",
"roman": "MCMXCIV",
"number": 1994,
"parts": [
{
"value": 1000,
"symbol": "M"
}
],
"breakdown": "M (1000) + CM (900) + XC (90) + IV (4)"
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/roman-numeral-converter \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"value":"1994","mode":"auto"}'
POST/api/v1/tools/text-cleaner
Text Cleaner
Clean up messy text: collapse extra spaces, trim lines, drop empty lines, strip HTML tags, remove punctuation, digits, emojis or control characters, and straighten smart quotes. Returns the cleaned text and how many characters each step removed.
Try the browser version of this tool
· Request body
· request.json
{
"text": "<p>Hello world</p>\n\n\n “quoted” text ",
"extraSpaces": true,
"trimLines": true,
"emptyLines": true,
"lineBreaks": false,
"htmlTags": true,
"punctuation": false,
"numbers": false,
"emojis": false,
"plainQuotes": true,
"controlChars": false
}
· Response
· response.json
{
"result": "Hello world\n\"quoted\" text",
"charactersBefore": 41,
"charactersAfter": 25,
"charactersRemoved": 16,
"steps": [
{
"option": "htmlTags",
"charactersRemoved": 7
}
],
"changed": [
"htmlTags",
"plainQuotes",
"trimLines",
"emptyLines",
"extraSpaces"
]
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/text-cleaner \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"text":"<p>Hello world</p>\n\n\n “quoted” text ","extraSpaces":true,"trimLines":true,"emptyLines":true,"lineBreaks":false,"htmlTags":true,"punctuation":false,"numbers":false,"emojis":false,"plainQuotes":true,"controlChars":false}'
POST/api/v1/tools/json-to-csv
JSON to CSV
Turn a JSON array of objects, or a JSON string holding one, into CSV text. Nested objects become dotted column names such as address.city, arrays are written as JSON inside the cell, and every key seen in any row becomes a column.
Try the browser version of this tool
· Request body
· request.json
{
"json": "[{\"name\":\"Alice\",\"address\":{\"city\":\"Utrecht\"}},{\"name\":\"Bob\",\"address\":{\"city\":\"Leiden\"}}]",
"delimiter": ",",
"includeHeader": true,
"flatten": true
}
· Response
· response.json
{
"csv": "name,address.city\nAlice,Utrecht\nBob,Leiden",
"columns": [
"name",
"address.city"
],
"rowCount": 2
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/json-to-csv \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"json":"[{\"name\":\"Alice\",\"address\":{\"city\":\"Utrecht\"}},{\"name\":\"Bob\",\"address\":{\"city\":\"Leiden\"}}]","delimiter":",","includeHeader":true,"flatten":true}'
POST/api/v1/tools/json-to-yaml
JSON to YAML
Convert a JSON string to YAML text. Strings are quoted only when a YAML reader would otherwise see a number, boolean, date or empty value, multi-line strings become block scalars, and keys can be sorted.
Try the browser version of this tool
· Request body
· request.json
{
"json": "{\"name\":\"ToolForte\",\"tags\":[\"fast\",\"free\"],\"owner\":null}",
"indent": 2,
"sortKeys": false,
"nullStyle": "null"
}
· Response
· response.json
{
"yaml": "name: ToolForte\ntags:\n - fast\n - free\nowner: null"
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/json-to-yaml \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"json":"{\"name\":\"ToolForte\",\"tags\":[\"fast\",\"free\"],\"owner\":null}","indent":2,"sortKeys":false,"nullStyle":"null"}'
POST/api/v1/tools/yaml-to-json
YAML to JSON
Parse YAML text and return both the value and its JSON text. Reads maps, lists, inline [lists] and {maps}, quoted and block scalars and comments. Anchors, aliases, merge keys, tags and multi-document files are not supported and are reported with the line number.
Try the browser version of this tool
· Request body
· request.json
{
"yaml": "name: ToolForte\ntags:\n - fast\n - free\nport: 8080",
"indent": 2
}
· Response
· response.json
{
"value": {
"name": "ToolForte",
"tags": [
"fast",
"free"
],
"port": 8080
},
"json": "{\n \"name\": \"ToolForte\",\n \"tags\": [\n \"fast\",\n \"free\"\n ],\n \"port\": 8080\n}"
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/yaml-to-json \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"yaml":"name: ToolForte\ntags:\n - fast\n - free\nport: 8080","indent":2}'
POST/api/v1/tools/xml-to-json
XML to JSON
Parse XML into a JSON object keyed by the root element. Attributes become keys with a prefix ("@id"), text beside attributes or children lands under "#text", repeated elements become arrays, and namespace prefixes can be dropped. Malformed XML is reported with the line number; DTD-declared entities are not expanded.
Try the browser version of this tool
· Request body
· request.json
{
"xml": "<order id=\"42\"><item sku=\"A1\">Bolts</item><item sku=\"B2\">Nuts</item></order>",
"attributePrefix": "@",
"dropNamespaces": true,
"indent": 2
}
· Response
· response.json
{
"value": {
"order": {
"@id": "42",
"item": [
{
"@sku": "A1",
"#text": "Bolts"
},
{
"@sku": "B2",
"#text": "Nuts"
}
]
}
},
"json": "{\n \"order\": {\n \"@id\": \"42\",\n \"item\": [\n {\n \"@sku\": \"A1\",\n \"#text\": \"Bolts\"\n },\n {\n \"@sku\": \"B2\",\n \"#text\": \"Nuts\"\n }\n ]\n }\n}",
"elements": 3
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/xml-to-json \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"xml":"<order id=\"42\"><item sku=\"A1\">Bolts</item><item sku=\"B2\">Nuts</item></order>","attributePrefix":"@","dropNamespaces":true,"indent":2}'
POST/api/v1/tools/json-to-xml
JSON to XML
Serialise a JSON string as XML. Object keys become element names, array items repeat the parent key, null and empty objects become self-closing tags, and the root element name is yours to choose. A top-level array is wrapped in the root with one item element per entry.
Try the browser version of this tool
· Request body
· request.json
{
"json": "{\"name\":\"ToolForte\",\"tags\":[\"fast\",\"free\"]}",
"rootName": "product",
"declaration": true
}
· Response
· response.json
{
"xml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<product>\n <name>ToolForte</name>\n <tags>fast</tags>\n <tags>free</tags>\n</product>"
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/json-to-xml \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"json":"{\"name\":\"ToolForte\",\"tags\":[\"fast\",\"free\"]}","rootName":"product","declaration":true}'
POST/api/v1/tools/csv-to-markdown
CSV to Markdown
Turn CSV text into a GitHub-style Markdown table. Detects the delimiter (comma, semicolon, tab or pipe) unless told, reads quoted fields with embedded delimiters and newlines, and can align columns and pad cells so the table lines up in plain text.
Try the browser version of this tool
· Request body
· request.json
{
"csv": "name,age\nAlice,30\nBob,25",
"delimiter": "auto",
"firstRowHeader": true,
"padded": true,
"alignment": "left"
}
· Response
· response.json
{
"markdown": "| name | age |\n| :---- | :-- |\n| Alice | 30 |\n| Bob | 25 |",
"rows": 2,
"columns": 2,
"delimiter": ",",
"raggedLines": []
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/csv-to-markdown \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"csv":"name,age\nAlice,30\nBob,25","delimiter":"auto","firstRowHeader":true,"padded":true,"alignment":"left"}'
POST/api/v1/tools/html-entity-encoder
HTML Entity Encoder
Encode text as HTML entities or decode entities back to text. Encoding always covers &, <, >, quotes and common typographic characters, and can cover every non-ASCII character too, named where HTML has a name (é) and numeric otherwise. Decoding reads numeric references and HTML 4 named entities; unknown names are left as they are.
Try the browser version of this tool
· Request body
· request.json
{
"text": "<a href=\"x\">Tom & Jerry</a>",
"mode": "encode",
"encodeNonAscii": false
}
· Response
· response.json
{
"output": "<a href="x">Tom & Jerry</a>",
"mode": "encode"
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/html-entity-encoder \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"text":"<a href=\"x\">Tom & Jerry</a>","mode":"encode","encodeNonAscii":false}'
POST/api/v1/tools/json-to-typescript
JSON to TypeScript
Derive TypeScript interfaces from a JSON sample. Nested objects become their own interfaces named after their key, arrays become typed arrays (a union when the items differ), null stays null, and properties can be made optional or readonly.
Try the browser version of this tool
· Request body
· request.json
{
"json": "{\"id\":1,\"name\":\"Ada\",\"address\":{\"city\":\"Utrecht\"},\"tags\":[\"a\",\"b\"]}",
"rootName": "User",
"exportInterfaces": true,
"optionalProps": false,
"readonlyProps": false
}
· Response
· response.json
{
"typescript": "export interface Address {\n city: string;\n}\n\nexport interface User {\n id: number;\n name: string;\n address: Address;\n tags: string[];\n}",
"declarations": 2
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/json-to-typescript \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"json":"{\"id\":1,\"name\":\"Ada\",\"address\":{\"city\":\"Utrecht\"},\"tags\":[\"a\",\"b\"]}","rootName":"User","exportInterfaces":true,"optionalProps":false,"readonlyProps":false}'
POST/api/v1/tools/hash-generator
Hash Generator
Hash a text with SHA-1, SHA-256, SHA-384 or SHA-512 and return the hex digest, or all four at once. Text is hashed as UTF-8. No MD5: it is broken and Web Crypto does not offer it.
Try the browser version of this tool
· Request body
· request.json
{
"text": "hello world",
"algorithm": "SHA-256"
}
· Response
· response.json
{
"algorithms": [
"SHA-256"
],
"hashes": {
"SHA-256": "b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9"
},
"byteLength": 11
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/hash-generator \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"text":"hello world","algorithm":"SHA-256"}'
POST/api/v1/tools/jwt-decoder
JWT Decoder
Decode a JSON Web Token into its header and payload, and explain the exp, iat and nbf claims as ISO dates with an expired flag. The signature is returned but never verified.
Try the browser version of this tool
· Request body
· request.json
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
"now": "2026-09-07T12:00:00Z"
}
· Response
· response.json
{
"header": {
"alg": "HS256",
"typ": "JWT"
},
"payload": {
"sub": "1234567890",
"name": "John Doe",
"iat": 1516239022
},
"signature": "SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
"expiresAt": null,
"issuedAt": {
"unix": 1516239022,
"iso": "2018-01-18T01:30:22.000Z"
},
"notBefore": null,
"expired": null,
"checkedAt": "2026-09-07T12:00:00.000Z",
"verified": false
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/jwt-decoder \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c","now":"2026-09-07T12:00:00Z"}'
POST/api/v1/tools/timestamp-converter
Timestamp Converter
Convert a Unix timestamp (seconds or milliseconds) to an ISO 8601 UTC date, or an ISO date to a Unix timestamp. Returns both timestamps, the ISO and RFC 7231 forms, and the weekday.
Try the browser version of this tool
· Request body
· request.json
{
"value": 1725710400,
"unit": "auto"
}
· Response
· response.json
{
"input": 1725710400,
"interpretedAs": "seconds",
"unixSeconds": 1725710400,
"unixMilliseconds": 1725710400000,
"iso": "2024-09-07T12:00:00.000Z",
"utc": "Sat, 07 Sep 2024 12:00:00 GMT",
"date": "2024-09-07",
"time": "12:00:00",
"weekday": "Saturday"
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/timestamp-converter \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"value":1725710400,"unit":"auto"}'
POST/api/v1/tools/number-base-converter
Number Base Converter
Convert a whole number from one base to another, any base 2 to 36, and also return its binary, octal, decimal and hexadecimal forms. Exact for numbers of any size, no rounding.
Try the browser version of this tool
· Request body
· request.json
{
"value": "255",
"fromBase": 10,
"toBase": 2
}
· Response
· response.json
{
"input": "255",
"fromBase": 10,
"toBase": 2,
"output": "11111111",
"negative": false,
"binary": "11111111",
"octal": "377",
"decimal": "255",
"hexadecimal": "FF"
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/number-base-converter \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"value":"255","fromBase":10,"toBase":2}'
POST/api/v1/tools/password-generator
Password Generator
Generate one or more random passwords of a chosen length from lower case, upper case, digits and symbols, optionally without look-alike characters. Returns the passwords with their entropy in bits and a rough crack time.
Try the browser version of this tool
· Request body
· request.json
{
"length": 16,
"uppercase": true,
"lowercase": true,
"numbers": true,
"symbols": true,
"excludeAmbiguous": false,
"count": 1
}
· Response
· response.json
{
"passwords": [
"k7#Qm2$vLp9!Xw4Z"
],
"length": 16,
"charsetSize": 88,
"entropyBits": 103,
"strength": "Very strong",
"crackTime": "32B+ years"
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/password-generator \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"length":16,"uppercase":true,"lowercase":true,"numbers":true,"symbols":true,"excludeAmbiguous":false,"count":1}'
POST/api/v1/tools/random-number-generator
Random Number Generator
Draw random whole numbers between a minimum and maximum, inclusive, using cryptographic randomness. Ask for several at once, with or without repeats, for dice, lottery draws or samples.
Try the browser version of this tool
· Request body
· request.json
{
"min": 1,
"max": 6,
"count": 3,
"allowDuplicates": true
}
· Response
· response.json
{
"numbers": [
4,
1,
6
],
"min": 1,
"max": 6,
"count": 3,
"unique": true
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/random-number-generator \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"min":1,"max":6,"count":3,"allowDuplicates":true}'
POST/api/v1/tools/chmod-calculator
Chmod Calculator
Convert Unix file permissions between octal (755) and symbolic (rwxr-xr-x) form. Returns both, a read/write/execute breakdown for owner, group and others, and the chmod command to apply them.
Try the browser version of this tool
· Request body
· request.json
{
"permissions": "755"
}
· Response
· response.json
{
"input": "755",
"octal": "755",
"symbolic": "rwxr-xr-x",
"owner": {
"read": true,
"write": true,
"execute": true,
"octal": 7,
"symbolic": "rwx"
},
"group": {
"read": true,
"write": false,
"execute": true,
"octal": 5,
"symbolic": "r-x"
},
"others": {
"read": true,
"write": false,
"execute": true,
"octal": 5,
"symbolic": "r-x"
},
"command": "chmod 755 <file>"
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/chmod-calculator \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"permissions":"755"}'
POST/api/v1/tools/http-status-codes
HTTP Status Codes
Look up what an HTTP status code means. Give a code (404), a class (4xx) or a word (timeout) and get the name, class, one-line meaning, typical use case and RFC reference for every match.
Try the browser version of this tool
· Request body
· request.json
{
"query": "404"
}
· Response
· response.json
{
"query": "404",
"found": true,
"count": 1,
"matches": [
{
"code": 404,
"name": "Not Found",
"class": "4xx",
"className": "Client Error",
"description": "The server cannot find the requested resource. The URL is not recognized.",
"useCase": "Deleted pages, typos in URLs, resources that never existed. Most common HTTP error.",
"rfc": "RFC 9110"
}
]
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/http-status-codes \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"query":"404"}'
POST/api/v1/tools/px-rem-converter
PX to REM Converter
Convert a pixel value to rem or a rem value to pixels for a given root font size, 16px unless told otherwise. Returns both numbers and CSS-ready strings.
Try the browser version of this tool
· Request body
· request.json
{
"value": 24,
"direction": "px-to-rem",
"rootFontSize": 16
}
· Response
· response.json
{
"input": 24,
"direction": "px-to-rem",
"rootFontSize": 16,
"px": 24,
"rem": 1.5,
"pxText": "24px",
"remText": "1.5rem"
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/px-rem-converter \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"value":24,"direction":"px-to-rem","rootFontSize":16}'
POST/api/v1/tools/utm-builder
UTM Builder
Add utm_source, utm_medium, utm_campaign, utm_term and utm_content to a URL, keeping any query parameters it already has. Returns the tagged link plus warnings about upper case or missing required tags.
Try the browser version of this tool
· Request body
· request.json
{
"url": "https://example.com/pricing?ref=1",
"source": "newsletter",
"medium": "email",
"campaign": "spring_sale",
"term": "running_shoes",
"content": "header_banner"
}
· Response
· response.json
{
"url": "https://example.com/pricing?ref=1&utm_source=newsletter&utm_medium=email&utm_campaign=spring_sale&utm_term=running_shoes&utm_content=header_banner",
"baseUrl": "https://example.com/pricing?ref=1",
"params": {
"utm_source": "newsletter",
"utm_medium": "email",
"utm_campaign": "spring_sale",
"utm_term": "running_shoes",
"utm_content": "header_banner"
},
"warnings": []
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/utm-builder \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"url":"https://example.com/pricing?ref=1","source":"newsletter","medium":"email","campaign":"spring_sale","term":"running_shoes","content":"header_banner"}'
POST/api/v1/tools/color-contrast-checker
Color Contrast Checker
Compute the WCAG 2 contrast ratio between a text colour and a background colour and say whether it passes AA and AAA for normal and large text. Accepts hex, rgb() or hsl(), and suggests a nearby colour when it fails.
Try the browser version of this tool
· Request body
· request.json
{
"foreground": "#1e293b",
"background": "#ffffff"
}
· Response
· response.json
{
"foreground": "#1e293b",
"background": "#ffffff",
"ratio": 14.63,
"ratioText": "14.63:1",
"aa": {
"normalText": true,
"largeText": true
},
"aaa": {
"normalText": true,
"largeText": true
},
"suggestions": []
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/color-contrast-checker \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"foreground":"#1e293b","background":"#ffffff"}'
POST/api/v1/tools/percentage-calculator
Percentage Calculator
Answer one percentage question from two numbers: what x% of y is, what percent x is of y, the percentage change from x to y, or x increased or decreased by y%. Returns the number and a sentence stating it.
Try the browser version of this tool
· Request body
· request.json
{
"mode": "percentOf",
"x": 15,
"y": 200
}
· Response
· response.json
{
"mode": "percentOf",
"x": 15,
"y": 200,
"result": 30,
"resultIsPercent": false,
"sentence": "15% of 200 is 30."
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/percentage-calculator \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"mode":"percentOf","x":15,"y":200}'
POST/api/v1/tools/compound-interest-calculator
Compound Interest Calculator
Grow a starting amount at an annual rate for a number of years, compounding monthly, quarterly or annually, with an optional monthly contribution. Returns the future value, total contributed, total interest and a year-by-year table.
Try the browser version of this tool
· Request body
· request.json
{
"principal": 10000,
"annualRatePercent": 7,
"years": 10,
"compoundsPerYear": 12,
"monthlyContribution": 100
}
· Response
· response.json
{
"principal": 10000,
"annualRatePercent": 7,
"years": 10,
"compoundsPerYear": 12,
"monthlyContribution": 100,
"futureValue": 37506.06,
"totalContributed": 22000,
"totalInterest": 15506.06,
"interestPercent": 41.34,
"yearly": [
{
"year": 1,
"contributions": 11200,
"interest": 769.39,
"balance": 11969.39
}
]
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/compound-interest-calculator \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"principal":10000,"annualRatePercent":7,"years":10,"compoundsPerYear":12,"monthlyContribution":100}'
POST/api/v1/tools/loan-calculator
Loan Calculator
Work out an annuity loan from the amount, annual interest rate and term: the fixed monthly payment, total paid, total interest and an amortisation schedule of up to 360 months showing principal, interest and remaining balance.
Try the browser version of this tool
· Request body
· request.json
{
"amount": 250000,
"annualRatePercent": 4.5,
"term": 30,
"termUnit": "years"
}
· Response
· response.json
{
"amount": 250000,
"annualRatePercent": 4.5,
"termMonths": 360,
"monthlyPayment": 1266.71,
"totalPaid": 456016.78,
"totalInterest": 206016.78,
"interestToPrincipalRatio": 0.82,
"schedule": [
{
"month": 1,
"payment": 1266.71,
"principal": 329.21,
"interest": 937.5,
"balance": 249670.79
}
],
"scheduleTruncated": false
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/loan-calculator \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"amount":250000,"annualRatePercent":4.5,"term":30,"termUnit":"years"}'
POST/api/v1/tools/bmi-calculator
BMI Calculator
Body mass index from height and weight, in centimetres and kilograms or in inches and pounds. Returns the BMI, its category (underweight, normal weight, overweight, obese) and the weight range that would count as normal at that height.
Try the browser version of this tool
· Request body
· request.json
{
"height": 175,
"weight": 70,
"units": "metric"
}
· Response
· response.json
{
"units": "metric",
"heightCm": 175,
"weightKg": 70,
"bmi": 22.9,
"category": "Normal weight",
"healthyWeightRange": {
"min": 56.7,
"max": 76.3,
"unit": "kg"
},
"categories": [
{
"label": "Underweight",
"range": "< 18.5"
}
]
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/bmi-calculator \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"height":175,"weight":70,"units":"metric"}'
POST/api/v1/tools/date-difference-calculator
Date Difference Calculator
The time between two calendar dates: total days, weeks plus days, a years/months/days breakdown, hours, and the number of business days (Monday to Friday, no holidays). Order does not matter; the end date is excluded unless includeEndDate is true.
Try the browser version of this tool
· Request body
· request.json
{
"startDate": "2026-01-01",
"endDate": "2026-12-31",
"includeEndDate": false
}
· Response
· response.json
{
"start": "2026-01-01",
"end": "2026-12-31",
"startWeekday": "Thursday",
"endWeekday": "Thursday",
"swapped": false,
"includeEndDate": false,
"years": 0,
"months": 11,
"days": 30,
"totalDays": 364,
"totalWeeks": 52,
"weeksAndDays": {
"weeks": 52,
"days": 0
},
"totalHours": 8736,
"businessDays": 260
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/date-difference-calculator \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"startDate":"2026-01-01","endDate":"2026-12-31","includeEndDate":false}'
POST/api/v1/tools/age-calculator
Age Calculator
Exact age on a date from a birth date: years, months and days, total days, weeks and months lived, and the date of the next birthday with the days until it. Defaults to today when asOf is left out.
Try the browser version of this tool
· Request body
· request.json
{
"birthDate": "1990-05-15",
"asOf": "2026-09-07"
}
· Response
· response.json
{
"birthDate": "1990-05-15",
"asOf": "2026-09-07",
"years": 36,
"months": 3,
"days": 23,
"totalDays": 13264,
"totalWeeks": 1894,
"totalMonths": 435,
"nextBirthday": {
"date": "2027-05-15",
"daysUntil": 250,
"turning": 37
}
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/age-calculator \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"birthDate":"1990-05-15","asOf":"2026-09-07"}'
POST/api/v1/tools/week-number
Week Number
The ISO 8601 week number and ISO year for a date, with the Monday and Sunday of that week, plus the US (Sunday-based) and UK/EU week numbers. Defaults to today when no date is given.
Try the browser version of this tool
· Request body
· request.json
{
"date": "2026-09-07"
}
· Response
· response.json
{
"date": "2026-09-07",
"weekday": "Monday",
"isoWeek": 37,
"isoYear": 2026,
"weekStart": "2026-09-07",
"weekEnd": "2026-09-13",
"usWeek": 37,
"ukWeek": 37
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/week-number \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"date":"2026-09-07"}'
POST/api/v1/tools/unit-converter
Unit Converter
Convert a value between units of length (m, km, cm, mm, mi, yd, ft, in, nmi, um), weight (kg, g, mg, lb, oz, st, t, us_ton, imperial_ton, ug), temperature (c, f, k), speed (kmh, ms, mph, kn) or data (b, kb, mb, gb, tb, in 1024 steps). Units are matched by key, full name or common alias.
Try the browser version of this tool
· Request body
· request.json
{
"value": 10,
"from": "km",
"to": "mi",
"category": "length"
}
· Response
· response.json
{
"value": 10,
"from": {
"key": "km",
"name": "Kilometers (km)"
},
"to": {
"key": "mi",
"name": "Miles"
},
"category": "length",
"result": 6.213711922373339,
"formatted": "6.213712"
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/unit-converter \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"value":10,"from":"km","to":"mi","category":"length"}'
POST/api/v1/tools/discount-calculator
Discount Calculator
Final price and saving after a discount given as a percentage or a fixed amount, with optional extra stacked discounts applied one after another and optional VAT added on the discounted price. Money is rounded to cents.
Try the browser version of this tool
· Request body
· request.json
{
"price": 80,
"discountPercent": 25,
"additionalDiscountPercents": [
10
],
"vatPercent": 21
}
· Response
· response.json
{
"originalPrice": 80,
"discountPercent": 32.5,
"saving": 26,
"finalPrice": 54,
"vatPercent": 21,
"vatAmount": 11.34,
"finalPriceWithVat": 65.34,
"steps": [
{
"step": 1,
"percent": 25,
"priceAfter": 60
},
{
"step": 2,
"percent": 10,
"priceAfter": 54
}
]
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/discount-calculator \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"price":80,"discountPercent":25,"additionalDiscountPercents":[10],"vatPercent":21}'
POST/api/v1/tools/tip-calculator
Tip Calculator
Tip on a restaurant bill at a percentage, the total, and the even split per person. Can round the total up to the next whole unit, in which case the tip absorbs the difference.
Try the browser version of this tool
· Request body
· request.json
{
"bill": 86.4,
"tipPercent": 15,
"people": 4,
"roundUp": false
}
· Response
· response.json
{
"bill": 86.4,
"tipPercent": 15,
"people": 4,
"roundUp": false,
"tip": 12.96,
"total": 99.36,
"perPerson": {
"total": 24.84,
"tip": 3.24
},
"effectiveTipPercent": 15
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/tip-calculator \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"bill":86.4,"tipPercent":15,"people":4,"roundUp":false}'
POST/api/v1/tools/timezone-converter
Timezone Converter
Take a local date and time in one IANA time zone (such as Europe/Amsterdam) and express it in another, using the built-in Intl zone rules including daylight saving. Returns both wall-clock times with their UTC offsets, the UTC instant and the hour difference.
Try the browser version of this tool
· Request body
· request.json
{
"dateTime": "2026-03-15T14:30",
"from": "Europe/Amsterdam",
"to": "America/New_York"
}
· Response
· response.json
{
"input": "2026-03-15T14:30",
"from": {
"zone": "Europe/Amsterdam",
"dateTime": "2026-03-15T14:30:00",
"offset": "+01:00",
"offsetMinutes": 60,
"weekday": "Sunday"
},
"to": {
"zone": "America/New_York",
"dateTime": "2026-03-15T09:30:00",
"offset": "-04:00",
"offsetMinutes": -240,
"weekday": "Sunday"
},
"utc": "2026-03-15T13:30:00Z",
"differenceHours": -5
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/timezone-converter \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"dateTime":"2026-03-15T14:30","from":"Europe/Amsterdam","to":"America/New_York"}'
POST/api/v1/tools/roi-calculator
ROI Calculator
Return on investment from the amount invested and the total amount that came back: the gain, the ROI in percent and, when a holding period in years is given, the annualised return. An estimate, not financial advice.
Try the browser version of this tool
· Request body
· request.json
{
"invested": 10000,
"returned": 14000,
"years": 3
}
· Response
· response.json
{
"invested": 10000,
"returned": 14000,
"gain": 4000,
"roiPercent": 40,
"years": 3,
"annualisedPercent": 11.87,
"note": "Estimates for information only, not financial advice."
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/roi-calculator \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"invested":10000,"returned":14000,"years":3}'
POST/api/v1/tools/break-even-calculator
Break-even Calculator
Break-even point from fixed costs per period, the price per unit and the variable cost per unit: the units and revenue needed to cover costs, the contribution margin, profit at an optional sales volume, and scenarios at half to twice the break-even volume.
Try the browser version of this tool
· Request body
· request.json
{
"fixedCosts": 5000,
"variableCostPerUnit": 10,
"pricePerUnit": 25,
"volume": 500
}
· Response
· response.json
{
"fixedCosts": 5000,
"pricePerUnit": 25,
"variableCostPerUnit": 10,
"contributionMargin": 15,
"contributionMarginPercent": 60,
"breakEvenUnits": 333.33,
"breakEvenUnitsRoundedUp": 334,
"breakEvenRevenue": 8333.33,
"volume": 500,
"profitAtVolume": 2500,
"scenarios": [
{
"multiplier": 0.5,
"units": 167,
"revenue": 4175,
"profit": -2495
}
]
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/break-even-calculator \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"fixedCosts":5000,"variableCostPerUnit":10,"pricePerUnit":25,"volume":500}'
POST/api/v1/tools/aow-age-calculator
AOW Age Calculator
Look up the Dutch state pension (AOW) age for a birth date from the official SVB table: the age in years and months, the date it starts, how long until then, and whether that age is legally fixed or still an expectation.
Try the browser version of this tool
· Request body
· request.json
{
"birthDate": "1975-05-12",
"today": "2026-08-28"
}
· Response
· response.json
{
"status": "expected",
"years": 68,
"months": 0,
"aowDate": "2043-05-12",
"timeLeft": {
"years": 16,
"months": 8,
"days": 15
},
"note": "This is an expectation, not a guarantee."
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/aow-age-calculator \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"birthDate":"1975-05-12","today":"2026-08-28"}'
POST/api/v1/tools/erfbelasting-calculator
Dutch Inheritance Tax Calculator
Estimate Dutch inheritance tax (erfbelasting) for one heir with the 2026 exemptions and two-bracket rates: give the inherited amount and the relationship to the deceased, get the exemption, taxable amount, tax per bracket, total tax and what the heir keeps.
Try the browser version of this tool
· Request body
· request.json
{
"amount": 100000,
"heir": "child"
}
· Response
· response.json
{
"ok": true,
"exemption": 26230,
"exemptionApplied": 26230,
"taxableAmount": 73770,
"lowBracketTax": 7377,
"highBracketTax": 0,
"totalTax": 7377,
"netReceived": 92623,
"effectiveRate": 0.07377,
"notes": [
"Partners usually count as one person for inheritance tax."
]
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/erfbelasting-calculator \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"amount":100000,"heir":"child"}'
POST/api/v1/tools/schenkbelasting-calculator
Dutch Gift Tax Calculator
Estimate Dutch gift tax (schenkbelasting) with the 2026 exemptions and two-bracket rates: give the gift amount, the relationship to the donor and which exemption applies, get the exemption used, taxable amount, tax per bracket, total tax and what the recipient keeps.
Try the browser version of this tool
· Request body
· request.json
{
"amount": 25000,
"relationship": "child",
"exemption": "annual"
}
· Response
· response.json
{
"ok": true,
"exemptionApplied": 6908,
"taxableAmount": 18092,
"lowBracketTax": 1809.2,
"highBracketTax": 0,
"totalTax": 1809.2,
"netReceived": 23190.8,
"effectiveRate": 0.072368,
"notes": [
"Partners count as one donor."
]
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/schenkbelasting-calculator \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"amount":25000,"relationship":"child","exemption":"annual"}'
POST/api/v1/tools/ww-duration-calculator
Dutch WW Duration Calculator
Estimate how many months of Dutch unemployment benefit (WW) an employment history gives: one month per year for the first ten years, half a month per year after that, between three and twenty-four months, with the notional years for people born in 1979 or earlier counted automatically.
Try the browser version of this tool
· Request body
· request.json
{
"birthYear": 1975,
"workedYearsSince1998": 20
}
· Response
· response.json
{
"ok": true,
"notionalYears": 5,
"actualYears": 20,
"totalYears": 25,
"months": 17.5,
"uncappedMonths": 17.5,
"cappedAtMaximum": false,
"raisedToMinimum": false,
"note": "This is an estimate."
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/ww-duration-calculator \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"birthYear":1975,"workedYearsSince1998":20}'
POST/api/v1/tools/30-percent-ruling-calculator
30% Ruling Calculator
Work out the tax-free allowance under the Dutch 30% ruling for a gross annual salary with the 2026 salary norm and WNT cap, plus a simplified estimate of net pay with and without the ruling and the yearly advantage.
Try the browser version of this tool
· Request body
· request.json
{
"grossAnnualSalary": 70000,
"youngMaster": false
}
· Response
· response.json
{
"ok": true,
"grossAnnualSalary": 70000,
"salaryNorm": 48013,
"eligible": true,
"allowancePerYear": 21000,
"allowancePerMonth": 1750,
"taxableSalaryWithRuling": 49000,
"netPerYearWithoutRuling": 49000,
"netPerYearWithRuling": 58000,
"netAdvantagePerYear": 9000,
"cappedByWnt": false,
"limitedByNorm": false,
"notes": [
"Based on 2026 figures."
]
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/30-percent-ruling-calculator \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"grossAnnualSalary":70000,"youngMaster":false}'
POST/api/v1/tools/dutch-holiday-allowance-calculator
Dutch Holiday Allowance Calculator
Calculate Dutch holiday allowance (vakantiegeld) from a gross monthly salary and the months worked: the gross amount at the given percentage (statutory minimum 8%) and an estimate of the net payout after the special payroll tax rate (bijzonder tarief).
Try the browser version of this tool
· Request body
· request.json
{
"monthlySalary": 3500,
"monthsWorked": 12,
"allowancePercent": 8,
"specialRatePercent": 42.01
}
· Response
· response.json
{
"ok": true,
"grossAllowance": 3360,
"taxWithheld": 1411.54,
"netAllowance": 1948.46,
"allowancePercent": 8,
"specialRatePercent": 42.01,
"note": "Based on 2026 figures."
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/dutch-holiday-allowance-calculator \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"monthlySalary":3500,"monthsWorked":12,"allowancePercent":8,"specialRatePercent":42.01}'
POST/api/v1/tools/dutch-notice-period-calculator
Dutch Notice Period Calculator
Find the statutory Dutch notice period (Article 7:672 Civil Code) for an employee or employer from the employment start date and the date notice is given, and the date the contract ends, since notice runs from the first of the next month. A contractual period can override the statutory one.
Try the browser version of this tool
· Request body
· request.json
{
"givenBy": "employee",
"startDate": "2019-03-01",
"noticeDate": "2026-09-12",
"contractMonths": 1
}
· Response
· response.json
{
"ok": true,
"serviceYears": 7.53,
"statutoryMonths": 1,
"appliedMonths": 1,
"fromContract": true,
"noticePeriodStarts": "2026-10-01",
"employmentEnds": "2026-10-31",
"note": "Based on Article 7:672 of the Dutch Civil Code."
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/dutch-notice-period-calculator \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"givenBy":"employee","startDate":"2019-03-01","noticeDate":"2026-09-12","contractMonths":1}'
POST/api/v1/tools/dutch-severance-calculator
Dutch Severance Calculator
Calculate the Dutch statutory transition payment (transitievergoeding) with the 2026 rules: one third of the monthly salary base per year of service, pro rata by day, capped at EUR 102,000 or one annual salary if higher. The base can include 8% holiday allowance and fixed yearly bonuses.
Try the browser version of this tool
· Request body
· request.json
{
"monthlySalary": 3500,
"fixedAnnualBonuses": 0,
"includeHolidayAllowance": true,
"startDate": "2018-01-01",
"endDate": "2026-12-31"
}
· Response
· response.json
{
"ok": true,
"serviceDays": 3287,
"serviceYears": 9,
"monthlyBase": 3780,
"formulaAmount": 11339.14,
"statutoryMaximum": 102000,
"payment": 11339.14,
"capped": false,
"note": "Based on 2026 figures."
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/dutch-severance-calculator \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"monthlySalary":3500,"fixedAnnualBonuses":0,"includeHolidayAllowance":true,"startDate":"2018-01-01","endDate":"2026-12-31"}'
POST/api/v1/tools/test-documentnummer-generator
Test Document Number Generator
Generate random Dutch test document numbers in the structural format of an ID card (4 letters + 5 digits), passport (2 letters + 7 digits) or driving licence (10 digits). Format only, no check digit, tied to no real document, for test environments.
Try the browser version of this tool
· Request body
· request.json
{
"type": "idkaart",
"count": 5
}
· Response
· response.json
{
"type": "idkaart",
"label": "ID Card (Identiteitskaart)",
"format": "4 letters + 5 digits (e.g. SPFC12345)",
"count": 5,
"numbers": [
"SPFC12345"
],
"note": "Test numbers only. They follow the structural format of Dutch documents but are random, belong to no real document and carry no check digit."
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/test-documentnummer-generator \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"type":"idkaart","count":5}'
POST/api/v1/tools/dutch-school-holidays
Dutch School Holidays
List the official Dutch school holidays (schoolvakanties) for a school year and region (noord, midden or zuid) with start and end dates, whether each is advisory, days until each one, and which break comes next. Covers 2026-2027 and 2027-2028 from Rijksoverheid.nl.
Try the browser version of this tool
· Request body
· request.json
{
"schoolYear": "2026-2027",
"region": "midden",
"today": "2026-09-07"
}
· Response
· response.json
{
"schoolYear": "2026-2027",
"region": "midden",
"holidays": [
{
"name": "Autumn break",
"dutch": "Herfstvakantie",
"start": "2026-10-17",
"end": "2026-10-25",
"advisory": true,
"daysUntilStart": 40,
"status": "upcoming"
}
],
"next": {
"name": "Autumn break",
"dutch": "Herfstvakantie",
"start": "2026-10-17",
"end": "2026-10-25",
"advisory": true,
"daysUntilStart": 40,
"ongoing": false
},
"note": "Kerstvakantie and zomervakantie are set by the Ministry of Education."
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/dutch-school-holidays \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"schoolYear":"2026-2027","region":"midden","today":"2026-09-07"}'
POST/api/v1/tools/dutch-mileage-calculator
Dutch Mileage Allowance Calculator
Calculate a Dutch kilometre reimbursement per week, month and year from a distance per trip and trips per week (or a weekly total), working weeks and a rate, and show how much of it exceeds the 2026 tax-free maximum of EUR 0.25 per km.
Try the browser version of this tool
· Request body
· request.json
{
"kmPerTrip": 25,
"tripsPerWeek": 8,
"kmPerWeek": 200,
"weeksPerYear": 46,
"ratePerKm": 0.25
}
· Response
· response.json
{
"ok": true,
"weeklyKm": 200,
"yearlyKm": 9200,
"perWeek": 50,
"perMonth": 191.67,
"perYear": 2300,
"ratePerKm": 0.25,
"taxFreeRate": 0.25,
"aboveTaxFree": false,
"taxablePartPerYear": 0,
"note": "Based on 2026 figures."
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/dutch-mileage-calculator \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"kmPerTrip":25,"tripsPerWeek":8,"kmPerWeek":200,"weeksPerYear":46,"ratePerKm":0.25}'
POST/api/v1/tools/subtitle-converter
Subtitle Converter
Convert subtitles between SRT and WebVTT or to a plain transcript, shift or stretch the timing, append a second part, and repair order, overlaps, empty and flashing cues. Returns the rewritten subtitle text and a report of what changed.
Try the browser version of this tool
· Request body
· request.json
{
"text": "1\n00:00:01,000 --> 00:00:03,500\nHello there.",
"format": "vtt",
"shiftSeconds": -2.5,
"scalePercent": 104.271,
"repair": true,
"appendText": "1\n00:00:00,500 --> 00:00:02,000\nPart two begins.",
"appendOffsetSeconds": 5400
}
· Response
· response.json
{
"result": "WEBVTT\n\n00:00:01.000 --> 00:00:03.500\nHello there.\n",
"format": "vtt",
"inputFormat": "srt",
"cues": 1,
"durationMs": 3500,
"notes": [],
"repairs": {
"reordered": false,
"emptyRemoved": 0,
"overlapsFixed": 0,
"negativeClamped": 0,
"tooShortExtended": 0
}
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/subtitle-converter \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"text":"1\n00:00:01,000 --> 00:00:03,500\nHello there.","format":"vtt","shiftSeconds":-2.5,"scalePercent":104.271,"repair":true,"appendText":"1\n00:00:00,500 --> 00:00:02,000\nPart two begins.","appendOffsetSeconds":5400}'
POST/api/v1/tools/csv-merge
CSV Merge
Append several CSV files into one. By header, columns are matched by name (case-insensitive) and the headers are unioned, so files with different column orders or an extra column combine cleanly; by position, rows are appended under the first file's header. Optionally adds a Source column with each file's name. Returns the merged CSV.
Try the browser version of this tool
· Request body
· request.json
{
"files": [
{
"name": "jan.csv",
"text": "id,amount\n1,10\n"
},
{
"name": "feb.csv",
"text": "amount,id\n20,2\n"
}
],
"mode": "byHeader",
"sourceColumn": true,
"delimiter": ";"
}
· Response
· response.json
{
"result": "id,amount,Source\n1,10,jan.csv\n2,20,feb.csv\n",
"header": [
"id",
"amount",
"Source"
],
"rows": 2,
"files": 2
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/csv-merge \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"files":[{"name":"jan.csv","text":"id,amount\n1,10\n"},{"name":"feb.csv","text":"amount,id\n20,2\n"}],"mode":"byHeader","sourceColumn":true,"delimiter":";"}'
POST/api/v1/tools/csv-split
CSV Split
Split one CSV into parts, either every N rows or one part per distinct value of a column. Every part keeps the header. Returns the parts as CSV text with a name each.
Try the browser version of this tool
· Request body
· request.json
{
"text": "id,country\n1,NL\n2,BE\n3,NL\n",
"by": "column",
"size": 1000,
"column": "country",
"name": "orders"
}
· Response
· response.json
{
"parts": [
{
"name": "orders-NL",
"rows": 2,
"csv": "id,country\n1,NL\n3,NL\n"
},
{
"name": "orders-BE",
"rows": 1,
"csv": "id,country\n2,BE\n"
}
],
"count": 2,
"totalRows": 3
}
· curl example
· terminal
curl -X POST https://toolforte.com/api/v1/tools/csv-split \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"text":"id,country\n1,NL\n2,BE\n3,NL\n","by":"column","size":1000,"column":"country","name":"orders"}'