{"openapi":"3.1.0","info":{"title":"Synsi Tools API","version":"1.0.0","description":"Free API for the tools on https://synsi.nl. Anonymous requests are rate limited per IP; send an API key as a Bearer token for higher limits."},"servers":[{"url":"https://synsi.nl/api/v1"}],"security":[[],{"bearerAuth":[]}],"paths":{"/tools/word-counter":{"post":{"operationId":"word_counter","summary":"Word Counter","description":"Free online word counter: instantly count words, characters (with and without spaces), sentences, paragraphs and reading time. Private, no sign-up.","tags":["text"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","maxLength":500000,"description":"The text to analyse.","example":"Hello world. How are you?"}},"required":["text"]},"example":{"text":"Hello world. How are you?"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/case-converter":{"post":{"operationId":"case_converter","summary":"Case Converter","description":"Convert text to UPPERCASE, lowercase, Title Case, Sentence case, camelCase, snake_case or kebab-case instantly. Free online case converter, no sign-up.","tags":["text"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","maxLength":500000,"description":"The text to convert.","example":"hello world"},"mode":{"type":"string","enum":["upper","lower","title","sentence","camel","pascal","snake","kebab","constant","alternating","inverse"],"description":"Target case.","default":"upper"}},"required":["text"]},"example":{"text":"hello world"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/slug-generator":{"post":{"operationId":"slug_generator","summary":"Slug Generator","description":"Turn any title into a clean, SEO-friendly URL slug. Removes accents and special characters, lowercase, hyphens or underscores. Free online slug generator.","tags":["text"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","maxLength":10000,"description":"Text to turn into a URL slug.","example":"Hello World, Caf\u00e9!"},"separator":{"type":"string","enum":["-","_"],"description":"Word separator.","default":"-"},"lowercase":{"type":"boolean","description":"Convert to lowercase.","default":true}},"required":["text"]},"example":{"text":"Hello World, Caf\u00e9!"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/web-search":{"post":{"operationId":"web_search","summary":"Web Search","description":"One search box for Google, Bing and DuckDuckGo: pick your search engine from the dropdown and search. Your query goes straight to the engine, never to us.","tags":["everyday"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":2048,"description":"What to search for.","example":"weather amsterdam"},"engine":{"type":"string","enum":["google","bing","duckduckgo"],"description":"Search engine.","default":"google","example":"duckduckgo"}},"required":["q"]},"example":{"q":"weather amsterdam","engine":"duckduckgo"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/remove-duplicate-lines":{"post":{"operationId":"remove_duplicate_lines","summary":"Remove Duplicate Lines","description":"Remove duplicate lines from any list or text instantly. Options for case sensitivity, trimming spaces and removing empty lines. Free, private, no upload.","tags":["text"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","maxLength":1000000,"description":"Text with one item per line.","example":"apple\nbanana\napple"},"case_sensitive":{"type":"boolean","description":"Treat \"Apple\" and \"apple\" as different lines.","default":true},"trim":{"type":"boolean","description":"Ignore leading/trailing whitespace when comparing.","default":true},"remove_empty":{"type":"boolean","description":"Remove empty lines.","default":false}},"required":["text"]},"example":{"text":"apple\nbanana\napple"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/sort-lines":{"post":{"operationId":"sort_lines","summary":"Sort Lines","description":"Sort lines of text alphabetically (A\u2013Z or Z\u2013A), numerically, by length or reverse their order. Free online line sorter that runs in your browser.","tags":["text"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","maxLength":1000000,"description":"Text with one item per line.","example":"banana\napple\ncherry"},"order":{"type":"string","enum":["alpha_asc","alpha_desc","numeric_asc","numeric_desc","length_asc","length_desc","reverse"],"description":"Sort order.","default":"alpha_asc"},"case_sensitive":{"type":"boolean","description":"Case-sensitive alphabetical sorting.","default":false}},"required":["text"]},"example":{"text":"banana\napple\ncherry"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/lorem-ipsum":{"post":{"operationId":"lorem_ipsum","summary":"Lorem Ipsum Generator","description":"Generate lorem ipsum placeholder text by paragraphs, sentences or words. Copy or download dummy text for mockups, templates and layouts. Free.","tags":["text"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","minimum":1,"maximum":100,"description":"How many units to generate.","default":3},"unit":{"type":"string","enum":["paragraphs","sentences","words"],"default":"paragraphs"},"start_with_lorem":{"type":"boolean","description":"Start with \"Lorem ipsum dolor sit amet...\".","default":true}}},"example":[]}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/text-reverser":{"post":{"operationId":"text_reverser","summary":"Reverse Text","description":"Reverse text online: write backwards letter by letter, reverse the word order or flip the order of lines. Works with emoji and accents. Free.","tags":["text"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","maxLength":500000,"description":"Text to reverse.","example":"Hello world"},"mode":{"type":"string","enum":["characters","words","lines"],"description":"What to reverse.","default":"characters"}},"required":["text"]},"example":{"text":"Hello world"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/base64":{"post":{"operationId":"base64","summary":"Base64 Encode & Decode","description":"Encode text to Base64 or decode Base64 to text online. Full UTF-8 support and URL-safe Base64URL option. Free, instant and private. Also via API.","tags":["developer"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","maxLength":1000000,"description":"Text to encode, or Base64 to decode (UTF-8).","example":"Hello world"},"mode":{"type":"string","enum":["encode","decode"],"default":"encode"},"url_safe":{"type":"boolean","description":"Use the URL-safe alphabet (- and _ instead of + and /, no padding).","default":false}},"required":["text"]},"example":{"text":"Hello world"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/url-encoder":{"post":{"operationId":"url_encoder","summary":"URL Encode & Decode","description":"Percent-encode text for safe use in URLs and query strings, or decode encoded URLs back to readable text. UTF-8 support. Free online URL encoder.","tags":["developer"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","maxLength":1000000,"description":"Text to encode or decode.","example":"a b&c=d/\u00e9"},"mode":{"type":"string","enum":["encode","decode"],"default":"encode"},"plus_as_space":{"type":"boolean","description":"Decode \"+\" as a space (HTML form encoding).","default":false}},"required":["text"]},"example":{"text":"a b&c=d/\u00e9"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/json-formatter":{"post":{"operationId":"json_formatter","summary":"JSON Formatter & Validator","description":"Format, beautify, minify and validate JSON online. Choose 2 spaces, 4 spaces or tabs, and get clear error messages for invalid JSON. Free and private.","tags":["developer"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"json":{"type":"string","maxLength":2000000,"description":"JSON document.","example":"{\"name\":\"synsi\",\"tools\":[1,2,3]}"},"mode":{"type":"string","enum":["format","minify","validate"],"default":"format"},"indent":{"type":"string","enum":["2","4","tab"],"description":"Indentation when formatting.","default":"2"}},"required":["json"]},"example":{"json":"{\"name\":\"synsi\",\"tools\":[1,2,3]}"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/social-graph-viewer":{"post":{"operationId":"social_graph_viewer","summary":"Social Media Preview","description":"Preview how a page link may look in a social post. Check its Open Graph and Twitter Card title, description and image.","tags":["developer"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","maxLength":2048,"description":"Public HTTP or HTTPS page URL to inspect.","example":"https://example.com/article"}},"required":["url"]},"example":{"url":"https://example.com/article"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/hash-generator":{"post":{"operationId":"hash_generator","summary":"Hash Generator","description":"Generate MD5, SHA-1, SHA-256, SHA-384 and SHA-512 hashes of any text instantly. UTF-8 input, uppercase option, runs in your browser. Also via API.","tags":["developer"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","maxLength":1000000,"description":"Text to hash (UTF-8).","example":"hello"},"uppercase":{"type":"boolean","description":"Return uppercase hex digests.","default":false}},"required":["text"]},"example":{"text":"hello"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/uuid-generator":{"post":{"operationId":"uuid_generator","summary":"UUID Generator","description":"Generate random UUID v4 or time-ordered UUID v7 identifiers online, in bulk up to 500 at once. Uppercase and no-hyphen options. Free, also via API.","tags":["developer"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"version":{"type":"string","enum":["v4","v7"],"description":"v4 = random, v7 = time-ordered (sortable).","default":"v4"},"count":{"type":"integer","minimum":1,"maximum":500,"default":1},"uppercase":{"type":"boolean","default":false},"hyphens":{"type":"boolean","default":true}}},"example":[]}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/csv-to-json":{"post":{"operationId":"csv_to_json","summary":"csv-to-json","description":null,"tags":["developer"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"csv":{"type":"string","maxLength":5000000,"description":"CSV data.","example":"name,age\nAnna,34\nBram,27"},"delimiter":{"type":"string","enum":["auto","comma","semicolon","tab","pipe"],"description":"Field separator; \"auto\" detects it from the first line.","default":"auto"},"header":{"type":"boolean","description":"First row contains column names (output objects instead of arrays).","default":true},"typed":{"type":"boolean","description":"Convert numbers and true/false to JSON types and empty values to null.","default":false},"indent":{"type":"string","enum":["2","4","minified"],"default":"2"}},"required":["csv"]},"example":{"csv":"name,age\nAnna,34\nBram,27"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/certificate-viewer":{"post":{"operationId":"certificate_viewer","summary":"SSL Certificate Checker","description":"Free SSL certificate checker: see a domain's chain, expiry, SANs, issuer and trust, or decode a PEM certificate \u2013 PKIoverheid and UZI too.","tags":["developer"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"mode":{"type":"string","enum":["host","pem"],"description":"host: fetch the certificate chain from a TLS server; pem: decode pasted certificates.","default":"host"},"host":{"type":"string","maxLength":300,"description":"Host name (optionally with :port, e.g. mail.example.com:993) for mode=host.","example":"synsi.nl"},"pem":{"type":"string","maxLength":100000,"description":"One or more PEM certificates (or base64 DER) for mode=pem."}}},"example":{"host":"synsi.nl"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/password-generator":{"post":{"operationId":"password_generator","summary":"Password Generator","description":"Generate strong, random passwords with letters, numbers and symbols. Choose the length, exclude look-alike characters and see the entropy. Free and private.","tags":["developer"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"length":{"type":"integer","minimum":4,"maximum":128,"default":16},"lowercase":{"type":"boolean","default":true},"uppercase":{"type":"boolean","default":true},"numbers":{"type":"boolean","default":true},"symbols":{"type":"boolean","default":true},"exclude_ambiguous":{"type":"boolean","description":"Exclude look-alike characters (I, l, 1, O, 0, o).","default":false},"count":{"type":"integer","minimum":1,"maximum":50,"default":1}}},"example":[]}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/json-to-csv":{"post":{"operationId":"json_to_csv","summary":"json-to-csv","description":null,"tags":["developer"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"json":{"type":"string","maxLength":5000000,"description":"A JSON array of objects (or of arrays).","example":"[{\"name\":\"Anna\",\"age\":34},{\"name\":\"Bram\",\"age\":27}]"},"delimiter":{"type":"string","enum":["comma","semicolon","tab","pipe"],"default":"comma"},"header":{"type":"boolean","description":"Write a header row with the column names.","default":true}},"required":["json"]},"example":{"json":"[{\"name\":\"Anna\",\"age\":34},{\"name\":\"Bram\",\"age\":27}]"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/percentage-calculator":{"post":{"operationId":"percentage_calculator","summary":"Percentage Calculator","description":"Free percentage calculator: find X% of Y, what percent X is of Y, the percentage change between two numbers, or add and subtract a percentage.","tags":["finance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"mode":{"type":"string","enum":["percent_of","what_percent","change","increase","decrease"],"description":"percent_of: x% of y \u00b7 what_percent: x is what % of y \u00b7 change: % change from x to y \u00b7 increase: y + x% \u00b7 decrease: y - x%","default":"percent_of"},"x":{"type":"number","example":15},"y":{"type":"number","example":200}},"required":["x","y"]},"example":{"x":15,"y":200}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/vat-calculator":{"post":{"operationId":"vat_calculator","summary":"VAT Calculator","description":"Free VAT calculator: add VAT to a net price or remove VAT from a gross price. Up-to-date standard and reduced rates for EU countries, the UK and more.","tags":["finance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"amount":{"type":"number","minimum":-1000000000000,"maximum":1000000000000,"example":100},"rate":{"type":"number","minimum":0,"maximum":100,"description":"VAT rate in percent.","default":20},"mode":{"type":"string","enum":["add","remove"],"description":"add: amount excludes VAT \u00b7 remove: amount includes VAT","default":"add"}},"required":["amount"]},"example":{"amount":100}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/age-calculator":{"post":{"operationId":"age_calculator","summary":"Age Calculator","description":"Calculate your exact age in years, months and days, plus total weeks and days lived and the days until your next birthday. Free online age calculator.","tags":["date-time"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"birth_date":{"type":"string","format":"date","example":"1990-05-17"},"on_date":{"type":"string","format":"date","description":"Calculate the age on this date (default: today)."}},"required":["birth_date"]},"example":{"birth_date":"1990-05-17"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/eid-saml-validator":{"post":{"operationId":"eid_saml_validator","summary":"eID 4.4 SAML Validator","description":"Validate DV or LC SAML metadata against eID SAML 4.4: XML schema, signature, PKIoverheid certificates, OIN, entityID, endpoints and algorithms. Free, nothing stored.","tags":["developer"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"mode":{"type":"string","enum":["xml","url"],"description":"xml: validate the metadata in `xml`; url: fetch it from `url` first.","default":"xml"},"xml":{"type":"string","maxLength":10485760,"description":"SAML metadata XML (an EntityDescriptor or EntitiesDescriptor) for mode=xml."},"url":{"type":"string","maxLength":2000,"description":"https:// URL of the metadata for mode=url.","example":"https://example.com/saml/metadata.xml"}}},"example":{"url":"https://example.com/saml/metadata.xml"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/date-difference":{"post":{"operationId":"date_difference","summary":"Days Between Dates","description":"Count the days between two dates, including weeks, months, years, hours and business days (Mon\u2013Fri). Option to include the end date. Free calculator.","tags":["date-time"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"start_date":{"type":"string","format":"date","example":"2026-01-01"},"end_date":{"type":"string","format":"date","example":"2026-12-31"},"include_end":{"type":"boolean","description":"Count the end date as a full day.","default":false}},"required":["start_date","end_date"]},"example":{"start_date":"2026-01-01","end_date":"2026-12-31"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/bmi-calculator":{"post":{"operationId":"bmi_calculator","summary":"BMI Calculator","description":"Calculate your body mass index (BMI) in metric or imperial units, see your WHO weight category and the healthy weight range for your height. Free.","tags":["health"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"unit":{"type":"string","enum":["metric","imperial"],"description":"metric: kg + cm \u00b7 imperial: lb + inches","default":"metric"},"weight":{"type":"number","minimum":1,"maximum":1500,"example":70},"height":{"type":"number","minimum":20,"maximum":300,"description":"Height in cm (metric) or inches (imperial).","example":175}},"required":["weight","height"]},"example":{"weight":70,"height":175}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/fraction-calculator":{"post":{"operationId":"fraction_calculator","summary":"Fraction Calculator","description":"Add, subtract, multiply, divide or simplify fractions and see the exact result and decimal equivalent.","tags":["math"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"numerator_a":{"type":"integer","minimum":-1000000,"maximum":1000000,"default":1,"example":1},"denominator_a":{"type":"integer","minimum":1,"maximum":1000000,"default":2,"example":2},"numerator_b":{"type":"integer","minimum":-1000000,"maximum":1000000,"default":1,"example":1},"denominator_b":{"type":"integer","minimum":1,"maximum":1000000,"default":3,"example":3},"mode":{"type":"string","enum":["simplify","add","subtract","multiply","divide"],"default":"simplify"}}},"example":{"numerator_a":1,"denominator_a":2,"numerator_b":1,"denominator_b":3}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/unit-converter":{"post":{"operationId":"unit_converter","summary":"Unit Converter","description":"Free unit converter for 20+ categories including length, weight, temperature, volume, data storage, internet speed, pressure, energy, power, fuel economy and electrical units.","tags":["unit-converters"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"category":{"type":"string","enum":["length","weight","volume","area","speed","time","data","data-rate","temperature","cooking","pressure","energy","power","frequency","angle","force","torque","fuel-economy","density","acceleration","illuminance","voltage","current","resistance"],"default":"length"},"value":{"type":"number","example":10},"from":{"type":"string","enum":["mm","cm","dm","m","km","in","ft","yd","mi","nmi","mg","g","kg","t","oz","lb","st","ml","cl","dl","l","m3","tsp","tbsp","floz","cup","pt","qt","gal","ukgal","mm2","cm2","m2","ha","km2","in2","ft2","yd2","ac","mi2","m/s","km/h","mph","kn","ft/s","ms","s","min","h","d","wk","yr","bit","Kbit","Mbit","Gbit","B","KB","MB","GB","TB","PB","KiB","MiB","GiB","TiB","bit/s","Kbit/s","Mbit/s","Gbit/s","B/s","KB/s","MB/s","GB/s","KiB/s","MiB/s","GiB/s","C","F","K","Pa","kPa","MPa","bar","mbar","psi","atm","torr","J","kJ","MJ","Wh","kWh","cal","kcal","BTU","W","kW","MW","hp","metric-hp","BTU/h","Hz","kHz","MHz","GHz","THz","rpm","rad","deg","arcmin","arcsec","grad","N","kN","dyn","kgf","lbf","Nm","kNm","lb-ft","lb-in","km/L","L/100km","mpg-us","mpg-uk","kg/m3","g/cm3","g/ml","lb/ft3","lb/gal-us","m/s2","g0","ft/s2","lx","klx","fc","phot","V","mV","kV","A","mA","kA","ohm","kohm","Mohm","mohm"],"example":"cm"},"to":{"type":"string","enum":["mm","cm","dm","m","km","in","ft","yd","mi","nmi","mg","g","kg","t","oz","lb","st","ml","cl","dl","l","m3","tsp","tbsp","floz","cup","pt","qt","gal","ukgal","mm2","cm2","m2","ha","km2","in2","ft2","yd2","ac","mi2","m/s","km/h","mph","kn","ft/s","ms","s","min","h","d","wk","yr","bit","Kbit","Mbit","Gbit","B","KB","MB","GB","TB","PB","KiB","MiB","GiB","TiB","bit/s","Kbit/s","Mbit/s","Gbit/s","B/s","KB/s","MB/s","GB/s","KiB/s","MiB/s","GiB/s","C","F","K","Pa","kPa","MPa","bar","mbar","psi","atm","torr","J","kJ","MJ","Wh","kWh","cal","kcal","BTU","W","kW","MW","hp","metric-hp","BTU/h","Hz","kHz","MHz","GHz","THz","rpm","rad","deg","arcmin","arcsec","grad","N","kN","dyn","kgf","lbf","Nm","kNm","lb-ft","lb-in","km/L","L/100km","mpg-us","mpg-uk","kg/m3","g/cm3","g/ml","lb/ft3","lb/gal-us","m/s2","g0","ft/s2","lx","klx","fc","phot","V","mV","kV","A","mA","kA","ohm","kohm","Mohm","mohm"],"example":"in"},"ingredient":{"type":"string","enum":["flour","sugar","brown-sugar","butter","honey","rice","water","cocoa","oats"],"default":"water"}},"required":["value","from","to"]},"example":{"value":10,"from":"cm","to":"in"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/ratio-calculator":{"post":{"operationId":"ratio_calculator","summary":"Ratio Calculator","description":"Simplify a two-part ratio and calculate each part as a percentage of the total.","tags":["math"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"a":{"type":"number","minimum":0,"maximum":1000000000,"default":3,"example":3},"b":{"type":"number","minimum":0,"maximum":1000000000,"default":4,"example":4}}},"example":{"a":3,"b":4}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/pet-age-calculator":{"post":{"operationId":"pet_age_calculator","summary":"Animal Age Calculator","description":"Convert your pet\u2019s age to human years: dogs (by size), cats, rabbits, guinea pigs, hamsters and horses. Free animal age calculator with age charts.","tags":["calculator"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"animal":{"type":"string","enum":["dog","cat","rabbit","guinea_pig","hamster","horse"],"default":"dog"},"age":{"type":"number","minimum":0.01,"maximum":50,"description":"Age of the animal in years (decimals allowed, e.g. 0.5 for six months).","example":3},"size":{"type":"string","enum":["small","medium","large","giant"],"description":"Dogs only: small < 9 kg, medium 9\u201323 kg, large 23\u201341 kg, giant > 41 kg.","default":"medium"},"method":{"type":"string","enum":["chart","epigenetic"],"description":"Dogs only: size chart, or the epigenetic formula 16 \u00d7 ln(age) + 31.","default":"chart"}},"required":["age"]},"example":{"age":3}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/average-calculator":{"post":{"operationId":"average_calculator","summary":"Average Calculator","description":"Find the arithmetic mean of a list of numbers, together with their sum and count.","tags":["math"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"numbers":{"type":"string","maxLength":100000,"default":"1, 2, 3, 4, 5","example":"1, 2, 3, 4, 5"}},"required":["numbers"]},"example":{"numbers":"1, 2, 3, 4, 5"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/interest-calculator":{"post":{"operationId":"interest_calculator","summary":"Interest Calculator","description":"Free interest calculator: see how your savings grow with compound or simple interest, monthly deposits and a year-by-year overview. No sign-up.","tags":["finance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"principal":{"type":"number","minimum":0,"maximum":1000000000000,"description":"Starting amount.","example":10000},"rate":{"type":"number","minimum":0,"maximum":100,"description":"Annual interest rate in percent.","example":4},"years":{"type":"integer","minimum":1,"maximum":100,"example":10},"monthly_deposit":{"type":"number","minimum":0,"maximum":1000000000,"description":"Amount added at the end of every month.","default":0},"compounding":{"type":"string","enum":["yearly","quarterly","monthly","daily","simple"],"description":"How often interest is added; \"simple\" pays interest on deposits only, never on interest.","default":"monthly"}},"required":["principal","rate","years"]},"example":{"principal":10000,"rate":4,"years":10}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/week-number":{"post":{"operationId":"week_number","summary":"Week Number Calculator","description":"Find the ISO 8601 week number for any date. See the week-year, weekday, and Monday-to-Sunday dates with this free week calculator.","tags":["date-time"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"date":{"type":"string","format":"date","description":"Date for which to find the ISO 8601 week number."}}},"example":[]}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/probability-calculator":{"post":{"operationId":"probability_calculator","summary":"Probability Calculator","description":"Calculate the probability of an event from favorable outcomes and the total number of equally likely outcomes.","tags":["math"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"favorable":{"type":"number","minimum":0,"maximum":1000000000,"default":1,"example":1},"total":{"type":"number","minimum":1.0e-6,"maximum":1000000000,"default":6,"example":6}}},"example":{"favorable":1,"total":6}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/etd-service-catalog":{"post":{"operationId":"etd_service_catalog","summary":"eTD Service Catalogue Editor","description":"Load an OIN's entries from the eTD service catalogue, edit service definitions, instances, attributes, classifiers and certificates, and generate checked catalogue XML. Free.","tags":["developer"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"mode":{"type":"string","enum":["load","import","validate"],"description":"load: the catalogue entries of `oin` from the aggregator, as XML and as the editor model; import: read pasted catalogue XML (`xml`) into the editor model; validate: check catalogue XML (`xml`) against the Afsprakenstelsel 1.13.","default":"load"},"oin":{"type":"string","maxLength":40,"description":"20-digit OIN of the service provider, for mode=load.","example":"00000001003214394000"},"environment":{"type":"string","enum":["production","test"],"description":"Which aggregator catalogue to load from, for mode=load.","default":"production"},"xml":{"type":"string","maxLength":5242880,"description":"Service catalogue XML (a ServiceCatalogue or ServiceProvider element), for mode=import and mode=validate."}}},"example":{"oin":"00000001003214394000"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/loan-calculator":{"post":{"operationId":"loan_calculator","summary":"Loan Calculator","description":"Free loan calculator: work out the monthly payment, total interest and year-by-year amortization of an annuity or linear loan. No sign-up.","tags":["finance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"amount":{"type":"number","minimum":1,"maximum":1000000000,"description":"Loan amount.","example":25000},"rate":{"type":"number","minimum":0,"maximum":50,"description":"Annual interest rate in percent.","example":6},"years":{"type":"integer","minimum":1,"maximum":50,"description":"Term in years.","example":5},"type":{"type":"string","enum":["annuity","linear"],"description":"annuity: equal monthly payments \u00b7 linear: equal monthly repayments, decreasing interest","default":"annuity"}},"required":["amount","rate","years"]},"example":{"amount":25000,"rate":6,"years":5}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/baby-boy-name-generator":{"post":{"operationId":"baby_boy_name_generator","summary":"Baby Boy Name Generator","description":"Generate baby boy name ideas and filter them by first letter. Explore timeless and modern names, then copy or download your shortlist for free.","tags":["family"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","minimum":1,"maximum":20,"description":"Number of names to generate.","default":10},"first_letter":{"type":"string","enum":["any","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"],"description":"Optionally choose a first letter.","default":"any"}}},"example":[]}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/standard-deviation-calculator":{"post":{"operationId":"standard_deviation_calculator","summary":"Standard Deviation Calculator","description":"Calculate the mean, variance and standard deviation of a data set using a population or sample formula.","tags":["math"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"numbers":{"type":"string","maxLength":100000,"default":"1, 2, 3, 4, 5","example":"1, 2, 3, 4, 5"},"mode":{"type":"string","enum":["population","sample"],"default":"population"}},"required":["numbers"]},"example":{"numbers":"1, 2, 3, 4, 5"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/inflation-calculator":{"post":{"operationId":"inflation_calculator","summary":"Inflation Calculator","description":"Free inflation calculator: see what something will cost in the future or how much your money will be worth, at any yearly inflation rate.","tags":["finance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"amount":{"type":"number","minimum":0,"maximum":1000000000000,"example":1000},"rate":{"type":"number","minimum":-20,"maximum":100,"description":"Average yearly inflation in percent.","default":2},"years":{"type":"integer","minimum":1,"maximum":100,"example":10},"mode":{"type":"string","enum":["future_cost","purchasing_power"],"description":"future_cost: what something costs after N years \u00b7 purchasing_power: what the amount is worth after N years","default":"future_cost"}},"required":["amount","years"]},"example":{"amount":1000,"years":10}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/baby-girl-name-generator":{"post":{"operationId":"baby_girl_name_generator","summary":"Baby Girl Name Generator","description":"Generate baby girl name ideas and filter them by first letter. Explore timeless and modern names, then copy or download your shortlist for free.","tags":["family"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","minimum":1,"maximum":20,"description":"Number of names to generate.","default":10},"first_letter":{"type":"string","enum":["any","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"],"description":"Optionally choose a first letter.","default":"any"}}},"example":[]}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/variance-calculator":{"post":{"operationId":"variance_calculator","summary":"Variance Calculator","description":"Calculate population or sample variance and standard deviation from a list of observations.","tags":["math"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"numbers":{"type":"string","maxLength":100000,"default":"1, 2, 3, 4, 5","example":"1, 2, 3, 4, 5"},"mode":{"type":"string","enum":["population","sample"],"default":"population"}},"required":["numbers"]},"example":{"numbers":"1, 2, 3, 4, 5"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/image-converter":{"post":{"operationId":"image_converter","summary":"Image Converter","description":"Free image converter: convert JPG, PNG, WebP, GIF and AVIF to JPG, PNG or WebP and resize them \u2013 in your browser, without uploading. Batch + ZIP.","tags":["image"],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"image":{"type":"string","format":"binary","description":"The image to convert."},"format":{"type":"string","enum":["jpg","png","webp"],"description":"Output format.","default":"webp","example":"webp"},"quality":{"type":"integer","minimum":1,"maximum":100,"description":"Quality for JPG and WebP (1\u2013100).","default":85,"example":80},"max_width":{"type":"integer","minimum":1,"maximum":10000,"description":"Optional: scale down to at most this width (keeps the aspect ratio)."},"max_height":{"type":"integer","minimum":1,"maximum":10000,"description":"Optional: scale down to at most this height (keeps the aspect ratio)."}},"required":["image"]}}}},"responses":{"200":{"description":"The converted file","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/body-fat-calculator":{"post":{"operationId":"body_fat_calculator","summary":"Body Fat Calculator","description":"Estimate body fat percentage from age, height, weight and sex with a BMI-based equation. Includes metric and imperial units. Free adult calculator.","tags":["health"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"unit":{"type":"string","enum":["metric","imperial"],"description":"metric: kg + cm \u00b7 imperial: lb + inches","default":"metric"},"sex":{"type":"string","enum":["female","male"],"description":"Sex coefficient used by the Deurenberg equation.","default":"female"},"age":{"type":"integer","minimum":18,"maximum":100,"description":"Age in years.","default":30},"weight":{"type":"number","minimum":1,"maximum":1000,"description":"Weight in kg or lb according to unit.","default":70,"example":70},"height":{"type":"number","minimum":50,"maximum":280,"description":"Height in cm or inches according to unit.","default":165,"example":165}}},"example":{"weight":70,"height":165}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/percentage-change-calculator":{"post":{"operationId":"percentage_change_calculator","summary":"Percentage Change Calculator","description":"Calculate the percentage increase or decrease between an original value and a new value.","tags":["math"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"from_value":{"type":"number","minimum":-1000000000,"maximum":1000000000,"default":100,"example":100},"to_value":{"type":"number","minimum":-1000000000,"maximum":1000000000,"default":125,"example":125}}},"example":{"from_value":100,"to_value":125}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/tdee-calculator":{"post":{"operationId":"tdee_calculator","summary":"TDEE Calculator","description":"Estimate your total daily energy expenditure (TDEE) from age, height, weight and activity level. Includes metric and imperial units. Free adult calorie calculator.","tags":["health"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"unit":{"type":"string","enum":["metric","imperial"],"description":"metric: kg + cm \u00b7 imperial: lb + inches","default":"metric"},"sex":{"type":"string","enum":["female","male"],"description":"Sex coefficient used by the Mifflin\u2013St Jeor equation.","default":"female"},"age":{"type":"integer","minimum":18,"maximum":100,"description":"Age in years.","default":30},"weight":{"type":"number","minimum":1,"maximum":1000,"description":"Weight in kg or lb according to unit.","default":70,"example":70},"height":{"type":"number","minimum":50,"maximum":280,"description":"Height in cm or inches according to unit.","default":165,"example":165},"activity":{"type":"string","enum":["sedentary","light","moderate","active","very_active"],"description":"Activity multiplier for estimated daily energy use.","default":"moderate"}}},"example":{"weight":70,"height":165}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/bmr-calculator":{"post":{"operationId":"bmr_calculator","summary":"BMR Calculator","description":"Estimate your basal metabolic rate (BMR) from age, height, weight and sex. Supports metric and imperial units. Free adult BMR calculator.","tags":["health"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"unit":{"type":"string","enum":["metric","imperial"],"description":"metric: kg + cm \u00b7 imperial: lb + inches","default":"metric"},"sex":{"type":"string","enum":["female","male"],"description":"Sex coefficient used by the Mifflin\u2013St Jeor equation.","default":"female"},"age":{"type":"integer","minimum":18,"maximum":100,"description":"Age in years.","default":30},"weight":{"type":"number","minimum":1,"maximum":1000,"description":"Weight in kg or lb according to unit.","default":70,"example":70},"height":{"type":"number","minimum":50,"maximum":280,"description":"Height in cm or inches according to unit.","default":165,"example":165}}},"example":{"weight":70,"height":165}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/gcd-lcm-calculator":{"post":{"operationId":"gcd_lcm_calculator","summary":"GCD and LCM Calculator","description":"Find the greatest common divisor (GCD) and least common multiple (LCM) of two whole numbers.","tags":["math"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"a":{"type":"integer","minimum":1,"maximum":1000000,"default":24,"example":24},"b":{"type":"integer","minimum":1,"maximum":1000000,"default":36,"example":36}}},"example":{"a":24,"b":36}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/calorie-calculator":{"post":{"operationId":"calorie_calculator","summary":"Calorie Calculator","description":"Estimate how many calories you need each day to maintain your weight. Enter your age, height, weight and activity level. Free calculator for adults.","tags":["health"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"unit":{"type":"string","enum":["metric","imperial"],"description":"metric: kg + cm \u00b7 imperial: lb + inches","default":"metric"},"sex":{"type":"string","enum":["female","male"],"description":"Sex coefficient used by the Mifflin\u2013St Jeor equation.","default":"female"},"age":{"type":"integer","minimum":18,"maximum":100,"description":"Age in years.","default":30},"weight":{"type":"number","minimum":1,"maximum":1000,"description":"Weight in kg or lb according to unit.","default":70,"example":70},"height":{"type":"number","minimum":50,"maximum":280,"description":"Height in cm or inches according to unit.","default":165,"example":165},"activity":{"type":"string","enum":["sedentary","light","moderate","active","very_active"],"description":"Activity multiplier for estimated daily energy use.","default":"moderate"}}},"example":{"weight":70,"height":165}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/scientific-calculator":{"post":{"operationId":"scientific_calculator","summary":"Scientific Calculator","description":"Evaluate common scientific functions including trigonometry, logarithms, powers, roots and reciprocals.","tags":["math"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"number","minimum":-1000000000,"maximum":1000000000,"default":30,"example":30},"mode":{"type":"string","enum":["sin","cos","tan","asin","acos","atan","ln","log10","sqrt","square","cube","exp","reciprocal","abs"],"default":"sin"},"angle_unit":{"type":"string","enum":["degrees","radians"],"default":"degrees"}}},"example":{"value":30}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/quadratic-equation-calculator":{"post":{"operationId":"quadratic_equation_calculator","summary":"Quadratic Equation Calculator","description":"Solve a quadratic equation in the form ax\u00b2 + bx + c = 0 and inspect its discriminant and roots.","tags":["math"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"a":{"type":"number","minimum":-1000000000,"maximum":1000000000,"default":1,"example":1},"b":{"type":"number","minimum":-1000000000,"maximum":1000000000,"default":-3,"example":-3},"c":{"type":"number","minimum":-1000000000,"maximum":1000000000,"default":2,"example":2}}},"example":{"a":1,"b":-3,"c":2}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/ideal-weight-calculator":{"post":{"operationId":"ideal_weight_calculator","summary":"Ideal Weight Calculator","description":"Estimate an adult weight range for your height based on BMI values of 18.5 to 24.9. Includes metric and imperial units and a reference midpoint.","tags":["health"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"unit":{"type":"string","enum":["metric","imperial"],"description":"metric: cm \u00b7 imperial: inches","default":"metric"},"height":{"type":"number","minimum":20,"maximum":300,"description":"Height in cm or inches according to unit.","default":170,"example":170}}},"example":{"height":170}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/calorie-deficit-calculator":{"post":{"operationId":"calorie_deficit_calculator","summary":"Calorie Deficit Calculator","description":"Estimate maintenance calories and a goal-based daily target from your age, height, weight and activity. Compare BMR formulas and see optional macro estimates.","tags":["health"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"unit":{"type":"string","enum":["metric","imperial"],"description":"metric: kg + cm \u00b7 imperial: lb + inches","default":"metric"},"sex":{"type":"string","enum":["female","male"],"description":"Sex coefficient used by the Mifflin\u2013St Jeor equation.","default":"female"},"age":{"type":"integer","minimum":18,"maximum":80,"description":"Age in years.","default":30},"weight":{"type":"number","minimum":1,"maximum":1000,"description":"Weight in kg or lb according to unit.","default":70,"example":70},"height":{"type":"number","minimum":50,"maximum":280,"description":"Height in cm or inches according to unit.","default":165,"example":165},"activity":{"type":"string","enum":["sedentary","light","moderate","active","very_active"],"description":"Activity multiplier for estimated daily energy use.","default":"moderate"},"goal":{"type":"string","enum":["lose_mild","lose_moderate","maintain","gain_mild","gain_moderate"],"description":"Adjustment to estimated maintenance calories.","default":"lose_mild"},"formula":{"type":"string","enum":["mifflin","katch"],"description":"BMR estimation formula. Katch\u2013McArdle uses body-fat percentage.","default":"mifflin"},"body_fat_percentage":{"type":"number","minimum":2,"maximum":75,"description":"Estimated body-fat percentage, used by Katch\u2013McArdle.","default":25},"macro_profile":{"type":"string","enum":["balanced","higher_protein","lower_carb"],"description":"Macro calorie split used to estimate grams per day.","default":"balanced"}}},"example":{"weight":70,"height":165}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/linear-equation-calculator":{"post":{"operationId":"linear_equation_calculator","summary":"Linear Equation Calculator","description":"Solve a linear equation in the form ax + b = 0 for x.","tags":["math"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"a":{"type":"number","minimum":-1000000000,"maximum":1000000000,"default":2,"example":2},"b":{"type":"number","minimum":-1000000000,"maximum":1000000000,"default":-8,"example":-8}}},"example":{"a":2,"b":-8}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/exponent-calculator":{"post":{"operationId":"exponent_calculator","summary":"Exponent Calculator","description":"Calculate a base raised to a power, including fractional and negative exponents.","tags":["math"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"base":{"type":"number","minimum":-1000000000,"maximum":1000000000,"default":2,"example":2},"exponent":{"type":"number","minimum":-1000,"maximum":1000,"default":8,"example":8}}},"example":{"base":2,"exponent":8}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/logarithm-calculator":{"post":{"operationId":"logarithm_calculator","summary":"Logarithm Calculator","description":"Calculate a logarithm for any positive value and valid positive base other than one.","tags":["math"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"number","minimum":1.0e-6,"maximum":1000000000,"default":100,"example":100},"base":{"type":"number","minimum":1.0e-6,"maximum":1000000000,"default":10,"example":10}}},"example":{"value":100,"base":10}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/square-root-calculator":{"post":{"operationId":"square_root_calculator","summary":"Square Root Calculator","description":"Find the principal square root of a non-negative number.","tags":["math"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"number","minimum":0,"maximum":1000000000,"default":144,"example":144}}},"example":{"value":144}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/file-to-pdf":{"post":{"operationId":"file_to_pdf","summary":"File to PDF Converter","description":"Convert Word, Excel, TXT, JSON, Markdown, CSV, XML, HTML and images to PDF online. Free file to PDF converter, up to 20 MB.","tags":["file"],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"JPG, PNG, WebP, GIF, BMP, TXT, JSON, Markdown, CSV, XML, HTML, RTF, DOCX or XLSX; max 20 MB."}},"required":["file"]}}}},"responses":{"200":{"description":"The converted file","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/factorial-calculator":{"post":{"operationId":"factorial_calculator","summary":"Factorial Calculator","description":"Calculate n factorial, the product of all positive integers up to n.","tags":["math"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"n":{"type":"integer","minimum":0,"maximum":170,"default":5,"example":5}}},"example":{"n":5}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/permutation-combination-calculator":{"post":{"operationId":"permutation_combination_calculator","summary":"Permutation and Combination Calculator","description":"Calculate arrangements where order matters (permutations) or selections where it does not (combinations).","tags":["math"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"n":{"type":"integer","minimum":0,"maximum":170,"default":10,"example":10},"r":{"type":"integer","minimum":0,"maximum":170,"default":3,"example":3},"mode":{"type":"string","enum":["permutation","combination"],"default":"combination"}}},"example":{"n":10,"r":3}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/z-score-calculator":{"post":{"operationId":"z_score_calculator","summary":"Z-Score Calculator","description":"Convert a value to a z-score using its mean and standard deviation.","tags":["math"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"x":{"type":"number","minimum":-1000000000,"maximum":1000000000,"default":85,"example":85},"mean":{"type":"number","minimum":-1000000000,"maximum":1000000000,"default":70,"example":70},"standard_deviation":{"type":"number","minimum":1.0e-6,"maximum":1000000000,"default":10,"example":10}}},"example":{"x":85,"mean":70,"standard_deviation":10}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/confidence-interval-calculator":{"post":{"operationId":"confidence_interval_calculator","summary":"Confidence Interval Calculator","description":"Estimate a confidence interval for a mean using a sample mean, standard deviation, sample size and confidence level.","tags":["math"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"mean":{"type":"number","minimum":-1000000000,"maximum":1000000000,"default":50,"example":50},"standard_deviation":{"type":"number","minimum":0,"maximum":1000000000,"default":10,"example":10},"sample_size":{"type":"integer","minimum":1,"maximum":1000000,"default":100,"example":100},"confidence_level":{"type":"string","enum":["90","95","99"],"default":"95"}}},"example":{"mean":50,"standard_deviation":10,"sample_size":100}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/mean-median-mode-calculator":{"post":{"operationId":"mean_median_mode_calculator","summary":"Mean, Median and Mode Calculator","description":"Calculate the mean, median, mode and count for a set of numbers.","tags":["math"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"numbers":{"type":"string","maxLength":100000,"default":"1, 2, 3, 4, 5","example":"1, 2, 3, 4, 5"}},"required":["numbers"]},"example":{"numbers":"1, 2, 3, 4, 5"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/range-calculator":{"post":{"operationId":"range_calculator","summary":"Range Calculator","description":"Find the minimum, maximum and range of a list of numerical values.","tags":["math"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"numbers":{"type":"string","maxLength":100000,"default":"1, 2, 3, 4, 5","example":"1, 2, 3, 4, 5"}},"required":["numbers"]},"example":{"numbers":"1, 2, 3, 4, 5"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/linear-regression-calculator":{"post":{"operationId":"linear_regression_calculator","summary":"Linear Regression Calculator","description":"Fit a straight line to paired x and y observations and calculate slope, intercept and R-squared.","tags":["math"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"x_values":{"type":"string","maxLength":100000,"default":"1, 2, 3, 4, 5","example":"1, 2, 3, 4, 5"},"y_values":{"type":"string","maxLength":100000,"default":"2, 4, 5, 4, 5","example":"2, 4, 5, 4, 5"}},"required":["x_values","y_values"]},"example":{"x_values":"1, 2, 3, 4, 5","y_values":"2, 4, 5, 4, 5"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/correlation-coefficient-calculator":{"post":{"operationId":"correlation_coefficient_calculator","summary":"Correlation Coefficient Calculator","description":"Calculate Pearson\u2019s correlation coefficient from paired x and y data.","tags":["math"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"x_values":{"type":"string","maxLength":100000,"default":"1, 2, 3, 4, 5","example":"1, 2, 3, 4, 5"},"y_values":{"type":"string","maxLength":100000,"default":"2, 4, 5, 4, 5","example":"2, 4, 5, 4, 5"}},"required":["x_values","y_values"]},"example":{"x_values":"1, 2, 3, 4, 5","y_values":"2, 4, 5, 4, 5"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/p-value-calculator":{"post":{"operationId":"p_value_calculator","summary":"P-Value Calculator","description":"Estimate a one-tailed or two-tailed p-value from a z-score under the standard normal distribution.","tags":["math"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"z_score":{"type":"number","minimum":-1000000000,"maximum":1000000000,"default":1.96,"example":1.96},"mode":{"type":"string","enum":["one","two"],"default":"two"}}},"example":{"z_score":1.96}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/normal-distribution-calculator":{"post":{"operationId":"normal_distribution_calculator","summary":"Normal Distribution Calculator","description":"Calculate the z-score, cumulative probability and probability density for a normal distribution.","tags":["math"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"x":{"type":"number","minimum":-1000000000,"maximum":1000000000,"default":70,"example":70},"mean":{"type":"number","minimum":-1000000000,"maximum":1000000000,"default":60,"example":60},"standard_deviation":{"type":"number","minimum":1.0e-6,"maximum":1000000000,"default":10,"example":10}}},"example":{"x":70,"mean":60,"standard_deviation":10}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/bayes-theorem-calculator":{"post":{"operationId":"bayes_theorem_calculator","summary":"Bayes' Theorem Calculator","description":"Update a prior probability using a true-positive rate and false-positive rate to calculate a posterior probability.","tags":["math"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"prior_probability":{"type":"number","minimum":0,"maximum":100,"default":1,"example":1},"true_positive_rate":{"type":"number","minimum":0,"maximum":100,"default":99,"example":99},"false_positive_rate":{"type":"number","minimum":0,"maximum":100,"default":5,"example":5}}},"example":{"prior_probability":1,"true_positive_rate":99,"false_positive_rate":5}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/date-add-subtract":{"post":{"operationId":"date_add_subtract","summary":"Date Add or Subtract Calculator","description":"Add or subtract a number of days, weeks, months or years from a date, with month-end dates handled safely.","tags":["date-time"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"date":{"type":"string","format":"date","example":"2026-01-31"},"amount":{"type":"integer","minimum":0,"maximum":100000,"default":1,"example":1},"unit":{"type":"string","enum":["days","weeks","months","years"],"default":"days"},"operation":{"type":"string","enum":["add","subtract"],"default":"add"}},"required":["date"]},"example":{"date":"2026-01-31","amount":1}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/time-duration":{"post":{"operationId":"time_duration","summary":"Time Duration Calculator","description":"Calculate the elapsed time between two clock times, including intervals that cross midnight.","tags":["date-time"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"start_time":{"type":"string","maxLength":100000,"default":"09:00","example":"09:00"},"end_time":{"type":"string","maxLength":100000,"default":"17:00","example":"17:00"}},"required":["start_time","end_time"]},"example":{"start_time":"09:00","end_time":"17:00"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/countdown-calculator":{"post":{"operationId":"countdown_calculator","summary":"Countdown Calculator","description":"Count the days, full weeks and remaining days from a start date to a target date.","tags":["date-time"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"from_date":{"type":"string","format":"date","default":"2026-10-25","example":"2026-01-01"},"target_date":{"type":"string","format":"date","default":"2026-11-24","example":"2026-01-31"}}},"example":{"from_date":"2026-01-01","target_date":"2026-01-31"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/timezone-converter":{"post":{"operationId":"timezone_converter","summary":"Time Zone Converter","description":"Convert a local date and time between common IANA time zones and see the UTC offset and Unix timestamp.","tags":["date-time"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"local_datetime":{"type":"string","maxLength":100000,"default":"2026-10-25T02:06","example":"2026-01-15T12:00"},"from_timezone":{"type":"string","enum":["UTC","Europe/Amsterdam","Europe/London","America/New_York","America/Los_Angeles","Asia/Dubai","Asia/Tokyo","Australia/Sydney"],"default":"UTC"},"to_timezone":{"type":"string","enum":["UTC","Europe/Amsterdam","Europe/London","America/New_York","America/Los_Angeles","Asia/Dubai","Asia/Tokyo","Australia/Sydney"],"default":"Europe/Amsterdam"}},"required":["local_datetime"]},"example":{"local_datetime":"2026-01-15T12:00"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/unix-timestamp-converter":{"post":{"operationId":"unix_timestamp_converter","summary":"Unix Timestamp Converter","description":"Convert Unix timestamps in seconds or milliseconds to a readable UTC date and back again.","tags":["date-time"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"timestamp":{"type":"integer","minimum":0,"maximum":253402300799000,"default":1767225600,"example":1767225600},"unit":{"type":"string","enum":["seconds","milliseconds"],"default":"seconds"}}},"example":{"timestamp":1767225600}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/leap-year-calculator":{"post":{"operationId":"leap_year_calculator","summary":"Leap Year Calculator","description":"Check whether a year is a leap year and see how many days it contains.","tags":["date-time"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"year":{"type":"integer","minimum":1,"maximum":9999,"default":2026,"example":2026}}},"example":{"year":2026}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/calendar":{"post":{"operationId":"calendar","summary":"Calendar","description":"Free online calendar: today\u2019s date, ISO week number, day of the year and quarter, month and year views with week numbers, plus public holidays for 5 countries.","tags":["date-time"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"date":{"type":"string","format":"date","description":"The date (YYYY-MM-DD, from 1583). Defaults to today."},"country":{"type":"string","enum":["none","nl","be","de","gb","us"],"description":"Public holidays to include: Netherlands, Belgium, Germany (nationwide), United Kingdom (England & Wales) or United States (federal).","default":"none","example":"nl"}}},"example":{"country":"nl"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/protein-intake-calculator":{"post":{"operationId":"protein_intake_calculator","summary":"Protein Intake Calculator","description":"Protein intake by body weight for general, active and athletic adults.","tags":["health"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"weight":{"type":"number","minimum":1,"maximum":1000,"description":"weight","default":70,"example":70},"unit":{"type":"string","enum":["metric","imperial"],"description":"unit","default":"metric"},"activity":{"type":"string","enum":["general","active","athlete"],"description":"activity","default":"active"}}},"example":{"weight":70}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/water-intake-calculator":{"post":{"operationId":"water_intake_calculator","summary":"Water Intake Calculator","description":"See a reference for total daily water intake based on life stage.","tags":["health"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"profile":{"type":"string","enum":["woman","man","pregnancy","lactation"],"description":"profile","default":"woman"}}},"example":[]}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/waist-to-height-ratio":{"post":{"operationId":"waist_to_height_ratio","summary":"Waist-to-Height Ratio Calculator","description":"Calculate your waist-to-height ratio as an adult screening measure.","tags":["health"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"waist":{"type":"number","minimum":1,"maximum":300,"description":"waist","default":80,"example":80},"height":{"type":"number","minimum":20,"maximum":300,"description":"height","default":170,"example":170},"unit":{"type":"string","enum":["metric","imperial"],"description":"unit","default":"metric"}}},"example":{"waist":80,"height":170}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/lean-body-mass-calculator":{"post":{"operationId":"lean_body_mass_calculator","summary":"Lean Body Mass Calculator","description":"Estimate fat-free mass from body weight and body-fat percentage.","tags":["health"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"weight":{"type":"number","minimum":1,"maximum":1000,"description":"weight","default":70,"example":70},"body_fat":{"type":"number","minimum":1,"maximum":75,"description":"body_fat","default":20,"example":20},"unit":{"type":"string","enum":["metric","imperial"],"description":"unit","default":"metric"}}},"example":{"weight":70,"body_fat":20}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/calories-burned-calculator":{"post":{"operationId":"calories_burned_calculator","summary":"Calories Burned Calculator","description":"Estimate energy use from body weight, activity and exercise duration.","tags":["health"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"weight":{"type":"number","minimum":1,"maximum":1000,"description":"weight","default":70,"example":70},"minutes":{"type":"number","minimum":1,"maximum":1440,"description":"minutes","default":30,"example":30},"activity":{"type":"string","enum":["walking","cycling","running","swimming","strength_training"],"description":"activity","default":"walking"},"unit":{"type":"string","enum":["metric","imperial"],"description":"unit","default":"metric"}}},"example":{"weight":70,"minutes":30}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/running-pace-calculator":{"post":{"operationId":"running_pace_calculator","summary":"Running Pace Calculator","description":"Find your pace per kilometre and mile from distance and finish time.","tags":["health"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"distance":{"type":"number","minimum":0.01,"maximum":10000,"description":"distance","default":5,"example":5},"hours":{"type":"integer","minimum":0,"maximum":99,"description":"hours","default":0,"example":0},"minutes":{"type":"integer","minimum":0,"maximum":59,"description":"minutes","default":25,"example":25},"seconds":{"type":"integer","minimum":0,"maximum":59,"description":"seconds","default":0,"example":0},"unit":{"type":"string","enum":["km","mi"],"description":"unit","default":"km"}}},"example":{"distance":5,"hours":0,"minutes":25,"seconds":0}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/one-rep-max-calculator":{"post":{"operationId":"one_rep_max_calculator","summary":"One Rep Max Calculator","description":"Estimate a one-repetition maximum from the weight and repetitions completed.","tags":["health"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"weight":{"type":"number","minimum":1,"maximum":1000,"description":"weight","default":60,"example":60},"reps":{"type":"integer","minimum":1,"maximum":10,"description":"reps","default":8,"example":8},"unit":{"type":"string","enum":["kg","lb"],"description":"unit","default":"kg"}}},"example":{"weight":60,"reps":8}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/heart-rate-zone-calculator":{"post":{"operationId":"heart_rate_zone_calculator","summary":"Heart Rate Zone Calculator","description":"Estimate five training heart-rate zones from age-predicted maximum heart rate.","tags":["health"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"age":{"type":"integer","minimum":18,"maximum":100,"description":"age","default":30,"example":30}}},"example":{"age":30}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/sleep-calculator":{"post":{"operationId":"sleep_calculator","summary":"Sleep Calculator","description":"Choose a wake time and see bedtimes allowing for 7, 8 or 9 hours of sleep.","tags":["health"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"wake_time":{"type":"string","maxLength":100000,"description":"Wake time in 24-hour HH:MM format.","default":"07:00"},"latency":{"type":"integer","minimum":0,"maximum":120,"description":"latency","default":15,"example":15}}},"example":{"latency":15}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/due-date-calculator":{"post":{"operationId":"due_date_calculator","summary":"Due Date Calculator","description":"Estimate a pregnancy due date from the first day of the last menstrual period.","tags":["health"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"lmp_date":{"type":"string","format":"date","example":"2026-01-01"},"cycle_length":{"type":"integer","minimum":21,"maximum":35,"description":"cycle_length","default":28,"example":28}},"required":["lmp_date"]},"example":{"lmp_date":"2026-01-01","cycle_length":28}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/ovulation-calculator":{"post":{"operationId":"ovulation_calculator","summary":"Ovulation Calculator","description":"Estimate ovulation and a fertile window from period date and cycle length.","tags":["health"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"lmp_date":{"type":"string","format":"date","example":"2026-01-01"},"cycle_length":{"type":"integer","minimum":21,"maximum":35,"description":"cycle_length","default":28,"example":28}},"required":["lmp_date"]},"example":{"lmp_date":"2026-01-01","cycle_length":28}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/pregnancy-weight-gain-calculator":{"post":{"operationId":"pregnancy_weight_gain_calculator","summary":"Pregnancy Weight Gain Calculator","description":"Compare current gain with a singleton pregnancy reference range based on pre-pregnancy BMI.","tags":["health"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"height":{"type":"number","minimum":50,"maximum":280,"description":"height","default":165,"example":165},"prepregnancy_weight":{"type":"number","minimum":1,"maximum":1000,"description":"prepregnancy_weight","default":65,"example":65},"current_weight":{"type":"number","minimum":1,"maximum":1000,"description":"current_weight","default":70,"example":70},"unit":{"type":"string","enum":["metric","imperial"],"description":"unit","default":"metric"}}},"example":{"height":165,"prepregnancy_weight":65,"current_weight":70}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/vitamin-mineral-intake-calculator":{"post":{"operationId":"vitamin_mineral_intake_calculator","summary":"Vitamin & Mineral Intake Calculator","description":"Vitamin and mineral intake calculator: see the US RDA or AI and the EU PRI or AI with upper limits for 23 nutrients, by age, sex, pregnancy and breastfeeding.","tags":["nutrition"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"age":{"type":"integer","minimum":19,"maximum":120,"description":"Age in years. Reference values cover adults aged 19 and over.","default":35,"example":35},"sex":{"type":"string","enum":["female","male"],"description":"Sex used to select reference values.","default":"female"},"status":{"type":"string","enum":["none","pregnant","lactating"],"description":"Pregnancy or lactation; female profile only.","default":"none"}}},"example":{"age":35}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/length-converter":{"post":{"operationId":"length_converter","summary":"Length Converter","description":"Free length converter for metres, centimetres, feet, inches, yards, miles, kilometres and nautical miles. Exact factors and instant results.","tags":["unit-converters"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"category":{"type":"string","enum":["length"],"default":"length"},"value":{"type":"number","example":10},"from":{"type":"string","enum":["mm","cm","dm","m","km","in","ft","yd","mi","nmi"],"example":"m"},"to":{"type":"string","enum":["mm","cm","dm","m","km","in","ft","yd","mi","nmi"],"example":"ft"}},"required":["value","from","to"]},"example":{"value":10,"from":"m","to":"ft"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/supplement-stack-calculator":{"post":{"operationId":"supplement_stack_calculator","summary":"Supplement Stack Calculator","description":"Supplement stack calculator: add up vitamins and minerals from all your products, spot nutrients you take twice and compare totals with US and EU upper limits.","tags":["nutrition"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"products":{"type":"string","maxLength":5000,"description":"One product per line: \"Name: nutrient amount unit, \u2026\" or \"nutrient amount unit\". Units: mg, \u00b5g (mcg), g, IU.","example":"Vitamin D3: 25 \u00b5g\nMultivitamin: vitamin D 10 \u00b5g, zinc 10 mg, vitamin B6 2 mg\nMagnesium citrate: 750 mg\nZinc: 15 mg"},"age":{"type":"integer","minimum":19,"maximum":120,"description":"Age in years. Reference values cover adults aged 19 and over.","default":35,"example":35},"sex":{"type":"string","enum":["female","male"],"description":"Sex used to select reference values.","default":"female"},"status":{"type":"string","enum":["none","pregnant","lactating"],"description":"Pregnancy or lactation; female profile only.","default":"none"}},"required":["products"]},"example":{"products":"Vitamin D3: 25 \u00b5g\nMultivitamin: vitamin D 10 \u00b5g, zinc 10 mg, vitamin B6 2 mg\nMagnesium citrate: 750 mg\nZinc: 15 mg","age":35}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/weight-converter":{"post":{"operationId":"weight_converter","summary":"Weight Converter","description":"Free weight converter for kilograms, grams, pounds, ounces, stone and tonnes. Exact factors for kg to lb, lb to kg and stone to kg conversions.","tags":["unit-converters"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"category":{"type":"string","enum":["weight"],"default":"weight"},"value":{"type":"number","example":10},"from":{"type":"string","enum":["mg","g","kg","t","oz","lb","st"],"example":"kg"},"to":{"type":"string","enum":["mg","g","kg","t","oz","lb","st"],"example":"lb"}},"required":["value","from","to"]},"example":{"value":10,"from":"kg","to":"lb"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/supplement-label-analyzer":{"post":{"operationId":"supplement_label_analyzer","summary":"Supplement Label Analyzer","description":"Supplement label analyzer: paste a Supplement Facts label to see each vitamin and mineral against US and EU upper limits, including overlap with other products.","tags":["nutrition"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","maxLength":10000,"description":"Supplement facts text, one nutrient per line.","example":"Supplement Facts\nServing size: 1 tablet\nVitamin D (as cholecalciferol) 25 \u00b5g (1,000 IU)\nVitamin B6 (as pyridoxine HCl) 2 mg\nMagnesium (as magnesium citrate) 200 mg\nZinc (as zinc gluconate) 15 mg"},"servings":{"type":"number","minimum":0.25,"maximum":20,"description":"Servings per day.","default":1,"example":1},"other":{"type":"string","maxLength":5000,"description":"Optional: other products you take, in the supplement stack format.","default":""},"age":{"type":"integer","minimum":19,"maximum":120,"description":"Age in years. Reference values cover adults aged 19 and over.","default":35,"example":35},"sex":{"type":"string","enum":["female","male"],"description":"Sex used to select reference values.","default":"female"},"status":{"type":"string","enum":["none","pregnant","lactating"],"description":"Pregnancy or lactation; female profile only.","default":"none"}},"required":["label"]},"example":{"label":"Supplement Facts\nServing size: 1 tablet\nVitamin D (as cholecalciferol) 25 \u00b5g (1,000 IU)\nVitamin B6 (as pyridoxine HCl) 2 mg\nMagnesium (as magnesium citrate) 200 mg\nZinc (as zinc gluconate) 15 mg","servings":1,"age":35}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/temperature-converter":{"post":{"operationId":"temperature_converter","summary":"Temperature Converter","description":"Free temperature converter for Celsius, Fahrenheit and Kelvin. See the formulas, oven temperatures and body temperature conversions instantly.","tags":["unit-converters"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"category":{"type":"string","enum":["temperature"],"default":"temperature"},"value":{"type":"number","example":20},"from":{"type":"string","enum":["C","F","K"],"example":"C"},"to":{"type":"string","enum":["C","F","K"],"example":"F"}},"required":["value","from","to"]},"example":{"value":20,"from":"C","to":"F"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/supplement-dose-calculator":{"post":{"operationId":"supplement_dose_calculator","summary":"Supplement Dose Calculator","description":"Supplement dose calculator: enter a vitamin or mineral, the amount per serving and servings per day to see your intake as a share of the RDA and upper limit.","tags":["nutrition"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"nutrient":{"type":"string","enum":["vitamin-a","thiamin","riboflavin","niacin","pantothenic-acid","vitamin-b6","biotin","folate","vitamin-b12","vitamin-c","vitamin-d","vitamin-e","vitamin-k","calcium","magnesium","iron","zinc","selenium","iodine","copper","manganese","chromium","molybdenum"],"default":"vitamin-d"},"amount":{"type":"number","minimum":0,"maximum":1000000,"description":"Amount per serving.","default":25,"example":25},"unit":{"type":"string","enum":["mg","mcg","g","IU"],"default":"mcg"},"servings":{"type":"number","minimum":0.25,"maximum":20,"description":"Servings per day.","default":1,"example":1},"age":{"type":"integer","minimum":19,"maximum":120,"description":"Age in years. Reference values cover adults aged 19 and over.","default":35,"example":35},"sex":{"type":"string","enum":["female","male"],"description":"Sex used to select reference values.","default":"female"},"status":{"type":"string","enum":["none","pregnant","lactating"],"description":"Pregnancy or lactation; female profile only.","default":"none"}}},"example":{"amount":25,"servings":1,"age":35}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/volume-converter":{"post":{"operationId":"volume_converter","summary":"Volume Converter","description":"Free volume converter for litres, millilitres, US and UK gallons, cups, pints, quarts, fluid ounces, tablespoons, teaspoons and cubic metres.","tags":["unit-converters"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"category":{"type":"string","enum":["volume"],"default":"volume"},"value":{"type":"number","example":10},"from":{"type":"string","enum":["ml","cl","dl","l","m3","tsp","tbsp","floz","cup","pt","qt","gal","ukgal"],"example":"l"},"to":{"type":"string","enum":["ml","cl","dl","l","m3","tsp","tbsp","floz","cup","pt","qt","gal","ukgal"],"example":"gal"}},"required":["value","from","to"]},"example":{"value":10,"from":"l","to":"gal"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/vitamin-d-calculator":{"post":{"operationId":"vitamin_d_calculator","summary":"Vitamin D Calculator","description":"Vitamin D calculator: convert IU to \u00b5g, add food and other supplements, and compare your daily vitamin D with the US RDA, EU AI and the 100 \u00b5g upper limit.","tags":["nutrition"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"amount":{"type":"number","minimum":0,"maximum":1000000,"description":"Vitamin D per serving.","default":1000,"example":1000},"unit":{"type":"string","enum":["IU","mcg"],"default":"IU"},"servings":{"type":"number","minimum":0.25,"maximum":20,"description":"Servings per day.","default":1,"example":1},"other_ug":{"type":"number","minimum":0,"maximum":10000,"description":"Vitamin D from food and other supplements, in \u00b5g per day.","default":0},"age":{"type":"integer","minimum":19,"maximum":120,"description":"Age in years. Reference values cover adults aged 19 and over.","default":35,"example":35},"sex":{"type":"string","enum":["female","male"],"description":"Sex used to select reference values.","default":"female"},"status":{"type":"string","enum":["none","pregnant","lactating"],"description":"Pregnancy or lactation; female profile only.","default":"none"}}},"example":{"amount":1000,"servings":1,"age":35}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/area-converter":{"post":{"operationId":"area_converter","summary":"Area Converter","description":"Free area converter for square metres, square feet, acres, hectares, square kilometres, square miles, square yards and square inches. Exact results.","tags":["unit-converters"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"category":{"type":"string","enum":["area"],"default":"area"},"value":{"type":"number","example":10},"from":{"type":"string","enum":["mm2","cm2","m2","ha","km2","in2","ft2","yd2","ac","mi2"],"example":"m2"},"to":{"type":"string","enum":["mm2","cm2","m2","ha","km2","in2","ft2","yd2","ac","mi2"],"example":"ft2"}},"required":["value","from","to"]},"example":{"value":10,"from":"m2","to":"ft2"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/elemental-mineral-calculator":{"post":{"operationId":"elemental_mineral_calculator","summary":"Elemental Mineral Calculator","description":"Elemental mineral calculator: convert the weight of magnesium citrate, calcium carbonate, zinc gluconate, ferrous sulfate and more into the elemental amount.","tags":["nutrition"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"compound":{"type":"string","enum":["magnesium-oxide","magnesium-citrate","magnesium-glycinate","magnesium-malate","magnesium-taurate","magnesium-l-threonate","magnesium-chloride","magnesium-sulfate","magnesium-carbonate","magnesium-lactate","magnesium-hydroxide","calcium-carbonate","calcium-citrate","calcium-lactate","calcium-gluconate","calcium-phosphate","zinc-gluconate","zinc-citrate","zinc-picolinate","zinc-bisglycinate","zinc-oxide","zinc-sulfate","zinc-acetate","ferrous-sulfate","ferrous-sulfate-dried","ferrous-fumarate","ferrous-gluconate","ferrous-bisglycinate"],"default":"magnesium-citrate"},"amount":{"type":"number","minimum":0,"maximum":100000,"description":"Weight of the compound per serving, in mg.","default":500,"example":500},"servings":{"type":"number","minimum":0.25,"maximum":20,"description":"Servings per day.","default":1,"example":1}}},"example":{"amount":500,"servings":1}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/speed-converter":{"post":{"operationId":"speed_converter","summary":"Speed Converter","description":"Free speed converter for kilometres per hour, miles per hour, knots, metres per second and feet per second. Exact results for driving and sailing.","tags":["unit-converters"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"category":{"type":"string","enum":["speed"],"default":"speed"},"value":{"type":"number","example":10},"from":{"type":"string","enum":["m/s","km/h","mph","kn","ft/s"],"example":"km/h"},"to":{"type":"string","enum":["m/s","km/h","mph","kn","ft/s"],"example":"mph"}},"required":["value","from","to"]},"example":{"value":10,"from":"km/h","to":"mph"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/magnesium-calculator":{"post":{"operationId":"magnesium_calculator","summary":"Magnesium Calculator","description":"Magnesium calculator: find the elemental magnesium in magnesium citrate, glycinate, oxide, malate, taurate and threonate, and compare it with the upper limit.","tags":["nutrition"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"compound":{"type":"string","enum":["magnesium-oxide","magnesium-citrate","magnesium-glycinate","magnesium-malate","magnesium-taurate","magnesium-l-threonate","magnesium-chloride","magnesium-sulfate","magnesium-carbonate","magnesium-lactate","magnesium-hydroxide"],"default":"magnesium-citrate"},"amount":{"type":"number","minimum":0,"maximum":100000,"description":"Weight of the compound per serving, in mg.","default":500,"example":500},"servings":{"type":"number","minimum":0.25,"maximum":20,"description":"Servings per day.","default":1,"example":1}}},"example":{"amount":500,"servings":1}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/time-converter":{"post":{"operationId":"time_converter","summary":"Time Converter","description":"Free time converter for milliseconds, seconds, minutes, hours, days, weeks and years. Convert hours to minutes, days to hours and more instantly.","tags":["unit-converters"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"category":{"type":"string","enum":["time"],"default":"time"},"value":{"type":"number","example":10},"from":{"type":"string","enum":["ms","s","min","h","d","wk","yr"],"example":"h"},"to":{"type":"string","enum":["ms","s","min","h","d","wk","yr"],"example":"min"}},"required":["value","from","to"]},"example":{"value":10,"from":"h","to":"min"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/vitamin-unit-converter":{"post":{"operationId":"vitamin_unit_converter","summary":"IU Converter","description":"IU converter for vitamins: convert international units to micrograms or milligrams and back for vitamin D, vitamin A (retinol, beta-carotene) and vitamin E.","tags":["nutrition"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"form":{"type":"string","enum":["vitamin-d","vitamin-a-retinol","vitamin-a-beta-carotene","vitamin-e-natural","vitamin-e-synthetic"],"default":"vitamin-d"},"value":{"type":"number","minimum":0,"maximum":1000000000,"default":1000,"example":1000},"direction":{"type":"string","enum":["iu_to_mass","mass_to_iu"],"default":"iu_to_mass"}}},"example":{"value":1000}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/data-storage-converter":{"post":{"operationId":"data_storage_converter","summary":"Data Storage Converter","description":"Free data storage converter for bits, bytes, KB, MB, GB, TB, PB and binary KiB, MiB, GiB and TiB. See why a 1 TB drive shows 931 GB.","tags":["unit-converters"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"category":{"type":"string","enum":["data"],"default":"data"},"value":{"type":"number","example":10},"from":{"type":"string","enum":["bit","Kbit","Mbit","Gbit","B","KB","MB","GB","TB","PB","KiB","MiB","GiB","TiB"],"example":"GB"},"to":{"type":"string","enum":["bit","Kbit","Mbit","Gbit","B","KB","MB","GB","TB","PB","KiB","MiB","GiB","TiB"],"example":"GiB"}},"required":["value","from","to"]},"example":{"value":10,"from":"GB","to":"GiB"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/pressure-converter":{"post":{"operationId":"pressure_converter","summary":"Pressure Converter","description":"Free pressure converter for bar, psi, pascal, kilopascal, megapascal, millibar, atmospheres and torr. Ideal for tyre, weather and hydraulic pressure.","tags":["unit-converters"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"category":{"type":"string","enum":["pressure"],"default":"pressure"},"value":{"type":"number","example":10},"from":{"type":"string","enum":["Pa","kPa","MPa","bar","mbar","psi","atm","torr"],"example":"bar"},"to":{"type":"string","enum":["Pa","kPa","MPa","bar","mbar","psi","atm","torr"],"example":"psi"}},"required":["value","from","to"]},"example":{"value":10,"from":"bar","to":"psi"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/energy-converter":{"post":{"operationId":"energy_converter","summary":"Energy Converter","description":"Free energy converter for joules, kilojoules, megajoules, watt-hours, kilowatt-hours, calories, kilocalories and BTU. Exact factors, instant results.","tags":["unit-converters"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"category":{"type":"string","enum":["energy"],"default":"energy"},"value":{"type":"number","example":10},"from":{"type":"string","enum":["J","kJ","MJ","Wh","kWh","cal","kcal","BTU"],"example":"kWh"},"to":{"type":"string","enum":["J","kJ","MJ","Wh","kWh","cal","kcal","BTU"],"example":"MJ"}},"required":["value","from","to"]},"example":{"value":10,"from":"kWh","to":"MJ"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/power-converter":{"post":{"operationId":"power_converter","summary":"Power Converter","description":"Free power converter for watts, kilowatts, megawatts, mechanical horsepower, metric horsepower (PS) and BTU per hour. Exact, instant results.","tags":["unit-converters"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"category":{"type":"string","enum":["power"],"default":"power"},"value":{"type":"number","example":10},"from":{"type":"string","enum":["W","kW","MW","hp","metric-hp","BTU/h"],"example":"kW"},"to":{"type":"string","enum":["W","kW","MW","hp","metric-hp","BTU/h"],"example":"hp"}},"required":["value","from","to"]},"example":{"value":10,"from":"kW","to":"hp"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/frequency-converter":{"post":{"operationId":"frequency_converter","summary":"Frequency Converter","description":"Free frequency converter for hertz, kilohertz, megahertz, gigahertz, terahertz and revolutions per minute (RPM). Instant and exact results.","tags":["unit-converters"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"category":{"type":"string","enum":["frequency"],"default":"frequency"},"value":{"type":"number","example":10},"from":{"type":"string","enum":["Hz","kHz","MHz","GHz","THz","rpm"],"example":"MHz"},"to":{"type":"string","enum":["Hz","kHz","MHz","GHz","THz","rpm"],"example":"kHz"}},"required":["value","from","to"]},"example":{"value":10,"from":"MHz","to":"kHz"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/angle-converter":{"post":{"operationId":"angle_converter","summary":"Angle Converter","description":"Free angle converter for degrees, radians, gradians, arcminutes and arcseconds. Convert degrees to radians and back with the exact formula.","tags":["unit-converters"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"category":{"type":"string","enum":["angle"],"default":"angle"},"value":{"type":"number","example":10},"from":{"type":"string","enum":["rad","deg","arcmin","arcsec","grad"],"example":"deg"},"to":{"type":"string","enum":["rad","deg","arcmin","arcsec","grad"],"example":"rad"}},"required":["value","from","to"]},"example":{"value":10,"from":"deg","to":"rad"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/force-converter":{"post":{"operationId":"force_converter","summary":"Force Converter","description":"Free force converter for newtons, kilonewtons, pound-force, kilogram-force and dynes. Convert N to lbf, kgf to N and more with exact definitions.","tags":["unit-converters"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"category":{"type":"string","enum":["force"],"default":"force"},"value":{"type":"number","example":10},"from":{"type":"string","enum":["N","kN","dyn","kgf","lbf"],"example":"N"},"to":{"type":"string","enum":["N","kN","dyn","kgf","lbf"],"example":"lbf"}},"required":["value","from","to"]},"example":{"value":10,"from":"N","to":"lbf"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/torque-converter":{"post":{"operationId":"torque_converter","summary":"Torque Converter","description":"Free torque converter for newton-metres, kilonewton-metres, pound-feet and pound-inches. Convert engine torque and torque wrench settings exactly.","tags":["unit-converters"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"category":{"type":"string","enum":["torque"],"default":"torque"},"value":{"type":"number","example":10},"from":{"type":"string","enum":["Nm","kNm","lb-ft","lb-in"],"example":"Nm"},"to":{"type":"string","enum":["Nm","kNm","lb-ft","lb-in"],"example":"lb-ft"}},"required":["value","from","to"]},"example":{"value":10,"from":"Nm","to":"lb-ft"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/fuel-economy-converter":{"post":{"operationId":"fuel_economy_converter","summary":"Fuel Economy Converter","description":"Free fuel economy converter for litres per 100 km, kilometres per litre, US MPG and UK (imperial) MPG. Compare car fuel consumption worldwide.","tags":["unit-converters"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"category":{"type":"string","enum":["fuel-economy"],"default":"fuel-economy"},"value":{"type":"number","example":8},"from":{"type":"string","enum":["km/L","L/100km","mpg-us","mpg-uk"],"example":"L/100km"},"to":{"type":"string","enum":["km/L","L/100km","mpg-us","mpg-uk"],"example":"mpg-us"}},"required":["value","from","to"]},"example":{"value":8,"from":"L/100km","to":"mpg-us"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/density-converter":{"post":{"operationId":"density_converter","summary":"Density Converter","description":"Free density converter for kilograms per cubic metre, grams per cubic centimetre, grams per millilitre, pounds per cubic foot and pounds per US gallon.","tags":["unit-converters"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"category":{"type":"string","enum":["density"],"default":"density"},"value":{"type":"number","example":10},"from":{"type":"string","enum":["kg/m3","g/cm3","g/ml","lb/ft3","lb/gal-us"],"example":"g/cm3"},"to":{"type":"string","enum":["kg/m3","g/cm3","g/ml","lb/ft3","lb/gal-us"],"example":"kg/m3"}},"required":["value","from","to"]},"example":{"value":10,"from":"g/cm3","to":"kg/m3"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/acceleration-converter":{"post":{"operationId":"acceleration_converter","summary":"Acceleration Converter","description":"Free acceleration converter for metres per second squared, standard gravity (g) and feet per second squared. Convert g-force to m/s\u00b2 and back.","tags":["unit-converters"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"category":{"type":"string","enum":["acceleration"],"default":"acceleration"},"value":{"type":"number","example":10},"from":{"type":"string","enum":["m/s2","g0","ft/s2"],"example":"g0"},"to":{"type":"string","enum":["m/s2","g0","ft/s2"],"example":"m/s2"}},"required":["value","from","to"]},"example":{"value":10,"from":"g0","to":"m/s2"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/illuminance-converter":{"post":{"operationId":"illuminance_converter","summary":"Illuminance Converter","description":"Free illuminance converter for lux, kilolux, foot-candles and phot. Convert lux to foot-candles for lighting design, photography and plant grow lights.","tags":["unit-converters"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"category":{"type":"string","enum":["illuminance"],"default":"illuminance"},"value":{"type":"number","example":10},"from":{"type":"string","enum":["lx","klx","fc","phot"],"example":"lx"},"to":{"type":"string","enum":["lx","klx","fc","phot"],"example":"fc"}},"required":["value","from","to"]},"example":{"value":10,"from":"lx","to":"fc"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/electrical-units-converter":{"post":{"operationId":"electrical_units_converter","summary":"Electrical Units Converter","description":"Free electrical units converter for volts, millivolts, kilovolts, amps, milliamps, ohms, kilohms, megohms, watts and kilowatts. Includes Ohm\u2019s law.","tags":["unit-converters"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"category":{"type":"string","enum":["voltage","current","resistance","power"],"default":"voltage"},"value":{"type":"number","example":10},"from":{"type":"string","enum":["W","kW","MW","hp","metric-hp","BTU/h","V","mV","kV","A","mA","kA","ohm","kohm","Mohm","mohm"],"example":"V"},"to":{"type":"string","enum":["W","kW","MW","hp","metric-hp","BTU/h","V","mV","kV","A","mA","kA","ohm","kohm","Mohm","mohm"],"example":"mV"}},"required":["value","from","to"]},"example":{"value":10,"from":"V","to":"mV"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/storage-calculator":{"post":{"operationId":"storage_calculator","summary":"Storage Calculator","description":"Calculate how much storage a collection of files uses and how much capacity remains. Supports decimal GB and binary GiB units.","tags":["unit-converters"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"capacity":{"type":"number","minimum":1.0e-9,"example":512},"capacity_unit":{"type":"string","enum":["B","KB","MB","GB","TB","KiB","MiB","GiB","TiB"],"default":"GB"},"file_size":{"type":"number","minimum":0,"example":2},"file_unit":{"type":"string","enum":["B","KB","MB","GB","TB","KiB","MiB","GiB","TiB"],"default":"GB"},"file_count":{"type":"integer","minimum":0,"example":100}},"required":["capacity","file_size","file_count"]},"example":{"capacity":512,"file_size":2,"file_count":100}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/download-time-calculator":{"post":{"operationId":"download_time_calculator","summary":"Download Time Calculator","description":"Estimate download time from file size and internet speed. Convert GB, GiB and Mbps to a clear time estimate in seconds, minutes and hours.","tags":["unit-converters"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"file_size":{"type":"number","minimum":1.0e-9,"example":100},"file_unit":{"type":"string","enum":["B","KB","MB","GB","TB","KiB","MiB","GiB","TiB"],"default":"GB"},"connection_speed":{"type":"number","minimum":1.0e-9,"example":100},"speed_unit":{"type":"string","enum":["bit/s","Kbit/s","Mbit/s","Gbit/s","B/s","KB/s","MB/s","GB/s","KiB/s","MiB/s","GiB/s"],"default":"Mbit/s"}},"required":["file_size","connection_speed"]},"example":{"file_size":100,"connection_speed":100}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/discount-calculator":{"post":{"operationId":"discount_calculator","summary":"Discount Calculator","description":"Calculate the savings and sale price after a percentage discount.","tags":["finance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"price":{"type":"number","minimum":0.01,"maximum":1000000000000,"default":100,"example":100},"discount_rate":{"type":"number","minimum":0,"maximum":100,"default":20,"example":20},"currency":{"type":"string","enum":["EUR","USD","GBP"],"default":"EUR"}}},"example":{"price":100,"discount_rate":20}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/investment-return-calculator":{"post":{"operationId":"investment_return_calculator","summary":"Investment Return Calculator","description":"Compare an initial investment with its ending value and calculate total and annualized return.","tags":["finance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"initial_investment":{"type":"number","minimum":0.01,"maximum":1000000000000,"default":10000,"example":10000},"final_value":{"type":"number","minimum":0,"maximum":1000000000000,"default":15000,"example":15000},"years":{"type":"number","minimum":0.1,"maximum":100,"default":5,"example":5},"currency":{"type":"string","enum":["EUR","USD","GBP"],"default":"EUR"}}},"example":{"initial_investment":10000,"final_value":15000,"years":5}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/roi-calculator":{"post":{"operationId":"roi_calculator","summary":"ROI Calculator","description":"Calculate net profit and return on investment from project cost and revenue.","tags":["finance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"investment_cost":{"type":"number","minimum":0.01,"maximum":1000000000000,"default":10000,"example":10000},"revenue":{"type":"number","minimum":0,"maximum":1000000000000,"default":14000,"example":14000},"currency":{"type":"string","enum":["EUR","USD","GBP"],"default":"EUR"}}},"example":{"investment_cost":10000,"revenue":14000}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/tip-calculator":{"post":{"operationId":"tip_calculator","summary":"Tip Calculator","description":"Work out a tip, the total bill and each person\u2019s share.","tags":["finance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"bill":{"type":"number","minimum":0,"maximum":1000000000000,"default":80,"example":80},"tip_rate":{"type":"number","minimum":0,"maximum":100,"default":18,"example":18},"people":{"type":"integer","minimum":1,"maximum":1000,"default":2,"example":2},"currency":{"type":"string","enum":["EUR","USD","GBP"],"default":"EUR"}}},"example":{"bill":80,"tip_rate":18,"people":2}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/split-bill-calculator":{"post":{"operationId":"split_bill_calculator","summary":"Split Bill Calculator","description":"Add tax and tip to a bill, then split the total evenly across a group.","tags":["finance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"bill":{"type":"number","minimum":0,"maximum":1000000000000,"default":120,"example":120},"tax_rate":{"type":"number","minimum":0,"maximum":100,"default":0,"example":0},"tip_rate":{"type":"number","minimum":0,"maximum":100,"default":18,"example":18},"people":{"type":"integer","minimum":1,"maximum":1000,"default":4,"example":4},"currency":{"type":"string","enum":["EUR","USD","GBP"],"default":"EUR"}}},"example":{"bill":120,"tax_rate":0,"tip_rate":18,"people":4}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/salary-calculator":{"post":{"operationId":"salary_calculator","summary":"Salary Calculator","description":"Convert gross annual salary into an estimated gross and take-home amount per pay period.","tags":["finance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"annual_salary":{"type":"number","minimum":0,"maximum":1000000000000,"default":50000,"example":50000},"deduction_rate":{"type":"number","minimum":0,"maximum":100,"default":25,"example":25},"pay_frequency":{"type":"string","enum":["weekly","biweekly","monthly"],"default":"monthly"},"currency":{"type":"string","enum":["EUR","USD","GBP"],"default":"EUR"}}},"example":{"annual_salary":50000,"deduction_rate":25}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/hourly-annual-salary-calculator":{"post":{"operationId":"hourly_annual_salary_calculator","summary":"Hourly to Annual Salary Calculator","description":"Convert an hourly wage to an annual estimate or an annual salary to an hourly equivalent.","tags":["finance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"mode":{"type":"string","enum":["hourly_to_annual","annual_to_hourly"],"default":"hourly_to_annual"},"hourly_rate":{"type":"number","minimum":0,"maximum":1000000,"default":25,"example":25},"annual_salary":{"type":"number","minimum":0,"maximum":1000000000000,"default":52000,"example":52000},"hours_per_week":{"type":"number","minimum":0,"maximum":168,"default":40,"example":40},"weeks_per_year":{"type":"number","minimum":0,"maximum":52,"default":52,"example":52},"currency":{"type":"string","enum":["EUR","USD","GBP"],"default":"EUR"}}},"example":{"hourly_rate":25,"annual_salary":52000,"hours_per_week":40,"weeks_per_year":52}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/overtime-calculator":{"post":{"operationId":"overtime_calculator","summary":"Overtime Calculator","description":"Estimate regular and overtime pay for a work period using your hourly rate and overtime multiplier.","tags":["finance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"hourly_rate":{"type":"number","minimum":0.01,"maximum":1000000,"default":25,"example":25},"regular_hours":{"type":"number","minimum":0,"maximum":168,"default":40,"example":40},"overtime_hours":{"type":"number","minimum":0,"maximum":168,"default":5,"example":5},"multiplier":{"type":"number","minimum":1,"maximum":5,"default":1.5,"example":1.5},"currency":{"type":"string","enum":["EUR","USD","GBP"],"default":"EUR"}}},"example":{"hourly_rate":25,"regular_hours":40,"overtime_hours":5,"multiplier":1.5}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/pay-raise-calculator":{"post":{"operationId":"pay_raise_calculator","summary":"Pay Raise Calculator","description":"Calculate your new annual salary and the value of a percentage raise.","tags":["finance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"current_salary":{"type":"number","minimum":0,"maximum":1000000000000,"default":50000,"example":50000},"raise_rate":{"type":"number","minimum":0,"maximum":500,"default":5,"example":5},"currency":{"type":"string","enum":["EUR","USD","GBP"],"default":"EUR"}}},"example":{"current_salary":50000,"raise_rate":5}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/rent-vs-buy-calculator":{"post":{"operationId":"rent_vs_buy_calculator","summary":"Rent vs Buy Calculator","description":"Compare estimated rent payments with net homeownership costs over a selected time period.","tags":["finance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"home_price":{"type":"number","minimum":1,"maximum":1000000000000,"default":350000,"example":350000},"down_payment_rate":{"type":"number","minimum":0,"maximum":100,"default":20,"example":20},"mortgage_rate":{"type":"number","minimum":0,"maximum":50,"default":4,"example":4},"mortgage_years":{"type":"integer","minimum":1,"maximum":50,"default":30,"example":30},"compare_years":{"type":"integer","minimum":1,"maximum":50,"default":10,"example":10},"monthly_rent":{"type":"number","minimum":0,"maximum":1000000000000,"default":1800,"example":1800},"rent_increase_rate":{"type":"number","minimum":-20,"maximum":100,"default":3,"example":3},"home_appreciation_rate":{"type":"number","minimum":-20,"maximum":100,"default":3,"example":3},"property_tax_rate":{"type":"number","minimum":0,"maximum":20,"default":1,"example":1},"maintenance_rate":{"type":"number","minimum":0,"maximum":20,"default":1,"example":1},"insurance_annual":{"type":"number","minimum":0,"maximum":1000000,"default":1200,"example":1200},"closing_cost_rate":{"type":"number","minimum":0,"maximum":50,"default":3,"example":3},"currency":{"type":"string","enum":["EUR","USD","GBP"],"default":"EUR"}}},"example":{"home_price":350000,"down_payment_rate":20,"mortgage_rate":4,"mortgage_years":30,"compare_years":10,"monthly_rent":1800,"rent_increase_rate":3,"home_appreciation_rate":3,"property_tax_rate":1,"maintenance_rate":1,"insurance_annual":1200,"closing_cost_rate":3}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/debt-payoff-calculator":{"post":{"operationId":"debt_payoff_calculator","summary":"Debt Payoff Calculator","description":"Estimate payoff time and interest from a debt balance, APR and fixed monthly payment.","tags":["finance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"balance":{"type":"number","minimum":0.01,"maximum":1000000000000,"default":10000,"example":10000},"apr":{"type":"number","minimum":0,"maximum":500,"default":18,"example":18},"monthly_payment":{"type":"number","minimum":1,"maximum":1000000000,"default":500,"example":500},"currency":{"type":"string","enum":["EUR","USD","GBP"],"default":"EUR"}}},"example":{"balance":10000,"apr":18,"monthly_payment":500}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/credit-card-interest-calculator":{"post":{"operationId":"credit_card_interest_calculator","summary":"Credit Card Interest Calculator","description":"Estimate credit card interest and remaining balance over a selected number of months.","tags":["finance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"balance":{"type":"number","minimum":0.01,"maximum":1000000000000,"default":3000,"example":3000},"apr":{"type":"number","minimum":0,"maximum":500,"default":24,"example":24},"monthly_payment":{"type":"number","minimum":0,"maximum":1000000000,"default":200,"example":200},"months":{"type":"integer","minimum":1,"maximum":120,"default":12,"example":12},"currency":{"type":"string","enum":["EUR","USD","GBP"],"default":"EUR"}}},"example":{"balance":3000,"apr":24,"monthly_payment":200,"months":12}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/emergency-fund-calculator":{"post":{"operationId":"emergency_fund_calculator","summary":"Emergency Fund Calculator","description":"Set a savings target from monthly essential expenses and estimate how long to fill the gap.","tags":["finance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"monthly_expenses":{"type":"number","minimum":0.01,"maximum":1000000000000,"default":3000,"example":3000},"months_target":{"type":"integer","minimum":1,"maximum":24,"default":6,"example":6},"current_savings":{"type":"number","minimum":0,"maximum":1000000000000,"default":1000,"example":1000},"monthly_contribution":{"type":"number","minimum":0,"maximum":1000000000,"default":300,"example":300},"currency":{"type":"string","enum":["EUR","USD","GBP"],"default":"EUR"}}},"example":{"monthly_expenses":3000,"months_target":6,"current_savings":1000,"monthly_contribution":300}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/retirement-calculator":{"post":{"operationId":"retirement_calculator","summary":"Retirement Calculator","description":"Project savings to a target retirement age and compare the result with an income-based target.","tags":["finance"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"current_age":{"type":"integer","minimum":18,"maximum":100,"default":35,"example":35},"retirement_age":{"type":"integer","minimum":18,"maximum":100,"default":67,"example":67},"current_savings":{"type":"number","minimum":0,"maximum":1000000000000,"default":25000,"example":25000},"monthly_contribution":{"type":"number","minimum":0,"maximum":1000000000,"default":500,"example":500},"annual_return":{"type":"number","minimum":-99,"maximum":100,"default":5,"example":5},"desired_monthly_income":{"type":"number","minimum":0,"maximum":1000000000000,"default":3000,"example":3000},"withdrawal_rate":{"type":"number","minimum":0.1,"maximum":15,"default":4,"example":4},"currency":{"type":"string","enum":["EUR","USD","GBP"],"default":"EUR"}}},"example":{"current_age":35,"retirement_age":67,"current_savings":25000,"monthly_contribution":500,"annual_return":5,"desired_monthly_income":3000,"withdrawal_rate":4}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/paint-calculator":{"post":{"operationId":"paint_calculator","summary":"Paint Calculator","description":"Estimate wall area and the paint needed for one or more coats, including an allowance for paint lost to spills and touch-ups.","tags":["home-diy"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"wall_length":{"type":"number","minimum":0.1,"maximum":10000,"default":4,"example":4},"wall_height":{"type":"number","minimum":0.1,"maximum":10000,"default":2.5,"example":2.5},"wall_count":{"type":"integer","minimum":1,"maximum":100,"default":4,"example":4},"openings_area":{"type":"number","minimum":0,"maximum":1000000,"default":4,"example":4},"coats":{"type":"integer","minimum":1,"maximum":10,"default":2,"example":2},"coverage":{"type":"number","minimum":0.1,"maximum":10000,"default":10,"example":10},"waste_percent":{"type":"number","minimum":0,"maximum":100,"default":10,"example":10},"unit":{"type":"string","enum":["metric","imperial"],"default":"metric"}}},"example":{"wall_length":4,"wall_height":2.5,"wall_count":4,"openings_area":4,"coats":2,"coverage":10,"waste_percent":10}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/flooring-calculator":{"post":{"operationId":"flooring_calculator","summary":"Flooring Calculator","description":"Estimate the floor area for one or more rooms, add a cutting-waste allowance and calculate how many flooring packs to buy.","tags":["home-diy"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"length":{"type":"number","minimum":0.1,"maximum":10000,"default":5,"example":5},"width":{"type":"number","minimum":0.1,"maximum":10000,"default":4,"example":4},"rooms":{"type":"integer","minimum":1,"maximum":1000,"default":1,"example":1},"package_coverage":{"type":"number","minimum":0.01,"maximum":10000,"default":2.2,"example":2.2},"waste_percent":{"type":"number","minimum":0,"maximum":100,"default":10,"example":10},"unit":{"type":"string","enum":["metric","imperial"],"default":"metric"}}},"example":{"length":5,"width":4,"rooms":1,"package_coverage":2.2,"waste_percent":10}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/tile-calculator":{"post":{"operationId":"tile_calculator","summary":"Tile Calculator","description":"Calculate the number of floor tiles and boxes needed from room size, tile dimensions, box quantity and a cutting-waste allowance.","tags":["home-diy"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"length":{"type":"number","minimum":0.1,"maximum":10000,"default":4,"example":4},"width":{"type":"number","minimum":0.1,"maximum":10000,"default":3,"example":3},"tile_width":{"type":"number","minimum":1,"maximum":10000,"default":30,"example":30},"tile_height":{"type":"number","minimum":1,"maximum":10000,"default":30,"example":30},"tiles_per_box":{"type":"integer","minimum":1,"maximum":10000,"default":10,"example":10},"waste_percent":{"type":"number","minimum":0,"maximum":100,"default":10,"example":10},"unit":{"type":"string","enum":["metric","imperial"],"default":"metric"}}},"example":{"length":4,"width":3,"tile_width":30,"tile_height":30,"tiles_per_box":10,"waste_percent":10}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/concrete-calculator":{"post":{"operationId":"concrete_calculator","summary":"Concrete Calculator","description":"Estimate concrete volume and the number of ready-mix bags for a rectangular slab, footing or post base.","tags":["home-diy"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"length":{"type":"number","minimum":0.01,"maximum":10000,"default":3,"example":3},"width":{"type":"number","minimum":0.01,"maximum":10000,"default":2,"example":2},"depth":{"type":"number","minimum":0.1,"maximum":10000,"default":10,"example":10},"bag_yield_liters":{"type":"number","minimum":0.1,"maximum":10000,"default":25,"example":25},"waste_percent":{"type":"number","minimum":0,"maximum":100,"default":10,"example":10},"unit":{"type":"string","enum":["metric","imperial"],"default":"metric"}}},"example":{"length":3,"width":2,"depth":10,"bag_yield_liters":25,"waste_percent":10}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/gravel-calculator":{"post":{"operationId":"gravel_calculator","summary":"Gravel Calculator","description":"Estimate the gravel volume for a rectangular area from its length, width and planned depth, with an optional extra allowance.","tags":["home-diy"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"length":{"type":"number","minimum":0.1,"maximum":10000,"default":5,"example":5},"width":{"type":"number","minimum":0.1,"maximum":10000,"default":3,"example":3},"depth":{"type":"number","minimum":0.1,"maximum":10000,"default":5,"example":5},"waste_percent":{"type":"number","minimum":0,"maximum":100,"default":10,"example":10},"unit":{"type":"string","enum":["metric","imperial"],"default":"metric"}}},"example":{"length":5,"width":3,"depth":5,"waste_percent":10}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/mulch-calculator":{"post":{"operationId":"mulch_calculator","summary":"Mulch Calculator","description":"Work out the volume of mulch needed to cover a garden bed at your chosen depth, including an optional extra allowance.","tags":["home-diy"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"length":{"type":"number","minimum":0.1,"maximum":10000,"default":5,"example":5},"width":{"type":"number","minimum":0.1,"maximum":10000,"default":3,"example":3},"depth":{"type":"number","minimum":0.1,"maximum":10000,"default":5,"example":5},"waste_percent":{"type":"number","minimum":0,"maximum":100,"default":10,"example":10},"unit":{"type":"string","enum":["metric","imperial"],"default":"metric"}}},"example":{"length":5,"width":3,"depth":5,"waste_percent":10}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/soil-calculator":{"post":{"operationId":"soil_calculator","summary":"Soil Calculator","description":"Estimate the amount of topsoil or garden soil needed to fill a rectangular bed or raised planter.","tags":["home-diy"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"length":{"type":"number","minimum":0.1,"maximum":10000,"default":5,"example":5},"width":{"type":"number","minimum":0.1,"maximum":10000,"default":3,"example":3},"depth":{"type":"number","minimum":0.1,"maximum":10000,"default":5,"example":5},"waste_percent":{"type":"number","minimum":0,"maximum":100,"default":10,"example":10},"unit":{"type":"string","enum":["metric","imperial"],"default":"metric"}}},"example":{"length":5,"width":3,"depth":5,"waste_percent":10}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/wallpaper-calculator":{"post":{"operationId":"wallpaper_calculator","summary":"Wallpaper Calculator","description":"Estimate wallpaper rolls from wall dimensions and roll size, with extra material for matching a repeating pattern.","tags":["home-diy"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"wall_width":{"type":"number","minimum":0.1,"maximum":10000,"default":4,"example":4},"wall_height":{"type":"number","minimum":0.1,"maximum":10000,"default":2.5,"example":2.5},"wall_count":{"type":"integer","minimum":1,"maximum":100,"default":4,"example":4},"roll_width":{"type":"number","minimum":0.01,"maximum":10000,"default":0.53,"example":0.53},"roll_length":{"type":"number","minimum":0.01,"maximum":10000,"default":10,"example":10},"pattern_waste_percent":{"type":"number","minimum":0,"maximum":100,"default":15,"example":15},"unit":{"type":"string","enum":["metric","imperial"],"default":"metric"}}},"example":{"wall_width":4,"wall_height":2.5,"wall_count":4,"roll_width":0.53,"roll_length":10,"pattern_waste_percent":15}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/roofing-calculator":{"post":{"operationId":"roofing_calculator","summary":"Roofing Calculator","description":"Estimate roof covering area from roof length, sloped length, roof sections and a waste allowance.","tags":["home-diy"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"roof_length":{"type":"number","minimum":0.1,"maximum":10000,"default":10,"example":10},"slope_length":{"type":"number","minimum":0.1,"maximum":10000,"default":6,"example":6},"sections":{"type":"integer","minimum":1,"maximum":100,"default":2,"example":2},"waste_percent":{"type":"number","minimum":0,"maximum":100,"default":10,"example":10},"unit":{"type":"string","enum":["metric","imperial"],"default":"metric"}}},"example":{"roof_length":10,"slope_length":6,"sections":2,"waste_percent":10}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/btu-heating-calculator":{"post":{"operationId":"btu_heating_calculator","summary":"BTU Heating Calculator","description":"Estimate the heating output in watts and BTU per hour from room floor area and an adjustable heat-load assumption.","tags":["home-diy"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"length":{"type":"number","minimum":0.1,"maximum":10000,"default":5,"example":5},"width":{"type":"number","minimum":0.1,"maximum":10000,"default":4,"example":4},"watts_per_m2":{"type":"number","minimum":10,"maximum":500,"default":100,"example":100},"unit":{"type":"string","enum":["metric","imperial"],"default":"metric"}}},"example":{"length":5,"width":4,"watts_per_m2":100}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/ac-size-calculator":{"post":{"operationId":"ac_size_calculator","summary":"Air Conditioner Size Calculator","description":"Estimate a room air conditioner size in BTU per hour and cooling tons from room area, sun exposure and occupancy.","tags":["home-diy"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"length":{"type":"number","minimum":0.1,"maximum":10000,"default":5,"example":5},"width":{"type":"number","minimum":0.1,"maximum":10000,"default":4,"example":4},"people":{"type":"integer","minimum":1,"maximum":1000,"default":2,"example":2},"sunlight":{"type":"string","enum":["shaded","average","sunny"],"default":"average"},"unit":{"type":"string","enum":["metric","imperial"],"default":"metric"}}},"example":{"length":5,"width":4,"people":2}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/electricity-cost-calculator":{"post":{"operationId":"electricity_cost_calculator","summary":"Electricity Cost Calculator","description":"Estimate monthly energy use and electricity cost for an appliance from its wattage, daily use and your price per kilowatt-hour.","tags":["home-diy"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"power_watts":{"type":"number","minimum":0.1,"maximum":1000000,"default":1000,"example":1000},"hours_per_day":{"type":"number","minimum":0,"maximum":24,"default":5,"example":5},"days_per_month":{"type":"integer","minimum":1,"maximum":31,"default":30,"example":30},"rate_per_kwh":{"type":"number","minimum":0,"maximum":1000000,"default":0.3,"example":0.3},"currency":{"type":"string","enum":["EUR","USD","GBP"],"default":"EUR"}}},"example":{"power_watts":1000,"hours_per_day":5,"days_per_month":30,"rate_per_kwh":0.3}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/solar-panel-calculator":{"post":{"operationId":"solar_panel_calculator","summary":"Solar Panel Calculator","description":"Estimate a solar array size and panel count from monthly electricity use, peak sun hours, system efficiency and panel wattage.","tags":["home-diy"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"monthly_usage_kwh":{"type":"number","minimum":0.1,"maximum":10000000,"default":300,"example":300},"sun_hours":{"type":"number","minimum":0.1,"maximum":24,"default":4,"example":4},"system_efficiency":{"type":"number","minimum":1,"maximum":100,"default":80,"example":80},"panel_watts":{"type":"number","minimum":1,"maximum":10000,"default":400,"example":400}}},"example":{"monthly_usage_kwh":300,"sun_hours":4,"system_efficiency":80,"panel_watts":400}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/water-tank-calculator":{"post":{"operationId":"water_tank_calculator","summary":"Water Tank Calculator","description":"Calculate the capacity of a rectangular or cylindrical water tank from its internal dimensions.","tags":["home-diy"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"shape":{"type":"string","enum":["rectangular","cylindrical"],"default":"rectangular"},"length":{"type":"number","minimum":0.01,"maximum":10000,"default":2,"example":2},"width":{"type":"number","minimum":0.01,"maximum":10000,"default":1,"example":1},"diameter":{"type":"number","minimum":0.01,"maximum":10000,"default":1,"example":1},"height":{"type":"number","minimum":0.01,"maximum":10000,"default":1.5,"example":1.5},"unit":{"type":"string","enum":["metric","imperial"],"default":"metric"}}},"example":{"length":2,"width":1,"diameter":1,"height":1.5}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/room-area-calculator":{"post":{"operationId":"room_area_calculator","summary":"Room Area Calculator","description":"Calculate the floor area and combined perimeter for one or more rectangular rooms in metric or imperial units.","tags":["home-diy"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"length":{"type":"number","minimum":0.01,"maximum":10000,"default":5,"example":5},"width":{"type":"number","minimum":0.01,"maximum":10000,"default":4,"example":4},"rooms":{"type":"integer","minimum":1,"maximum":1000,"default":1,"example":1},"unit":{"type":"string","enum":["metric","imperial"],"default":"metric"}}},"example":{"length":5,"width":4,"rooms":1}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/tools/sudoku":{"post":{"operationId":"sudoku","summary":"Sudoku","description":"Play Sudoku free in your browser: four difficulty levels, notes, hints, undo and a timer. Every puzzle has exactly one solution. Share a puzzle with a link. No sign-up, no ads.","tags":["games"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"mode":{"type":"string","enum":["generate","solve"],"description":"generate a new puzzle, or solve the given one.","default":"generate"},"difficulty":{"type":"string","enum":["easy","medium","hard","expert"],"description":"Difficulty of a generated puzzle (given cells: easy 40, medium 33, hard 28, expert about 24).","default":"medium"},"seed":{"type":"integer","minimum":1,"maximum":4294967295,"description":"Optional: the same seed and difficulty always give the same puzzle (e.g. 20261015). Random when left out."},"puzzle":{"type":"string","maxLength":400,"description":"For solve: 81 cells row by row, digits with 0 or \".\" for empty cells; spaces and line breaks are ignored.","example":"530070000600195000098000060800060003400803001700020006060000280000419005000080079"}}},"example":{"puzzle":"530070000600195000098000060800060003400803001700020006060000280000419005000080079"}}}},"responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"},"meta":{"type":"object"}}}}}},"422":{"$ref":"#/components/responses/ValidationError"},"429":{"$ref":"#/components/responses/RateLimited"}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"Error":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"fields":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}}}}}},"responses":{"ValidationError":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"RateLimited":{"description":"Too many requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}