# FindUtils Tool API
> Free REST API with 323 utility tools for developers and AI agents. No authentication required. Rate limit: 60 requests/minute per IP.
Base URL: https://api.findutils.com/api
OpenAPI Spec: https://api.findutils.com/api/openapi.json
MCP Server: https://mcp.findutils.com/
Documentation: https://findutils.com/api/docs/
## Endpoints
- GET /api/health -- Health check, returns tool count
- GET /api/tools -- List all tools with input schemas
- GET /api/tools/:id -- Get single tool details and schema
- POST /api/tools/:id/execute -- Execute a tool (JSON body)
- GET /api/openapi.json -- Full OpenAPI 3.1 specification
## Authentication
No authentication required. Free to use.
## Rate Limits
- 60 requests per minute per IP
- 500 requests per day per IP
- 50,000 requests per day global
## Response Format
Success: {"success": true, "result": {...}, "meta": {"tool": "...", "executionMs": 0}}
Error: {"success": false, "error": {"code": "VALIDATION_ERROR", "message": "..."}}
## MCP Server
For AI assistants (Claude, ChatGPT), use the MCP server instead:
URL: https://mcp.findutils.com/
Protocol: JSON-RPC 2.0 over HTTP (Streamable HTTP transport)
Methods: initialize, tools/list, tools/call
Claude Desktop config:
{"mcpServers": {"findutils": {"url": "https://mcp.findutils.com/"}}}
## Calculators Tools
### Body Fat Calculator
POST /api/tools/body-fat-calculator/execute
Estimate body fat percentage, fat mass, lean mass, BMI, and a body-composition category. Uses the U.S. Navy circumference method (waist, neck, hip) or a BMI-based estimate (Deurenberg formula). Metric (kg/cm) or imperial (lbs/in) inputs.
Parameters:
- gender (string, required): Biological sex used by the formulas.
- weight (number, required): Body weight in kg (metric) or lbs (imperial).
- height (number, required): Height in cm (metric) or inches (imperial).
- unit_system (string): Unit system for all measurements.
- method (string): "navy" = U.S. Navy circumference method (needs waist, neck, and hip for female). "bmi" = BMI-based estimate.
- waist (number): Waist circumference at the navel (cm or in). Required for the navy method.
- neck (number): Neck circumference below the larynx (cm or in). Required for the navy method.
- hip (number): Hip circumference at the widest point (cm or in). Required for the navy method when gender is female.
- age (integer): Age in years. Only used by the bmi method. Default 30.
### Carbon Footprint Calculator
POST /api/tools/carbon-footprint-calculator/execute
Estimate an annual personal carbon footprint in tonnes of CO2 from home energy, transportation, and lifestyle, with a per-category breakdown and a comparison to the US average (16 t), the world average (4.7 t), and the Paris target (2 t). Every input is optional and defaults to a typical US household value.
Parameters:
- electricity_usage (number): Monthly electricity use. kWh when electricity_unit is "kwh", or dollars when "bill" (1 dollar = 8 kWh). Default 900.
- electricity_unit (string): Unit of electricity_usage.
- gas_usage (number): Monthly natural gas use. Therms when gas_unit is "therms", or dollars when "bill" (1 dollar = 0.8 therms). Default 50.
- gas_unit (string): Unit of gas_usage.
- renewable_energy (number): Share of electricity from renewable sources, 0-100 percent. Default 0.
- car_miles (number): Miles driven per year. Default 12000.
- car_efficiency (number): Fuel economy in miles per gallon (ignored for electric). Default 25.
- car_type (string): Vehicle fuel type.
- public_transport_miles (number): Public transport miles per year. Default 500.
- flights_short (integer): Short flights (< 3 h) per year. Default 2.
- flights_medium (integer): Medium flights (3-6 h) per year. Default 1.
- flights_long (integer): Long flights (> 6 h) per year. Default 0.
- diet_type (string): Diet profile.
- food_waste (string): Food waste level.
- shopping_habits (string): Shopping habits.
- recycling (string): How much household waste is recycled.
### Daily Habit Calculator
POST /api/tools/daily-habit-calculator/execute
Calculate how a daily habit adds up over a week, a month (30 days), a year (365 days), or a custom date range: total units, total cost, and per-week/month/year amounts. Works for coffee cups, water glasses, steps, pages, cigarettes, or any custom unit.
Parameters:
- daily_amount (number, required): Amount per day (e.g. 3 cups).
- category (string): Habit category. Sets the default unit.
- unit (string): Unit label override (e.g. "cups"). Defaults to the category unit.
- cost_per_unit (number): Cost of one unit. Omit or 0 when there is no cost.
- period (string): week = 7 days, month = 30 days, year = 365 days, custom = start_date..end_date inclusive.
- start_date (string): Custom period start (YYYY-MM-DD). Required when period is "custom".
- end_date (string): Custom period end (YYYY-MM-DD), inclusive. Required when period is "custom".
### GCD / LCM
POST /api/tools/gcd-calculate/execute
Greatest Common Divisor (GCD) and Least Common Multiple (LCM) of two non-negative integers. Uses the Euclidean algorithm.
Parameters:
- a (integer, required): First integer.
- b (integer, required): Second integer.
### Images To Pdf
POST /api/tools/images-to-pdf/execute
Combine JPG and PNG images into a single PDF, one image per page, in the order given. Choose a fixed A4 or Letter sheet with the image fitted inside it and centred, or "fit" for a page exactly the size of each image. Images are embedded as they are and never re-encoded, so nothing is lost. Input images and the output PDF are base64.
Parameters:
- images (array, required): Base64-encoded JPG or PNG images, in page order.
- items (string): One base64-encoded JPG or PNG.
- page_size (string): Sheet size: "fit" makes each page the size of its image. Default: fit.
- margin (number): Margin in points around a fixed sheet. Ignored when page_size is "fit". Default: 0.
### Llm Requirements Calculator
POST /api/tools/llm-requirements-calculator/execute
Estimate the VRAM, system RAM, and disk space needed to run an open-weight LLM locally, and which common GPUs and Macs it fits on. Covers Llama, Mistral, Qwen, DeepSeek, Gemma, Phi, Code Llama, Command R, Yi, SmolLM, StableLM, Grok, Falcon, and MiniCPM across FP32 through Q2_K quantization.
Parameters:
- model (string, required)
- quantization (string): Quantization id. Default: "q4_k_m".
- context_length (integer)
- batch_size (integer): Concurrent sequences (1-64). Default: 1.
### Macro Calculator
POST /api/tools/macro-calculator/execute
Calculate daily calorie needs and a macronutrient split (protein, carbs, fat in grams and kcal) for weight loss, maintenance, or muscle gain. Uses Mifflin-St Jeor BMR, an activity multiplier, a +/-500 kcal goal adjustment, and goal-specific ratios.
Parameters:
- gender (string, required): Biological sex used by the BMR equation.
- age (integer, required): Age in years (1-120).
- weight (number, required): Body weight in kg (metric) or lbs (imperial).
- height (number, required): Height in cm (metric) or inches (imperial).
- unit_system (string): Unit system for weight and height.
- activity_level (string): Activity level: sedentary 1.2, light 1.375, moderate 1.55, active 1.725, very_active 1.9.
- goal (string): lose = -500 kcal with 35/35/30 split, maintain = 30/40/30, gain = +500 kcal with 25/50/25 (protein/carbs/fat).
### One Rep Max Calculator
POST /api/tools/one-rep-max-calculator/execute
Estimate a one-rep max (1RM) from a weight lifted for a number of reps, using Brzycki, Epley, Lander, Lombardi, Mayhew, O\'Conner, and Wathen formulas. Returns the chosen formula result, every formula result, and a training-weight table (100% to 60%) with rep ranges and zones.
Parameters:
- weight (number, required): Weight lifted, in the chosen unit.
- reps (integer, required): Reps performed with that weight (1-30).
- unit (string): Weight unit, echoed back in the result.
- formula (string): Formula used for the headline one_rep_max.
### Percentage (mode-based)
POST /api/tools/percentage-calculate/execute
Percentage math. Modes: percent_of (a% of b), what_percent (a is what % of b), percent_change (from a to b).
Parameters:
- mode (string, required): Calculation mode.
- a (number, required): First value.
- b (number, required): Second value.
### Prime Check
POST /api/tools/prime-check/execute
Check whether an integer is prime. For composite numbers, returns the prime factorisation. Supports inputs up to 2^53-1 but is only fast for n ≲ 10^12.
Parameters:
- n (integer, required): Integer to test. Must be ≥ 2.
### Scientific Calculator
POST /api/tools/scientific-calculator/execute
Evaluate a scientific math expression and return the numeric result (12 significant digits). Supports + - * / ^ (or **), parentheses, n!, π (or pi), e, and the functions sin, cos, tan, asin, acos, atan, log (base 10), ln, sqrt (or √), abs, exp. Trigonometry in radians or degrees. Uses a safe parser — no code execution.
Parameters:
- expression (string, required): Expression to evaluate, e.g. "sin(30) + 2^3 * (4 - 1)" or "5! / sqrt(16)".
- angle_unit (string): Angle unit for sin/cos/tan inputs and asin/acos/atan outputs.
### Sleep Calculator
POST /api/tools/sleep-calculator/execute
Calculate the best bedtimes for a wake-up time, or the best wake-up times for a bedtime, based on 90-minute sleep cycles plus 15 minutes to fall asleep. Returns 4 options (3-7 cycles) with duration and quality (optimal/good/fair).
Parameters:
- mode (string): "wake": you give the wake-up time and get bedtimes (6 down to 3 cycles). "sleep": you give the bedtime and get wake-up times (4 to 7 cycles). "now": like "sleep" with the current time (UTC) when time is omitted.
- time (string): Time of day as HH:MM (24-hour). Required for "wake" and "sleep". Optional for "now".
### Stock Average Calculator
POST /api/tools/stock-average-calculator/execute
Return the average cost per share (dollar cost averaging) across several buys, the total shares, total invested, break-even price, and, when a current price is given, the position value and unrealized profit or loss in money and percent.
Parameters:
- transactions (array, required): Buys as { shares, price }. 1-500 items; both values must be > 0.
- current_price (number): Current market price per share. Optional.
### Tdee Calculator
POST /api/tools/tdee-calculator/execute
Calculate Total Daily Energy Expenditure (TDEE) and Basal Metabolic Rate (BMR) with the Mifflin-St Jeor equation, plus calorie targets for weight loss or gain (mild/moderate/extreme) and a suggested 30/35/35 protein/carbs/fat split. Metric (kg/cm) or imperial (lbs, feet+inches).
Parameters:
- gender (string, required): Biological sex used by the BMR equation.
- age (integer, required): Age in years (1-120).
- weight (number, required): Body weight in kg (metric) or lbs (imperial).
- height (number): Height in cm (metric). For imperial, total inches (or use height_feet + height_inches).
- height_feet (number): Imperial only: feet part of the height.
- height_inches (number): Imperial only: inches part of the height.
- unit_system (string): Unit system for weight and height.
- activity_level (string): Activity level multiplier: sedentary 1.2, light 1.375, moderate 1.55, active 1.725, very_active 1.9, extra_active 2.1.
- goal (string): Goal used for the calorie targets.
### Timesheet Calculator
POST /api/tools/timesheet-calculator/execute
Return total, regular, and overtime hours plus regular, overtime, and total pay for a list of work entries (start time, end time, break). Times are HH:MM in 24-hour format; an end time before the start time is an overnight shift. Overtime is paid on hours above regular_hours_per_week at overtime_multiplier.
Parameters:
- entries (array, required): Work entries: { day?, start_time: "09:00", end_time: "17:00", break_minutes?: 60 }. 1-100 items.
- hourly_rate (number): Pay per hour. Default: 0 (hours only).
- include_overtime (boolean): Split hours above the weekly limit into overtime. Default: true.
- regular_hours_per_week (number): Regular hours before overtime starts. Default: 40.
- overtime_multiplier (number): Overtime pay multiplier. Default: 1.5.
### Water Intake Calculator
POST /api/tools/water-intake-calculator/execute
Calculate a recommended daily water intake in liters, ounces, cups, and 250 ml glasses, plus a per-waking-hour amount. Starts at 33 ml per kg of body weight and adjusts for age, activity level, climate, caffeinated drinks, pregnancy, and breastfeeding.
Parameters:
- weight (number, required): Body weight in kg (metric) or lbs (imperial).
- age (integer, required): Age in years (1-120). Under 18 adds 10%, over 55 removes 5%.
- unit_system (string): Unit system for weight.
- activity_level (string): Activity multiplier: sedentary 1.0, light 1.1, moderate 1.2, active 1.35, very_active 1.5.
- climate (string): Climate multiplier: cold 0.95, moderate 1.0, hot 1.15, very_hot 1.3.
- caffeine_drinks (integer): Caffeinated drinks per day (0-20). Each adds 350 ml.
- pregnant (boolean): Adds 300 ml when true.
- breastfeeding (boolean): Adds 700 ml when true.
## Conversion Tools
### Aspect Ratio Calculator
POST /api/tools/aspect-ratio/execute
Calculate aspect ratio from dimensions, or resize dimensions while maintaining a given aspect ratio.
Parameters:
- mode (string, required)
- width (number, required)
- height (number, required)
- new_width (number)
- new_height (number)
### BMI Calculator
POST /api/tools/bmi-calculate/execute
Calculate Body Mass Index (BMI) from height and weight. Supports metric (kg/cm) and imperial (lbs/in) units.
Parameters:
- weight (number, required)
- height (number, required)
- unit (string)
### WCAG Color Contrast
POST /api/tools/color-contrast/execute
Compute the WCAG 2.1 contrast ratio between two colours (accepts #rgb, #rrggbb, and rgb()/rgba() formats) and report whether it passes AA/AAA for normal and large text.
Parameters:
- foreground (string, required): Foreground / text colour.
- background (string, required): Background colour.
### Color Converter
POST /api/tools/color-convert/execute
Convert colors between HEX, RGB, and HSL formats.
Parameters:
- color (string, required)
- from (string, required)
### Markdown to HTML
POST /api/tools/markdown-to-html/execute
Convert Markdown text to HTML. Supports headings, bold, italic, links, code blocks, lists, blockquotes, and horizontal rules.
Parameters:
- markdown (string, required)
### Number Base Converter
POST /api/tools/number-base/execute
Convert numbers between binary, octal, decimal, and hexadecimal.
Parameters:
- value (string, required)
- from (string, required)
### Number Base (from/to)
POST /api/tools/number-base-convert/execute
Convert an integer between bases 2, 8, 10, and 16.
Parameters:
- value (string, required): Number string (no prefix).
- from (integer, required): Source base.
- to (integer, required): Target base.
### PDF Text Extractor
POST /api/tools/pdf-extract/execute
Extract text and structured JSON (with bounding boxes) from a PDF. Pass a base64-encoded string OR a public https:// URL. Runs entirely on Cloudflare Workers with WebAssembly — your bytes are never logged.
Parameters:
- pdf (string, required)
- output (string)
- maxPages (integer)
### Percentage Calculator
POST /api/tools/percentage/execute
Calculate percentages: X% of Y, percent change, increase, or decrease.
Parameters:
- mode (string, required)
- x (number, required)
- y (number, required)
### Roman Numeral Converter
POST /api/tools/roman-numeral/execute
Convert between Roman numerals and Arabic (decimal) numbers. Supports values 1-3999.
Parameters:
- value (string, required)
### Temperature Convert
POST /api/tools/temperature-convert/execute
Convert temperature between Celsius (C), Fahrenheit (F), Kelvin (K), and Rankine (R). Output is rounded to 4 decimal places.
Parameters:
- value (number, required): Temperature value to convert.
- from (string, required): Source unit.
- to (string, required): Target unit.
### Tip Calculator
POST /api/tools/tip-calculate/execute
Calculate tip amount, total bill, and per-person split. Supports custom tip percentages.
Parameters:
- bill_amount (number, required)
- tip_percent (number)
- people (integer)
- round_up (boolean)
### Unit Converter
POST /api/tools/unit-convert/execute
Convert between units of length, weight, temperature, data size, area, and speed.
Parameters:
- value (number, required)
- from (string, required)
- to (string, required)
- category (string)
### XML to JSON
POST /api/tools/xml-to-json/execute
Convert XML to JSON. Handles nested elements, attributes (@attributes), and text content (#text). Simple elements unwrap to string values.
Parameters:
- xml (string, required)
- pretty (boolean)
### YAML to JSON
POST /api/tools/yaml-to-json/execute
Convert YAML to JSON. Supports key-value pairs, nested objects, lists, and basic scalars (strings, numbers, booleans, null).
Parameters:
- yaml (string, required)
- pretty (boolean)
## Crypto Tools
### Hash Generator
POST /api/tools/hash/execute
Generate MD5, SHA-1, SHA-256, or SHA-512 hash of a string.
Parameters:
- text (string, required)
- algorithm (string)
### Hash Generator (algorithm-only)
POST /api/tools/hash-generate/execute
Hash text with MD5, SHA-1, SHA-256, or SHA-512. Returns hex digest.
Parameters:
- text (string, required): The text to hash.
- algorithm (string): Hash algorithm. Defaults to SHA-256.
### HMAC Generator
POST /api/tools/hmac/execute
Generate an HMAC signature using SHA-1, SHA-256, or SHA-512.
Parameters:
- text (string, required)
- key (string, required)
- algorithm (string)
### HMAC Generator (algorithm-only)
POST /api/tools/hmac-generate/execute
Compute an HMAC of a message with a secret key. Returns hex digest.
Parameters:
- message (string, required): The message to authenticate.
- secret (string, required): The secret key.
- algorithm (string): HMAC algorithm. Defaults to SHA-256.
### Password Generator
POST /api/tools/password-generate/execute
Generate cryptographically secure random passwords with configurable length and character sets.
Parameters:
- length (integer)
- include_uppercase (boolean)
- include_lowercase (boolean)
- include_digits (boolean)
- include_symbols (boolean)
- exclude_ambiguous (boolean)
- count (integer)
### Password Strength
POST /api/tools/password-strength/execute
Estimate password strength using character-class entropy. Returns a 0–4 score, a descriptive label, and actionable feedback. NOT a substitute for a full dictionary check (zxcvbn) — this is fast and offline-safe.
Parameters:
- password (string, required): The password to evaluate.
### Random String Generator
POST /api/tools/random-string/execute
Generate cryptographically secure random strings with configurable length and character sets.
Parameters:
- length (integer)
- charset (string)
- custom_chars (string)
- count (integer)
## Data Tools
### Api Docs Generator
POST /api/tools/api-docs-generator/execute
Successful response
Parameters:
- title (string): API title.
- version (string): API version string.
- base_url (string): Base URL of the API.
- description (string): Short description of the API.
- endpoints (array, required): Endpoints: objects with method (GET|POST|PUT|PATCH|DELETE), path, and optional summary, description, request_body (JSON text), response_example (JSON text), response_code (default "200").
- items (object): One endpoint definition.
- format (string): Output format.
### Bookmarks Html To Csv
POST /api/tools/bookmarks-html-to-csv/execute
Convert a browser bookmarks.html export from Chrome, Firefox, Edge, Safari or any other browser that writes the Netscape bookmark format into CSV, one row per link. Each row carries the folder path flattened with " / ", the title, the URL, and the ADD_DATE and LAST_MODIFIED stamps as ISO-8601 when the export has them. Favicon data stored in the ICON attribute is never written to the CSV and no favicon is ever fetched. Nothing is checked against the network, so a dead link is reported exactly as the export stored it. The browser page accepts a 10 MB file; the API and MCP surfaces cap a request at 1 MB, so a very large export belongs on the page.
Parameters:
- input (string, required): The bookmarks.html file contents.
- delimiter (string): Output field separator. Default: a comma.
- include_empty_folders (boolean): Write a row for a folder that holds no links, with an empty title and URL. Default false.
- sort_by_folder (boolean): Order rows by folder path then title. Default false, which keeps the order the export lists them in.
### Csv To Bookmarks Html
POST /api/tools/csv-to-bookmarks-html/execute
Convert a CSV of links into a Netscape bookmarks.html file that Chrome, Firefox, Edge and Safari import. Columns are matched by name: url or href or link, title or name, folder or folder_path or path, and an optional add_date, so a sheet exported from a bookmark manager usually needs no configuration; column_map overrides any of them. A folder path builds nested folders, split on " / " when the value uses it and on "/" otherwise, so a folder genuinely called "AI/ML" survives. Every row needs an address; a row without one is skipped and listed by row number. A bare domain gains https://. Nothing is fetched and no link is checked.
Parameters:
- input (string, required): CSV text with a header row.
- delimiter (string): Field separator. Default: detected from the header (comma, semicolon, tab or pipe).
- root_folder (string)
- column_map (object): Header name per field when the automatic match is wrong: url, title, folder, add_date.
### CSV to JSON Converter
POST /api/tools/csv-to-json/execute
Convert CSV text to a JSON array of objects. First row is used as headers.
Parameters:
- csv (string, required)
- delimiter (string)
- coerce (boolean)
### Csv To Ndjson
POST /api/tools/csv-to-ndjson/execute
Convert CSV into newline-delimited JSON (NDJSON, JSON Lines, .jsonl): one JSON object per line, keyed by the header row. Quoted fields, embedded line breaks and doubled quotes are read per RFC 4180; the delimiter is detected from the header when not given. Every value stays a string unless coerce is true, which turns true, false, null, an empty cell and plain numbers into JSON values while leaving leading zeros and integers of 2^53 or more as text. An empty header name becomes column_N and a duplicate gets a numeric suffix. A row wider than the header keeps the first N values and is reported by row number. Dotted header names are not rebuilt into nested objects.
Parameters:
- csv (string, required): CSV text with a header row.
- delimiter (string): Input field separator: ",", ";", "\\t" or "|". Omit to detect it from the header line.
- coerce (boolean): Turn true, false, null, empty cells and plain numbers into JSON values. Default false: every value is a string.
- header (boolean): The first row holds the keys. Default true. When false, keys are column_1, column_2, ...
### Csv To Sql
POST /api/tools/csv-to-sql/execute
Convert CSV text into SQL INSERT statements, optionally preceded by a CREATE TABLE. The first row is the header and becomes the column list. Column types are inferred from the first 50 data rows as integer, numeric, boolean, or text, and identifiers are quoted for the chosen dialect (Postgres, MySQL, or SQLite). Empty cells become NULL by default. Nothing is executed against a database.
Parameters:
- csv (string, required): CSV text with a header row.
- table (string): Target table name. Default: "my_table".
- dialect (string): Identifier quoting and type names. Default: postgres.
- create_table (boolean): Emit a CREATE TABLE before the inserts. Default: true.
- null_empty (boolean): Write an empty cell as NULL rather than an empty string. Default: true.
- batch (boolean): Emit one multi-row INSERT instead of one statement per row. Default: false.
### Csv To Tsv
POST /api/tools/csv-to-tsv/execute
Convert comma-separated values to tab-separated values, the format spreadsheet paste, psql and mysql --batch expect. Quoted fields, embedded line breaks and doubled quotes are read per RFC 4180; the input delimiter is detected from the first line when not given. A cell that holds a tab, a quote or a line break is quoted the way Excel\'s tab-delimited export quotes it; every other cell is written bare. Values stay text. A leading byte order mark is dropped and blank lines are skipped.
Parameters:
- csv (string, required): CSV input.
- delimiter (string): Input field separator: ",", ";" or "|". Omit to detect it from the first line.
### Graphql To Typescript
POST /api/tools/graphql-to-typescript/execute
Convert a GraphQL SDL schema into TypeScript type definitions and return the generated code with counts of emitted types, enums, and inputs. Object and interface types become interfaces (or type aliases), enums become TypeScript enums, input types are included by default. Non-null fields (!) are required; nullable fields become optional and accept null. Built-in scalars map to string, number, and boolean.
Parameters:
- schema (string, required): GraphQL schema in SDL (type, input, enum definitions).
- use_interfaces (boolean): Emit "interface X {}" instead of "type X = {}". Default: true.
- add_exports (boolean): Prefix every declaration with "export". Default: true.
- use_readonly (boolean): Mark every field readonly. Default: false.
- generate_input_types (boolean): Also emit GraphQL input types. Default: true.
### Html Table To Json
POST /api/tools/html-table-to-json/execute
Convert an HTML
into JSON — an array of objects keyed by the header row, or an array of row arrays. Cell text is extracted with tags stripped and entities decoded. Empty header cells become column1, column2, ….
Parameters:
- html (string, required): HTML that contains at least one element. A full page is fine; the first table is used unless table_index is set.
- format (string): "objects" (default) maps each row to an object; "arrays" returns rows as string arrays.
- first_row_headers (boolean): When format is "objects", use the first row as object keys (default true). When false, keys are column1, column2, ….
- table_index (integer): Zero-based index of the table to convert when the HTML has several. Default 0.
### Jq Playground
POST /api/tools/jq-playground/execute
Returns the result of running a jq-style filter over a JSON document. Supports a jq subset: paths (.a.b, .[0], .[1:3], .[]), pipes, map/select/sort_by/group_by/unique_by/min_by/max_by, keys/values/length/type/add/min/max/flatten/unique/reverse/sort, to_entries/from_entries/with_entries, has/contains/del, split/join/ltrimstr/rtrimstr, range/limit, the // fallback, and object/array/string construction. Not a full jq implementation.
Parameters:
- json (string, required): The JSON input document (text).
- query (string): The jq filter, e.g. ".users[] | select(.age > 30) | .name". Default: "." (identity).
### Json Comparer
POST /api/tools/json-comparer/execute
Returns a git-style line diff of two JSON documents after both are pretty-printed with 2-space indentation. Each line is marked added, removed or unchanged with its line numbers; a unified text block and counts are included.
Parameters:
- left (string, required): The original JSON document (text).
- right (string, required): The changed JSON document (text).
- sort_keys (boolean): Sort object keys recursively before formatting, so key order does not show as a change. Default: false.
### Json Diff
POST /api/tools/json-diff/execute
Returns the semantic differences between two JSON documents as a list of added, removed and modified paths with their old and new values, plus counts. Compares structure and values, not text lines; key order is ignored by default.
Parameters:
- left (string, required): The original JSON document (text).
- right (string, required): The changed JSON document (text).
- ignore_key_order (boolean): Sort object keys before comparing so key order does not count as a change. Default: true.
- include_unchanged (boolean): Also list unchanged leaf paths. Default: false.
### Json Faker
POST /api/tools/json-faker/execute
Field definitions: [{ name: "email", type: "email" }, ...]. Unknown types are rejected.
Parameters:
- fields (array, required): Field definitions: [{ name: "email", type: "email" }, ...]. Unknown types are rejected.
- items (object): One field: { name: string, type: string }.
- count (integer)
### JSON Flatten
POST /api/tools/json-flatten/execute
Flatten nested JSON objects to a single level using dot-notation keys. Arrays become indexed keys.
Parameters:
- json (string, required)
- separator (string)
### JSON Formatter / Minifier
POST /api/tools/json-format/execute
Format (pretty-print) or minify a JSON string.
Parameters:
- json (string, required)
- action (string)
- indent (integer)
### Json Minifier
POST /api/tools/json-minifier/execute
Minify JSON to a single line with no whitespace and return the compact text plus original size, minified size (bytes), and reduction percentage. The input must be valid JSON; a parse error is reported with its position.
Parameters:
- json (string, required): The JSON text to minify.
### Json Path Finder
POST /api/tools/json-path-finder/execute
Returns every match of a JSONPath expression in a JSON document: the concrete path and value of each match, the match count, and a convenience "value" (the single value when there is one match, otherwise the array of values). Supports $.a.b, ["key"], [0], [-1], [1:3], wildcards (*), recursive descent (..name) and filters ([?(@.age > 30)]).
Parameters:
- json (string, required): The JSON document (text).
- path (string): The JSONPath expression, e.g. "$.users[?(@.active == true)].name". Default: "$" (the root).
### JSON Query
POST /api/tools/json-query/execute
Query JSON data using dot-notation paths (e.g., user.name, items[0].price). Supports nested objects and array indexing.
Parameters:
- json (string, required)
- path (string, required)
### Json To Bootstrap Form
POST /api/tools/json-to-bootstrap-form/execute
Returns Bootstrap 5 form markup generated from a JSON form schema ({ formId?, layout?, method?, action?, fields: [...], submitText? }). Supports vertical, horizontal (row/col-md-6) and floating-label layouts with form-control, form-select and form-check classes.
Parameters:
- schema (string, required): The form schema as JSON text (a JSON object is also accepted). Must contain a "fields" array; each field has name, type and label. layout is "vertical" (default), "horizontal" or "floating".
### JSON to CSV Converter
POST /api/tools/json-to-csv/execute
Convert a JSON array of objects to CSV format.
Parameters:
- json (string, required)
- delimiter (string)
- includeHeaders (boolean)
### Json To Go Struct
POST /api/tools/json-to-go-struct/execute
Returns Go struct definitions (as source text) generated from a JSON object. Field names become PascalCase, nested objects become their own structs (or inline structs), and json tags with optional omitempty are added.
Parameters:
- json (string, required): A JSON object (text). The top-level value must be an object.
- struct_name (string): Name of the top-level struct. Default: "Root".
- add_json_tags (boolean): Add `json:"..."` struct tags. Default: true.
- omit_empty (boolean): Append ",omitempty" to every json tag. Default: false.
- inline_structs (boolean): Emit nested objects as inline anonymous structs instead of named types. Default: false.
### Json To Java Class
POST /api/tools/json-to-java-class/execute
Generate Java POJO class source code from a JSON object. Nested objects become separate classes, arrays become List, and you can choose Lombok @Data, getters/setters, or public fields.
Parameters:
- json (string, required): JSON object to convert (the root must be an object).
- class_name (string): Name of the root class. Default: "Root".
- package_name (string): Java package name, e.g. "com.example". Empty string omits the package line. Default: "com.example".
- use_lombok (boolean): Add the Lombok @Data annotation and import instead of explicit getters/setters. Default: false.
- generate_getters_setters (boolean): Generate getters and setters (ignored when use_lombok or use_public_fields is true). Default: true.
- use_public_fields (boolean): Declare fields as public instead of private. Default: false.
### JSON to Markdown Table
POST /api/tools/json-to-markdown-table/execute
Convert a JSON array of objects to a GitHub-flavoured Markdown table. Column order follows the first row\'s keys unless `headers` is given. Objects in cells are JSON-stringified. "|" and newlines inside cells are escaped.
Parameters:
- json (string, required): JSON array of objects to tabulate.
- headers (array): Optional explicit column order. Missing keys render as empty cells.
### Json To Python Class
POST /api/tools/json-to-python-class/execute
Generate Python class source code from a JSON object as a dataclass, a Pydantic model, or a plain class. Nested objects become separate classes, field names become snake_case, and type hints are optional.
Parameters:
- json (string, required): JSON object to convert (the root must be an object).
- class_name (string): Name of the root class. Default: "Root".
- class_type (string): Class style: "dataclass", "pydantic", or "plain". Default: "dataclass".
- add_type_hints (boolean): Add type hints (str, int, List[...], Optional[Any]). Default: true.
- generate_init (boolean): For class_type "plain": generate an __init__ method. Default: true.
### Json To React Form
POST /api/tools/json-to-react-form/execute
Return a typed React (TSX) form component generated from a JSON schema of fields — inputs, textarea, select, checkbox, radio — with useState handling, validation attributes and a submit handler.
Parameters:
- json (string, required): JSON schema text: { componentName?, method?: "GET"|"POST", action?, useHooks?: boolean, submitText?, fields: [{ name, type, label, placeholder?, required?, options?, rows?, min?, max?, minLength?, maxLength?, pattern?, defaultValue? }] }.
### Json To Sql
POST /api/tools/json-to-sql/execute
Convert a JSON array of objects into SQL INSERT statements, optionally preceded by a CREATE TABLE. Column types come from the real JSON values, so booleans stay booleans and null becomes NULL rather than the text "null". A nested object or array is stored as JSON text. Identifiers are quoted for the chosen dialect (Postgres, MySQL or SQLite). A single object is treated as one row, and NDJSON is accepted. Nothing is executed against a database.
Parameters:
- json (string, required): A JSON array of objects, a single object, or NDJSON.
- table (string): Target table name. Default: "my_table".
- dialect (string): Identifier quoting and type names. Default: postgres.
- create_table (boolean): Emit a CREATE TABLE before the inserts. Default: true.
- batch (boolean): Emit multi-row INSERTs instead of one statement per row. Default: false.
### Json To Tailwind Form
POST /api/tools/json-to-tailwind-form/execute
Generate React JSX for a Tailwind CSS styled form from a JSON form schema. Supports text, email, number, tel, url, password, textarea, select, checkbox, radio, date, time, datetime-local, and file fields with labels, placeholders, required marks, and validation attributes.
Parameters:
- schema (object, required): Form schema: { formId?, method?, action?, submitText?, fields: [{ name, type, label?, placeholder?, required?, min?, max?, minLength?, maxLength?, pattern?, rows?, accept?, options?: [{ value, label }] }] }. A JSON string of the same shape is also accepted.
### Json To Typescript
POST /api/tools/json-to-typescript/execute
Generate TypeScript interfaces or type aliases from a JSON sample. Nested objects become named declarations (or inline object types), arrays infer element unions, and identical shapes are declared once.
Parameters:
- json (string, required): JSON sample (an object, or an array of objects).
- root_name (string): Name of the root type. Default: "Root".
- output_type (string): "interface" or "type" (type alias). Default: "interface".
- naming_convention (string): Type-name casing: "pascal" or "camel". Default: "pascal".
- make_optional (boolean): Mark every property optional with "?". Default: false.
- add_export (boolean): Prefix declarations with "export". Default: true.
- inline_nested_objects (boolean): Write nested objects inline instead of as separate declarations. Default: false.
### Json To Url Params
POST /api/tools/json-to-url-params/execute
Convert a JSON object into a URL query string that starts with "?". Arrays repeat the key (or use key[] notation), nested objects are JSON-stringified, null values are skipped, and values are URL-encoded by default.
Parameters:
- json (string, required): JSON object to convert (the root must be an object).
- encode_values (boolean): URL-encode values with encodeURIComponent. Default: true.
- flatten_arrays (boolean): true: arrays repeat the key (tags=a&tags=b). false: use bracket notation (tags[]=a&tags[]=b). Default: true.
### JSON to XML
POST /api/tools/json-to-xml/execute
Convert a JSON value to XML. Object keys become element names; arrays produce repeated sibling elements. Invalid XML names fall back to - . Adds an XML declaration and wraps everything in a configurable root element.
Parameters:
- json (string, required): JSON string to convert.
- root_name (string): Root element name. Default: "root".
- indent (integer): Indent width. 0 emits single-line XML. Default: 2.
### JSON Unflatten
POST /api/tools/json-unflatten/execute
Convert flat dot-notation key-value JSON back into a nested JSON object.
Parameters:
- json (string, required)
- separator (string)
### JSON Validator
POST /api/tools/json-validate/execute
Check whether a string is valid JSON and get basic structure info.
Parameters:
- json (string, required)
### Json Visualizer
POST /api/tools/json-visualizer/execute
Return a text tree outline, structure statistics, and JSONPath list for a JSON document. Stats count objects, arrays, strings, numbers, booleans, nulls, total keys, and max depth; paths are emitted as $.a.b[0] expressions for every object or array node.
Parameters:
- json (string, required): JSON document to analyze.
- max_paths (integer): Maximum number of JSONPath entries to return (1-5000). Default: 500.
- max_depth (integer): Maximum nesting depth shown in the outline (0-50). Default: 6.
### Json Yaml Converter
POST /api/tools/json-yaml-converter/execute
Convert JSON to YAML or YAML to JSON and return the converted text. json-to-yaml emits block-style YAML with the chosen indentation; yaml-to-json emits pretty-printed JSON. Parse errors report the line and column.
Parameters:
- input (string, required): The JSON or YAML text to convert.
- mode (string): Conversion direction. Default: json-to-yaml.
- indent (integer): Indentation width for the output (1-8). Default: 2.
### Markdown Table Generator
POST /api/tools/markdown-table-generator/execute
Build a GitHub-flavoured Markdown table and return the markdown string. Give headers plus rows (arrays of cell values) and optional per-column alignments (left, center, right), or import from CSV, TSV, or a JSON array of objects. Pipe characters in cells are escaped.
Parameters:
- headers (array): Column header labels.
- rows (array): Table rows; each row is an array of cell values in header order. Short rows are padded, extra cells dropped.
- alignments (array): Per-column alignment: left, center, or right. Default: left for every column.
- import_text (string): Alternative input: CSV/TSV text (first line = headers) or a JSON array of objects. Used when headers is not given.
- import_format (string): Format of import_text. Default: csv.
### Markdown Table Parse
POST /api/tools/markdown-table-parse/execute
Parse a GitHub-flavored Markdown table into structured rows: headers, column alignments, cell rows, and one record object per row. This is the data step of the Markdown Table to Image tool; the PNG rendering stays in the browser.
Parameters:
- markdown (string, required): Markdown table text: a header row, a divider row (---, :---:, ---:), then data rows.
### Mock Json Generator
POST /api/tools/mock-json-generator/execute
Generate an array of mock JSON records from a list of field definitions. Field types include uuid, name, firstName, lastName, email, phone, address, city, country, zipCode, company, jobTitle, username, password, url, avatar, boolean, integer, float, price, date, datetime, paragraph, sentence, word, and color. Output is random on every call.
Parameters:
- fields (array, required)
- count (integer)
### Ndjson To Csv
POST /api/tools/ndjson-to-csv/execute
Convert newline-delimited JSON (NDJSON, JSON Lines, .jsonl) into a flat CSV. Each line is one JSON object; the header is the union of every key in first-seen order, and a key a row does not have becomes an empty cell. Nested objects are flattened to dot paths (user.name) and array items to indexed keys (tags[0]) by default, or kept as JSON text in one cell with nested set to json. A line that is not valid JSON or not an object is skipped and reported by its line number; the other lines still convert. A JSON array is refused with a pointer to the JSON to CSV tool. Quoting follows RFC 4180. Values are written as text and never coerced.
Parameters:
- ndjson (string, required): The JSON Lines text: one JSON object per line.
- nested (string): flatten (default): nested keys become dot paths such as user.name and array items become tags[0]. json: a nested value is written as JSON text in one cell.
- delimiter (string): Output field separator: "," (default), ";" or "\\t".
- header (boolean): Write the header row. Default true.
### Query String Parse
POST /api/tools/query-string-parse/execute
Parse a URL query string into an object. Leading "?" is optional. Repeat keys collapse into string arrays.
Parameters:
- query (string, required): Query string (with or without leading "?").
### Query String Stringify
POST /api/tools/query-string-stringify/execute
Serialise an object into a URL query string. Array values repeat the key. Null/undefined values are skipped. Set prefix=true to include the leading "?".
Parameters:
- params (object, required): Key-value object. Values may be strings, numbers, booleans, or arrays.
- prefix (boolean): If true, prepend "?". Default: false.
### Sql To Csv
POST /api/tools/sql-to-csv/execute
Read rows out of SQL INSERT statements and return CSV, one file per table. Parses a mysqldump, pg_dump or SQLite dump as text — nothing is executed against a database. Column names come from the INSERT column list, then from a CREATE TABLE in the same input, then from positions. NULL becomes an empty cell. Dump noise such as SET, LOCK TABLES and comments is ignored, and an INSERT ... SELECT with no literal VALUES is reported rather than guessed at.
Parameters:
- sql (string, required): SQL dump text containing INSERT statements.
- table (string): Return only this table. Default: every table found.
- delimiter (string): Output field separator. Default: a comma.
- max_rows (integer)
### Swagger To Openapi
POST /api/tools/swagger-to-openapi/execute
Convert a Swagger 2.0 document (JSON or YAML) to OpenAPI 3.0.3 and return the result as pretty-printed JSON with path and schema counts. host, basePath, and schemes become servers; body and formData parameters become requestBody; response schemas move under content; definitions become components/schemas with $ref rewritten; securityDefinitions become components/securitySchemes (basic, apiKey, oauth2 flows).
Parameters:
- swagger (string, required): The Swagger 2.0 document as JSON or YAML text.
### TSV to CSV
POST /api/tools/tsv-to-csv/execute
Convert tab-separated values (TSV, the format psql, mysql --batch and Excel "Text (Tab delimited)" write) to comma-separated values, or to any single-character delimiter. A field that Excel quoted because it holds a tab, a quote or a line break is read as one field. Cells that contain the delimiter, a quote or a line break are quoted per RFC 4180; every other cell is written as is. Values stay text: 00123 keeps its zeros. A leading byte order mark is dropped and blank lines are skipped.
Parameters:
- tsv (string, required): TSV input.
- delimiter (string): Output delimiter. Default: ",".
### Url Params To Json
POST /api/tools/url-params-to-json/execute
Parse URL query parameters into a JSON object. Accepts a full URL or a bare query string, decodes values, strips a trailing "[]" from keys, and collapses repeated keys into arrays.
Parameters:
- input (string, required): A full URL (https://x.com/a?q=1&tags=a&tags=b) or a query string ("q=1&tags[]=a&tags[]=b").
### Vcf To Csv
POST /api/tools/vcf-to-csv/execute
Convert a vCard (.vcf) contacts export from an iPhone, an Android phone, Gmail or Outlook into CSV, one row per contact. vCard 2.1, 3.0 and 4.0 are read, including folded lines, quoted-printable values, group prefixes such as item1.TEL, and bare 2.1 parameters such as TEL;WORK;VOICE. The first email and phone fill their own columns while every value is also listed with its type in the emails and phones columns. A photo is never written into the spreadsheet: PHOTO, LOGO, SOUND and KEY values are dropped and counted. The browser page accepts a 10 MB file; the API and MCP surfaces cap a request at 1 MB, so a large address book belongs on the page.
Parameters:
- input (string, required): The .vcf file contents.
- delimiter (string): Output field separator. Default: a comma.
## Datetime Tools
### Age Calculator
POST /api/tools/age-calculate/execute
Calculate age from a date of birth — years, months, days, plus totals in days, weeks, and months. Accepts ISO 8601 or anything Date.parse handles.
Parameters:
- date_of_birth (string, required): Date of birth (ISO 8601 preferred, e.g. 1990-04-18).
- reference_date (string): Date to measure age against. Default: today (UTC).
### Career Experience Calculator
POST /api/tools/career-experience-calculator/execute
Calculate total professional experience across several jobs: total days, years/months/days, weeks, working days (5/7), working hours (8 per working day), per-job durations, and career milestones (1 to 25 years). Jobs with an invalid or reversed date range are skipped and counted.
Parameters:
- experiences (array, required): List of jobs. Each item: { company?: string, start_date: "YYYY-MM-DD", end_date?: "YYYY-MM-DD", is_current?: boolean }. A current job ends at reference_date.
- items (object): One job: company (optional), start_date, end_date (optional), is_current (optional).
- reference_date (string): End date used for current jobs (ISO 8601). Default: now (UTC).
### Country Lookup
POST /api/tools/country-lookup/execute
Return country facts — capital, currency (name, code, symbol), phone code, timezone, region, subregion, flag emoji, and languages — for countries that match a search query, an ISO 3166-1 alpha-2 code, or a region. Call with no filters to list every country.
Parameters:
- query (string): Country name, capital, currency name or code (e.g. USD), phone code (e.g. +90), timezone, or language to search for.
- code (string): Exact ISO 3166-1 alpha-2 code, e.g. "TR", "US". Case-insensitive.
- region (string): Restrict to one region.
- limit (integer)
### Cron To Systemd
POST /api/tools/cron-to-systemd/execute
Convert a 5-field cron expression into a systemd timer plus service unit and a Kubernetes CronJob YAML file. Six-field cron (with seconds) is rejected.
Parameters:
- expression (string, required): 5-field cron expression, e.g. "*/5 * * * *".
- unit_name (string): systemd unit / CronJob name. Default: converted.
- command (string): ExecStart / container command. Default: /usr/local/bin/your-command.
### Date Difference Calculator
POST /api/tools/date-diff/execute
Calculate the difference between two dates in various units.
Parameters:
- from (string, required)
- to (string)
### Date Difference (start/end)
POST /api/tools/date-difference/execute
Compute the difference between two dates in years/months/weeks/days/hours/minutes/seconds.
Parameters:
- start (string, required): Start date (ISO 8601 or YYYY-MM-DD).
- end (string): End date. Defaults to today.
### Relationship Calculator
POST /api/tools/relationship-calculator/execute
Calculate how long a relationship has lasted between a start date and a target date: years/months/days, totals in days, weeks, months, hours, minutes, and seconds, the weekday it started, the next anniversary, and passed/upcoming milestones (100 days to 10 years).
Parameters:
- start_date (string, required): Relationship start date (YYYY-MM-DD).
- target_date (string): Date to measure against (YYYY-MM-DD). Default: today (UTC).
### Time Difference
POST /api/tools/time-difference/execute
Work out how long there is between two times of day, with no dates involved. Handles a shift that crosses midnight — 22:00 to 06:00 is eight hours, not minus sixteen — and can subtract an unpaid break. Accepts 24-hour times and am/pm, and returns the duration both as hours and minutes and as decimal hours for invoicing.
Parameters:
- start (string, required): Start time: "09:00", "9:00:30" or "9:00 am".
- end (string, required): End time, same formats. "24:00" means the end of the day.
- overnight (string): auto wraps past midnight only when the end is not after the start. always puts the end on the NEXT day, so 09:00 to 17:00 becomes 32 hours. never refuses to wrap and errors instead. Default: auto.
- break_minutes (number): Unpaid break to subtract, in minutes. Default: 0.
### Timezone Convert
POST /api/tools/timezone-convert/execute
Convert a datetime between IANA time zones. Uses the browser\'s/Node\'s Intl DB, so any well-formed zone name (America/New_York, Europe/Istanbul, Asia/Tokyo, UTC, etc.) works.
Parameters:
- datetime (string, required): Input datetime (ISO 8601 preferred; anything Date.parse accepts works).
- from_tz (string, required): Source IANA zone. Ignored if datetime includes an offset.
- to_tz (string, required): Target IANA zone.
### Unix Timestamp Converter
POST /api/tools/unix-timestamp/execute
Convert Unix timestamps to human-readable dates and vice versa.
Parameters:
- action (string, required)
- value (string)
### Unix Timestamp (mode-based)
POST /api/tools/unix-timestamp-convert/execute
Convert between Unix timestamps and ISO dates. Modes: "now", "to_date", "to_timestamp".
Parameters:
- mode (string, required): Conversion mode.
- value (string): Input (timestamp integer for to_date, ISO/date string for to_timestamp).
- timezone (string): IANA timezone for to_date (e.g. "Europe/Istanbul"). Defaults to UTC.
### Work Anniversary Calculator
POST /api/tools/work-anniversary-calculator/execute
Calculate job tenure between a start date and a target date: years/months/days, totals in days, weeks, months, and hours, approximate working days (5 of 7) and working hours (8 per working day), the weekday the job started, the next work anniversary, and passed/upcoming milestones (1 month to 10 years).
Parameters:
- start_date (string, required): First day at the job (YYYY-MM-DD).
- target_date (string): Date to measure against (YYYY-MM-DD). Default: today (UTC).
## Developer Tools
### Ai Model Picker
POST /api/tools/ai-model-picker/execute
Return the best-matching AI coding models (top 3 by default) for a project, scored on speed, accuracy, cost and context window from four answers: what you build, primary language, top priority and project complexity. Model data comes from the live FindUtils model catalog.
Parameters:
- task_type (string, required): What are you building?
- language (string, required): Primary programming language.
- priority (string, required): What matters most?
- complexity (string, required): Project complexity.
- limit (integer): How many models to return (1-10).
### chmod Calculator
POST /api/tools/chmod-calculate/execute
Convert between numeric (755) and symbolic (rwxr-xr-x) chmod permission formats, with human-readable description.
Parameters:
- mode (string, required)
### CIDR Calculator
POST /api/tools/cidr-calculate/execute
Calculate network address, broadcast address, host range, subnet mask, and host count from a CIDR notation (e.g. 192.168.1.0/24).
Parameters:
- cidr (string, required)
### Cloudflare Cost Calculator
POST /api/tools/cloudflare-cost-calculate/execute
Estimate monthly Cloudflare developer platform costs. Supports Workers, D1, R2, KV, and Durable Objects with free tier and Workers Paid ($5/mo) plan calculations.
Parameters:
- plan (string)
- workers_requests_m (number)
- workers_cpu_ms_m (number)
- workers_build_min (number)
- d1_reads_m (number)
- d1_writes_m (number)
- d1_storage_gb (number)
- r2_storage_gb (number)
- r2_class_a_m (number)
- r2_class_b_m (number)
- kv_reads_m (number)
- kv_writes_m (number)
- kv_storage_gb (number)
- do_requests_m (number)
- do_duration_k_gbs (number)
- do_reads_m (number)
- do_writes_m (number)
- do_storage_gb (number)
### Credit Card Validator
POST /api/tools/credit-card-validate/execute
Validate credit card numbers using the Luhn algorithm and detect card type (Visa, Mastercard, Amex, etc.).
Parameters:
- number (string, required)
### Cron Expression Describer
POST /api/tools/cron-describe/execute
Describe a 5-field cron expression in plain English (minute hour day-of-month month day-of-week).
Parameters:
- expression (string, required)
### Crypto Testnet Faucets
POST /api/tools/crypto-testnet-faucets/execute
Returns a curated list of crypto testnet faucets (Ethereum Sepolia, Base, Arbitrum, Optimism, Polygon, Avalanche, BNB Chain, Linea, Solana) with the faucet URL, tokens dispensed, amount, cooldown, auth requirements and USDC contract where known, plus the chain config (chain id, RPC URL, explorer) for each listed network. Filter by network and a search term.
Parameters:
- network (string): Network to filter by. Default: "All".
- search (string): Case-insensitive search over name, network, tokens, description and tags (every word must match). Optional.
- featured_only (boolean): Only return featured faucets. Default: false.
### Css Minifier
POST /api/tools/css-minifier/execute
Minify CSS (strip comments and whitespace) or beautify compressed CSS, and return the output with byte sizes and the percentage saved. Minify removes comments, whitespace around punctuation, and the last semicolon in each block. Beautify puts one declaration per line with the chosen indentation.
Parameters:
- css (string, required): The CSS source to minify or beautify.
- mode (string): minify = compress, beautify = expand for readability. Default: minify.
- indent (integer): Spaces per indentation level in beautify mode (1-8). Default: 2.
### Email Validator
POST /api/tools/email-validate/execute
Validate email address format using RFC 5322 rules. Returns validation details including local part, domain, and any issues found.
Parameters:
- email (string, required)
### Env Linter
POST /api/tools/env-linter/execute
Lint a dotenv file for duplicate keys, unquoted spaces, export prefixes, secret-looking values (masked), and drift against an optional .env.example. Returns issues and a masked key table. Does not execute the file.
Parameters:
- env (string, required): Contents of a .env file.
- example (string): Optional .env.example contents for key drift checks.
### Font Icon Search
POST /api/tools/font-icon-search/execute
Search a catalog of about 300 icons from Font Awesome, Material Icons, Lucide, and Heroicons by name, keyword, or category and return matching icon names with their CSS class and unicode code point. Optional filters by library and category; an empty query lists the catalog.
Parameters:
- query (string): Search text, e.g. "search", "trash", "arrow". Matches name, keywords, CSS class, and category, with one-typo tolerance on words of 4+ letters.
- library (string): Only icons from this library.
- category (string)
- limit (integer)
### Glob Pattern Tester
POST /api/tools/glob-pattern-tester/execute
Returns which file paths match a glob pattern and which do not. Supports * and ** wildcards, ? single characters, [abc] character classes, {a,b} brace expansion and a leading ! for negation. A pattern without a slash also matches against the file basename.
Parameters:
- pattern (string, required): The glob pattern to test, e.g. "src/**/*.ts" or "*.{jpg,png}".
- files (array, required): File paths to test. An array of strings (a newline-separated string is also accepted).
### IP Address Validator
POST /api/tools/ip-validate/execute
Validate IPv4 and IPv6 addresses and return type, class, and details.
Parameters:
- ip (string, required)
### JWT Decoder
POST /api/tools/jwt-decode/execute
Decode a JWT token and inspect its header and payload. Does NOT verify the signature.
Parameters:
- token (string, required)
### Meta Tag Fetcher
POST /api/tools/meta-fetch/execute
Fetch title, meta description, Open Graph tags, and favicon from a URL.
### NanoID Generator
POST /api/tools/nanoid-generate/execute
Generate one or more NanoID-style identifiers. Defaults to the standard 21-char URL-safe alphabet used by the npm `nanoid` package. Uses rejection sampling so custom alphabets stay unbiased.
Parameters:
- size (integer): Length of each ID. Default: 21.
- count (integer): How many IDs to generate. Default: 1.
- alphabet (string): Character set to draw from. Default: nanoid URL-safe.
### Phone Formatter (E.164)
POST /api/tools/phone-format/execute
Format a phone number to E.164 (+CCNNNNNNN…) given an optional country calling code. Strips spaces, dashes, parens, and dots. Validates length against a small country table; returns valid=false without raising for numbers outside that table.
Parameters:
- phone (string, required): The raw phone number (may include formatting).
- country_code (string): ITU country calling code without "+" (e.g. "1", "44", "90"). Default: "1".
### Privacy Policy Checker
POST /api/tools/privacy-policy-checker/execute
Check a privacy policy text for 24 expected disclosures and return a 0-100 completeness score, each check with found/missing and severity, up to 5 warnings for missing critical elements, and a one-line summary. Keyword/regex based — no legal advice.
Parameters:
- policy_text (string, required): The full privacy policy text to analyze.
### Random Number Generator
POST /api/tools/random-number/execute
Generate cryptographically secure random integers or floats within a specified range.
Parameters:
- min (number)
- max (number)
- count (integer)
- type (string)
- decimal_places (integer)
- unique (boolean)
### Regex Tester
POST /api/tools/regex-test/execute
Test a regular expression against text and return all matches with groups.
Parameters:
- pattern (string, required)
- text (string, required)
- flags (string)
### Sql Formatter
POST /api/tools/sql-formatter/execute
Format (beautify) or minify a SQL query and return the result with lint warnings. Format mode puts each clause (SELECT, FROM, WHERE, JOIN, ...) on its own line, uppercases keywords, and indents by the chosen width; dialect adds MySQL, PostgreSQL, or SQLite keywords. Warnings flag unmatched parentheses, unclosed strings, empty clauses, and a missing final semicolon.
Parameters:
- sql (string, required): The SQL text to format or minify.
- mode (string): format = beautify, minify = one line without comments. Default: format.
- indent (integer): Spaces per indentation level in format mode (1-8). Default: 2.
- dialect (string): SQL dialect for keyword recognition. Default: standard.
### Tailwind To Stylex
POST /api/tools/tailwind-to-stylex/execute
Convert Tailwind CSS v4 theme variables, JSON design tokens, or a static Tailwind config theme into StyleX defineConsts source and TypeScript declarations. Uploaded JavaScript is parsed as data and never executed.
Parameters:
- source (string, required): Tailwind @theme CSS, CSS custom properties, JSON tokens, or a static Tailwind theme object.
- format (string): Input format: auto, css, json, or config. Default: auto.
### ULID Generator
POST /api/tools/ulid-generate/execute
Generate one or more ULIDs — 26-character Crockford base32 identifiers that are lexicographically sortable by creation time. Compatible with standard ULID libraries.
Parameters:
- count (integer): How many ULIDs to generate. Default: 1.
- timestamp (integer): Override the timestamp (ms since epoch). Defaults to now.
### URL Parse
POST /api/tools/url-parse/execute
Parse a URL into its components: protocol, host, port, pathname, query (as an object, repeat keys become arrays), hash, origin, and userinfo.
Parameters:
- url (string, required): The URL to parse.
### URL Validator
POST /api/tools/url-validate/execute
Validate that a string is a well-formed URL and (optionally) require HTTPS. Returns the parsed components when valid.
Parameters:
- url (string, required): The URL to validate.
- require_https (boolean): If true, only accept https:// URLs. Default: false.
## Documents Tools
### Pdf Delete Pages
POST /api/tools/pdf-delete-pages/execute
Remove pages from a PDF and return the rest in their original order. Pages are given as 1-based numbers and ranges, such as "2,5-7". Input and output are base64-encoded PDFs. Removing every page is refused rather than returning an empty document.
Parameters:
- pdf (string, required): The base64-encoded PDF to remove pages from.
- pages (string, required): Pages to remove, 1-based: "2,5-7".
### Pdf Merge
POST /api/tools/pdf-merge/execute
Combine several PDFs into one, in the order given. Each input is a base64-encoded PDF and the result is a base64-encoded PDF. Pages are copied as they are — nothing is re-rendered, re-encoded or watermarked. An encrypted PDF must be unlocked first.
Parameters:
- pdfs (array, required): Base64-encoded PDFs, in the order they should appear. At least two.
- items (string): One base64-encoded PDF.
### Pdf Organize
POST /api/tools/pdf-organize/execute
Reorder the pages of a PDF. The order is a 1-based list such as "3,1,2" or "5-1" for a reversed document, and the result contains exactly the pages named, in that order — so a short list also drops the pages it leaves out. Input and output are base64-encoded PDFs.
Parameters:
- pdf (string, required): The base64-encoded PDF to reorder.
- order (string, required): The new page order, 1-based: "3,1,2". A descending range such as "5-1" reverses.
### Pdf Page Numbers
POST /api/tools/pdf-page-numbers/execute
Add page numbers to a PDF. The format string uses {n} for the page number and {total} for the count, so "Page {n} of {total}" and a bare "{n}" both work. Numbering can start at any value and can skip the first page, which is what a title page usually wants. Input and output are base64-encoded PDFs.
Parameters:
- pdf (string, required): The base64-encoded PDF to number.
- position (string): Where the number sits. Default: bottom-center.
- start (integer): The number the first numbered page gets. Default: 1.
- format (string): Template with {n} and {total}. Default: "{n}".
- size (number): Font size in points. Default: 10.
- margin (number): Distance from the page edge in points. Default: 28.
- skip_first (boolean): Leave page 1 unnumbered, for a title page. Default: false.
### Pdf Rotate
POST /api/tools/pdf-rotate/execute
Rotate pages of a PDF by 90, 180 or 270 degrees clockwise, or the negative of those for anticlockwise. Rotation is added to whatever a page already carries, so rotating a page twice by 90 leaves it at 180. Omit the page list to rotate every page. Input and output are base64-encoded PDFs.
Parameters:
- pdf (string, required): The base64-encoded PDF to rotate.
- degrees (integer, required): Clockwise rotation to add: 90, 180, 270, or a negative for anticlockwise.
- pages (string): Pages to rotate, 1-based: "1,3,5-8". Default: every page.
### Pdf Split
POST /api/tools/pdf-split/execute
Take a selection of pages out of a PDF into a new one. Pages are given as 1-based numbers and ranges, such as "1,3,5-8", and come out in the order written. Input and output are base64-encoded PDFs. Pages are copied as they are — nothing is re-rendered or re-encoded.
Parameters:
- pdf (string, required): The base64-encoded PDF to take pages from.
- pages (string, required): Pages to keep, 1-based: "1,3,5-8". Order is preserved.
### Pdf Watermark
POST /api/tools/pdf-watermark/execute
Stamp text across the pages of a PDF — CONFIDENTIAL, DRAFT, a company name. The text is drawn centred and rotated over the existing content at the opacity you choose, so the page underneath stays readable. Input and output are base64-encoded PDFs. This is a visual mark, not a security control: anyone can remove it with the same kind of tool.
Parameters:
- pdf (string, required): The base64-encoded PDF to stamp.
- text (string, required): The watermark text.
- opacity (number): 0 is invisible, 1 is solid. Default: 0.15.
- rotation (integer): Degrees anticlockwise. Default: 45.
- size (number): Font size in points. Default: 0, meaning fit to the page width.
- color (string): Hex colour such as #808080. Default: #808080.
- pages (string): Pages to stamp, 1-based: "1,3,5-8". Default: every page.
### Purchase Order Generator
POST /api/tools/purchase-order-generator/execute
Return a purchase order as structured data and as Markdown text: line items with amounts, subtotal, tax, shipping, and total, plus company, vendor, shipping, dates, notes, and terms. Amounts use 2 decimals. This tool does not produce a PDF.
Parameters:
- company_name (string): Buyer company name.
- company_address (string): Buyer address; newlines separate lines.
- vendor_name (string): Vendor name.
- vendor_address (string): Vendor address.
- vendor_contact (string): Vendor contact (email or phone).
- po_number (string): Purchase order number. Default: PO-.
- po_date (string): Order date as YYYY-MM-DD. Default: today (UTC).
- delivery_date (string): Requested delivery date as YYYY-MM-DD.
- currency (string): Currency code. Default: USD.
- shipping_address (string): Ship-to address when it differs from the buyer address.
- shipping_method (string): Shipping method.
- items (array, required): Line items: { description, quantity, unit_price, item_number?, unit? }. 1-200 items.
- tax_rate (number): Tax rate in percent applied to the subtotal. Default: 0.
- shipping_cost (number): Shipping cost added after tax. Default: 0.
- notes (string): Notes printed on the order.
- terms (string): Terms and conditions.
## Education Tools
### Attendance Sheet Generator
POST /api/tools/attendance-sheet-generator/execute
Generate a blank attendance sheet for a list of students over consecutive days and return the date columns, a CSV, a Markdown table, and a plain-text grid. Dates are consecutive calendar days from start_date (UTC), labelled like "Mon, Mar 2".
Parameters:
- students (array, required): Student names, one per row. Empty names are skipped.
- start_date (string, required): First date of the sheet (YYYY-MM-DD).
- days (integer): Number of consecutive days (columns). Default 5.
- class_name (string): Class or group name printed as the sheet title. Default "Class".
### Course Quiz Generator
POST /api/tools/course-quiz-generator/execute
Build a printable course quiz from a list of questions (multiple choice, true/false, short answer, fill in the blank) and return the numbered questions with labels, the total points, an answer key, a plain-text version, and a standalone HTML document. LaTeX between $…$ is kept as-is (not rendered).
Parameters:
- questions (array, required): Questions: { text, type?, options?, correct_answer?, points? }. type is one of multiple_choice (default), true_false, short_answer, fill_blank. points defaults to 1.
- items (object): { text: string, type?: string, options?: string[], correct_answer?: string, points?: number }
- title (string): Quiz title. Default "Quiz".
- subject (string): Subject line shown in the header.
- teacher (string): Teacher name shown in the header.
- date (string): Date shown in the header (any text, e.g. 2026-05-01).
- instructions (string): Instructions paragraph shown before the questions.
- include_answer_key (boolean): Append an answer key and mark correct options. Default true.
### Essay Outline Generator
POST /api/tools/essay-outline-generator/execute
Generate a structured essay outline (introduction, body paragraphs, conclusion) for five essay types and three lengths, and return each section with its guidance points plus Markdown and plain-text renderings. The outline is a deterministic template filled with the topic, thesis, and main points.
Parameters:
- topic (string, required): The essay topic.
- thesis (string): Optional thesis statement. When empty, a placeholder prompt is used.
- main_points (array): Up to 5 main points, one per body paragraph. Missing points become "Main Point N".
- essay_type (string): Essay type. Default "argumentative".
- essay_length (string): short = 2 body paragraphs, medium = 3, long = 4. Default "medium".
### Flashcard Maker
POST /api/tools/flashcard-maker/execute
Turn a list of front/back pairs into a flashcard deck and return the numbered cards plus ready-to-import formats: CSV (Front,Back), tab-separated text for Anki and Quizlet, JSON, Markdown, and a plain-text study sheet. Optionally shuffles the deck (deterministic with a seed).
Parameters:
- cards (array, required): Cards: { front, back }. Cards with an empty side are skipped.
- title (string): Deck title. Default "Flashcards".
- shuffle (boolean): Shuffle the cards. Default false.
- seed (integer): Seed for the shuffle. Same seed → same order.
### Gpa Calculator
POST /api/tools/gpa-calculator/execute
Calculate a grade point average (GPA) on the 4.0 scale from course letter grades and credits. Returns the GPA, a quality label, total credits, total quality points, and per-course points. Grades A+ to F (A+ and A = 4.0, A- = 3.7, B+ = 3.3, ..., F = 0).
Parameters:
- courses (array, required): Courses. Each item: { name?: string, credits: number (> 0), grade: "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F" }.
- items (object): One course with credits and a letter grade.
### Grade Calculator
POST /api/tools/grade-calculator/execute
Calculate a weighted course grade from categories (homework, quizzes, exams) with assignment scores, the letter grade (A to F), and the score needed on the remaining weight to reach a target grade. Categories with no scored assignments count as remaining weight.
Parameters:
- categories (array, required): Grade categories. Each item: { name?: string, weight: number (percent of the final grade), assignments: [{ name?: string, score: number, max_score?: number (default 100) }] }.
- items (object): One category with a weight and a list of assignments.
- target_grade (number): Target final grade in percent. Default 90.
### Lesson Plan Template
POST /api/tools/lesson-plan-template/execute
Fill a structured lesson plan template (header, learning objectives, materials, timed activities, assessment, homework, notes) and return the normalized plan object, a Markdown document, and a standalone HTML document. Warns when the activity minutes do not add up to the lesson duration.
Parameters:
- lesson_title (string): Lesson title. Default "Untitled Lesson".
- teacher_name (string): Teacher name.
- subject (string): Subject.
- grade_level (string): Grade level or class.
- date (string): Lesson date (any text, e.g. 2026-09-01).
- duration (integer): Lesson duration in minutes. Default 45.
- objectives (array): Learning objectives.
- materials (array): Materials and resources.
- activities (array): Timed activities: { time (minutes), description }.
- assessment (string): Assessment paragraph.
- homework (string): Homework or extension paragraph.
- notes (string): Teacher notes.
### Quiz Maker
POST /api/tools/quiz-maker/execute
Build a multiple-choice quiz from questions with options and a correct option index and return the numbered quiz, an answer key, a printable plain-text sheet, Markdown, and (when answers are given) the graded score with per-question results.
Parameters:
- questions (array, required): Questions: { question, options (2–10 strings), correct_index (0-based) }.
- items (object): { question: string, options: string[], correct_index: number }
- title (string): Quiz title. Default "Quiz Maker".
- answers (array): Optional chosen option index per question (0-based, null for unanswered). When given, the quiz is graded.
### Readability Calculator
POST /api/tools/readability-calculator/execute
Compute six readability scores for English text (Flesch Reading Ease, Flesch-Kincaid Grade, Gunning Fog, SMOG, Coleman-Liau, Automated Readability Index) plus an average grade level, a reading-level label, a target audience, and text statistics. Scores are null when the text has fewer than 10 words.
Parameters:
- text (string, required): The text to analyse (at least 10 words for scores).
### Report Card Generator
POST /api/tools/report-card-generator/execute
Generate a report card from a list of subjects with letter grades and credits and return the credit-weighted GPA on a 4.0 scale, per-subject grade points, total credits, a plain-text card, and a standalone HTML card. Grades: A+ A A- B+ B B- C+ C C- D+ D D- F.
Parameters:
- subjects (array, required): Subjects: { name, grade, credits? }. credits defaults to 3. Subjects with an empty name are skipped.
- items (object): { name: string, grade: "A+"…"F", credits?: number }
- student_name (string): Student name.
- student_id (string): Student ID.
- school_name (string): School name (card heading).
- semester (string): Semester or term.
- academic_year (string): Academic year, e.g. 2025-2026.
- comments (string): Teacher comments.
### Research Title Generator
POST /api/tools/research-title-generator/execute
Generate up to 20 academic research paper titles from a topic, field, variables, population, and research type, and return each title with its style (descriptive, declarative, interrogative, compound). Titles come from deterministic templates; the same inputs and regenerate_key always give the same list.
Parameters:
- topic (string, required): Research topic, e.g. "student motivation".
- field (string): Academic field, e.g. "Educational Psychology".
- variables (string): Comma-separated key variables, e.g. "sleep quality, academic performance".
- population (string): Target population, e.g. "university students".
- research_type (string): Research design. Default "quantitative".
- regenerate_key (integer): Change this number to get a different selection and order of titles. Default 0.
### Rubric Generator
POST /api/tools/rubric-generator/execute
Build a grading rubric from weighted criteria and performance levels and return the rubric grid, the total weight (with a flag when it is not 100%), the maximum score, a CSV, and a Markdown table. Default levels are Excellent (4), Good (3), Satisfactory (2), Needs Improvement (1).
Parameters:
- criteria (array, required): Criteria rows: { name, weight? (percent), descriptions? (one text per level, in level order) }. weight defaults to an equal share.
- items (object): { name: string, weight?: number, descriptions?: string[] }
- levels (array): Performance level columns: { name, points? }. Defaults to four levels with 4, 3, 2, 1 points.
- items (object): { name: string, points?: number }
- title (string): Rubric title. Default "Rubric".
### Seating Chart Maker
POST /api/tools/seating-chart-maker/execute
Assign students to a rows × columns seating grid (in list order, or shuffled) and return the grid, each student\'s row/column/seat number, the students left without a seat, a plain-text chart with the front of the room at the top, and a CSV. Pass a seed for a reproducible shuffle.
Parameters:
- students (array, required): Student names in the order they should be seated (row by row, left to right).
- rows (integer): Number of rows. Default 4.
- cols (integer): Seats per row. Default 5.
- shuffle (boolean): Shuffle the students before seating. Default false.
- seed (integer): Seed for the shuffle. Same seed → same chart.
- title (string): Chart title. Default "Seating Chart".
### Thesis Statement Generator
POST /api/tools/thesis-statement-generator/execute
Generate up to 5 thesis statement variations from a topic, a position, and optional supporting reasons for four essay types, and return each statement with a strength rating (weak, moderate, strong) and improvement tips. Output comes from deterministic templates.
Parameters:
- topic (string, required): The essay topic, e.g. "Social media".
- position (string, required): Your claim or position, e.g. "Harms teenage mental health".
- reasons (array): Up to 3 supporting reasons. More reasons produce stronger statements.
- essay_type (string): Essay type. Default "argumentative".
### Worksheet Generator
POST /api/tools/worksheet-generator/execute
Generate a printable math worksheet of addition, subtraction, multiplication, division, or mixed problems at easy (1–10), medium (1–50), or hard (1–100) difficulty, and return the numbered problems with answers, a plain-text worksheet, and an answer-key text. Subtraction never goes negative and division always divides evenly. Pass a seed for a reproducible sheet.
Parameters:
- type (string): Operation type. Default "addition".
- difficulty (string): Number range: easy 1–10, medium 1–50, hard 1–100. Default "easy".
- count (integer): Number of problems. Default 20.
- title (string): Worksheet title. Default "Math Worksheet".
- seed (integer): Random seed. Same seed and options → same problems.
## Encoding Tools
### Base32 Decode
POST /api/tools/base32-decode/execute
Decode RFC 4648 base32 back to UTF-8 text. Case-insensitive; padding "=" optional.
Parameters:
- text (string, required): Base32-encoded text.
### Base32 Encode
POST /api/tools/base32-encode/execute
Encode UTF-8 text to RFC 4648 base32 (uppercase, "=" padding). Useful for TOTP secrets and case-insensitive identifiers.
Parameters:
- text (string, required): Text to encode.
### Base64 Encoder / Decoder
POST /api/tools/base64/execute
Encode text to Base64 or decode Base64 back to text.
Parameters:
- action (string, required)
- text (string, required)
### Base64 Decode (text-only)
POST /api/tools/base64-decode/execute
Decode a base64 string back to UTF-8 text.
Parameters:
- text (string, required): Base64-encoded string to decode.
### Base64 Encode (text-only)
POST /api/tools/base64-encode/execute
Encode UTF-8 text as a base64 string.
Parameters:
- text (string, required): The UTF-8 text to encode.
### Hex Decode
POST /api/tools/hex-decode/execute
Decode a hexadecimal string back to UTF-8 text. Whitespace, dashes, and colons between bytes are tolerated.
Parameters:
- hex (string, required): Hex string.
### Hex Encode
POST /api/tools/hex-encode/execute
Encode UTF-8 text as a hexadecimal string. Optional separator between bytes and uppercase output.
Parameters:
- text (string, required): Text to encode.
- separator (string): String between bytes (e.g. " " or ":"). Default: "".
- upper (boolean): Uppercase hex. Default: false.
### HTML Entity Decode
POST /api/tools/html-entity-decode/execute
Decode HTML entities back to characters. Handles named entities (amp/lt/gt/quot/apos plus common typography), decimal (NNN;), and hex (HH;) forms.
Parameters:
- text (string, required): Text containing HTML entities.
### HTML Entity Encode
POST /api/tools/html-entity-encode/execute
Encode HTML special characters as entities. Named mode uses &/</>/"/'; numeric mode uses NNN; for all non-ASCII plus the five reserved chars.
Parameters:
- text (string, required): Text to encode.
- mode (string): Entity style. Default: named.
### Json Escaper
POST /api/tools/json-escaper/execute
Returns the text with JSON string escapes applied (mode "escape") or removed (mode "unescape"). Escapes backslashes, double quotes, newlines, carriage returns, tabs, form feeds and backspaces so the text can sit inside a JSON string literal.
Parameters:
- text (string, required): The text to escape or unescape.
- mode (string): Direction: "escape" (default) adds JSON escapes; "unescape" removes them.
### Morse Code Encoder / Decoder
POST /api/tools/morse-code/execute
Encode text to Morse code or decode Morse code back to text. Letters are separated by spaces, words by " / ".
Parameters:
- action (string, required)
- text (string, required)
### Pem Decoder
POST /api/tools/pem-decoder/execute
Parse PEM certificates, CSRs, and keys in the browser-equivalent decoder. Returns type, DER length, subject, issuer, dates, SAN, and algorithm. Private key bits are not returned.
Parameters:
- pem (string, required): One or more PEM blocks including BEGIN and END lines.
### QR Code (Text/ASCII)
POST /api/tools/qr-text/execute
Generate a QR code as ASCII art. Supports up to ~100 characters. Returns the matrix as text using block characters, dots, or hash symbols.
Parameters:
- text (string, required)
- style (string)
### ROT13
POST /api/tools/rot13/execute
Apply the ROT13 Caesar cipher to text. Self-inverse — running the output through rot13 again recovers the original. Non-letters pass through unchanged.
Parameters:
- text (string, required): Text to rotate.
### URL Decode (text-only)
POST /api/tools/url-decode/execute
Decode a percent-encoded (URL-encoded) string back to plain text.
Parameters:
- text (string, required): The URL-encoded text to decode.
### URL Encoder / Decoder
POST /api/tools/url-encode/execute
Encode or decode URL components.
Parameters:
- action (string, required)
- text (string, required)
- mode (string)
## Finance Tools
### Amortization Calculator
POST /api/tools/amortization-calculator/execute
Return a full loan amortization schedule (one row per month with payment, principal, interest, extra payment, balance) plus totals, interest saved, months saved, and the payoff month. Rate is a yearly percentage; payments are monthly.
Parameters:
- loan_amount (number, required): Loan principal.
- interest_rate (number, required): Yearly interest rate in percent (6.5 = 6.5%). Must be > 0.
- loan_term_years (integer, required): Loan term in years (1-40).
- extra_payment (number): Optional extra principal paid every month. Default: 0.
- start_month (string): First payment month as YYYY-MM. Default: the current UTC month.
### Auto Loan Calculator
POST /api/tools/auto-loan-calculator/execute
Return the monthly car payment, total interest, financed amount, and a month-by-month amortization schedule for an auto loan. Accounts for down payment, trade-in value, and sales tax (optionally financed). Rate is a yearly percentage.
Parameters:
- vehicle_price (number, required): Vehicle purchase price before tax.
- interest_rate (number, required): Yearly interest rate in percent (6.5 = 6.5%). Must be > 0.
- loan_term_months (integer, required): Loan term in months (for example 36, 48, 60, 72, 84).
- down_payment (number): Cash down payment. Default: 0.
- trade_in_value (number): Trade-in value credited against the price. Default: 0.
- sales_tax (number): Sales tax rate in percent applied to the vehicle price. Default: 0.
- include_tax_in_loan (boolean): Finance the sales tax in the loan. Default: true.
### Break Even Calculator
POST /api/tools/break-even-calculator/execute
Return the break-even point of a product or business: contribution margin, contribution margin ratio, break-even units and revenue, plus the units and revenue needed to reach a target profit. Units are rounded up to whole units.
Parameters:
- fixed_costs (number, required): Total fixed costs for the period.
- variable_cost_per_unit (number, required): Variable cost to produce one unit.
- price_per_unit (number, required): Selling price of one unit. Must be greater than the variable cost.
- target_profit (number): Desired profit for the period. Default: 0.
### Business Loan Calculator
POST /api/tools/business-loan-calculator/execute
Return the monthly payment, total interest, origination fee, effective yearly rate (interest plus fees), a yearly summary, and a full monthly amortization schedule for a business loan. Rate is a yearly percentage; the term is in months.
Parameters:
- loan_amount (number, required): Loan principal.
- interest_rate (number, required): Yearly interest rate in percent (8 = 8%). Must be > 0.
- loan_term_months (integer, required): Loan term in months (1-480).
- origination_fee_percent (number): Origination fee as a percent of the loan amount. Default: 0.
- loan_type (string): Label only (standard, sba, equipment, line_of_credit). Does not change the math. Default: standard.
### Compound Interest
POST /api/tools/compound-interest/execute
Compute compound interest growth. Supports any compound frequency (monthly, quarterly, annual) plus optional fixed monthly contributions. Returns final balance, total contributions, total interest, and a year-by-year balance series.
Parameters:
- principal (number, required): Starting principal (in any currency).
- annual_rate (number, required): Annual interest rate as a decimal (0.07 = 7%).
- years (number, required): Investment duration in years.
- compounds_per_year (integer): Compound periods per year. Default: 12 (monthly).
- monthly_contribution (number): Optional fixed monthly contribution. Default: 0.
### Credit Card Payoff Calculator
POST /api/tools/credit-card-payoff-calculator/execute
Return how long a credit card balance takes to pay off at a fixed monthly payment (mode "payment"), or the payment needed to clear it in a target number of months (mode "months"), with total interest, total paid, payoff month, and a monthly schedule. APR is a yearly percentage.
Parameters:
- balance (number, required): Current card balance. Must be > 0.
- interest_rate (number, required): Card APR in percent (18.99 = 18.99%).
- mode (string): "payment": solve months from a fixed monthly_payment. "months": solve the payment from target_months. Default: payment.
- monthly_payment (number): Fixed monthly payment (mode "payment").
- target_months (integer): Months to pay off the balance (mode "months").
- start_month (string): Month of the first payment as YYYY-MM. Default: current UTC month.
### Debt Payoff Calculator
POST /api/tools/debt-payoff-calculator/execute
Return a debt payoff plan for several debts using the avalanche (highest rate first) or snowball (lowest balance first) strategy: total months, total interest, total paid, and the order and month each debt is cleared. Minimum payments roll into the extra payment as debts close.
Parameters:
- debts (array, required): List of debts. Each item: { name?: string, balance: number, interest_rate: number (APR percent), minimum_payment: number }.
- items (object): One debt with balance, interest_rate (percent), minimum_payment, optional name.
- extra_payment (number): Extra amount paid every month on top of all minimums. Default: 0.
- strategy (string): avalanche (highest interest first) or snowball (lowest balance first). Default: avalanche.
### Dividend Calculator
POST /api/tools/dividend-calculator/execute
Return a year-by-year projection of a dividend portfolio: dividends received, DRIP reinvestment, contributions, share count, share price, ending value, plus final yearly and monthly dividend income and yield on cost. All rates are yearly percentages; contributions and reinvested dividends buy shares at the mid-year average price.
Parameters:
- initial_investment (number, required): Starting amount invested.
- share_price (number, required): Current share price. Must be > 0.
- dividend_yield (number, required): Starting dividend yield in percent (4 = 4%).
- dividend_growth (number): Yearly dividend growth in percent. Default: 0.
- share_price_growth (number): Yearly share price growth in percent. Default: 0.
- monthly_contribution (number): Amount added every month. Default: 0.
- years (integer, required): Projection length in years.
- reinvest_dividends (boolean): Reinvest dividends (DRIP). Default: true.
### Down Payment Calculator
POST /api/tools/down-payment-calculator/execute
Return the down payment, closing costs, total cash needed, remaining amount to save, months to save, target month, loan amount, and estimated PMI for a home purchase, plus a comparison table for 5%, 10%, 15%, 20%, and 25% down. PMI is estimated at 1% of the loan per year when the down payment is below 20%.
Parameters:
- home_price (number, required): Purchase price of the home. Must be > 0.
- down_payment_percent (number): Down payment as a percent of the price (20 = 20%). Default: 20.
- current_savings (number): Cash already saved. Default: 0.
- monthly_savings (number): Amount saved every month. Default: 0.
- closing_cost_percent (number): Closing costs as a percent of the price. Default: 3.
- start_month (string): Month the saving starts, as YYYY-MM. Default: the current UTC month.
### Fire Calculator
POST /api/tools/fire-calculator/execute
Return the FIRE number (annual expenses / withdrawal rate), years to reach it, FIRE age, progress percent, monthly investment, and a year-by-year net worth projection for Traditional, Lean, Fat, Coast, or Barista FIRE. Growth uses the real return (expected return minus inflation); rates are yearly percentages.
Parameters:
- current_age (integer, required): Current age in years.
- current_net_worth (number): Invested net worth today. Default: 0.
- annual_expenses (number, required): Yearly spending. Must be > 0.
- annual_income (number): Yearly income. Default: 0.
- savings_rate (number): Percent of income saved. Default: 0.
- expected_return (number): Expected yearly return in percent. Default: 7.
- withdrawal_rate (number): Safe withdrawal rate in percent. Must be > 0. Default: 4.
- inflation_rate (number): Yearly inflation in percent. Default: 2.5.
- fire_type (string): FIRE variant. Default: traditional.
### Home Affordability Calculator
POST /api/tools/home-affordability-calculator/execute
Return the maximum home price you can afford from income, monthly debts, down payment percent, rate, term, property tax, insurance, HOA, and a debt-to-income ratio, with the monthly payment breakdown at that price. Rates are yearly percentages.
Parameters:
- annual_income (number, required): Gross yearly income. Must be > 0.
- monthly_debts (number): Other monthly debt payments. Default: 0.
- down_payment_percent (number): Down payment as a percent of the price. Must be < 100. Default: 20.
- interest_rate (number): Yearly mortgage rate in percent. Default: 6.5.
- loan_term_years (integer): Loan term in years. Default: 30.
- property_tax_rate (number): Yearly property tax as a percent of the price. Default: 1.2.
- insurance_annual (number): Yearly home insurance. Default: 1500.
- hoa_monthly (number): Monthly HOA dues. Default: 0.
- dti_ratio (number): Debt-to-income ratio in percent (28, 36, or 43 are common). Default: 36.
### Inflation Calculator
POST /api/tools/inflation-calculator/execute
Return what an amount of money from one year is worth in another year using historical CPI data, with total inflation, average yearly inflation, and the change in purchasing power (all in percent). USD covers 1913-2025 (BLS); TRY covers 2003-2025 (TÜİK).
Parameters:
- amount (number, required): Amount of money in the from_year.
- from_year (integer, required): Start year.
- to_year (integer, required): End year. May be earlier than from_year.
- currency (string): CPI series: USD or TRY. Default: USD.
### Investment Calculator
POST /api/tools/investment-calculator/execute
Return the projected value of an investment with compound growth and monthly contributions: final balance, total contributions, total interest, an effective yearly growth rate, and a year-by-year table. Return is a yearly percentage; contributions are added at the start or the end of each month.
Parameters:
- initial_investment (number): Starting amount. Default: 0.
- monthly_contribution (number): Amount added every month. Default: 0.
- annual_return (number, required): Expected yearly return in percent (7 = 7%).
- years (integer, required): Investment length in years.
- compound_frequency (string): How often returns compound. Default: monthly.
- contribution_timing (string): Add the contribution at the beginning or the end of each month. Default: end.
### Kktc Exchange Rates
POST /api/tools/kktc-exchange-rates/execute
Return live buy and sell exchange rates (against Turkish lira) from Northern Cyprus (KKTC) exchange offices and banks, per currency, with the best buy and best sell office. Optionally filter to one currency code.
Parameters:
- currency (string): Optional ISO currency code to filter, e.g. "GBP", "USD", "EUR". Omit for all currencies.
### Loan Calculator
POST /api/tools/loan-calculate/execute
Amortise a fixed-rate loan and show the impact of an optional monthly extra payment on payoff time and total interest.
Parameters:
- principal (number, required): Loan balance.
- annual_rate (number, required): Annual interest rate as a decimal.
- years (number, required): Contract length in years.
- extra_payment (number): Optional monthly extra paid on top of the standard payment.
### Mortgage Calculator
POST /api/tools/mortgage-calculate/execute
Compute a fixed-rate mortgage monthly payment using the standard amortisation formula M = P·r(1+r)^n / ((1+r)^n - 1). Assumes monthly compounding.
Parameters:
- principal (number, required): Loan amount.
- annual_rate (number, required): Annual interest rate as a decimal (0.065 = 6.5%).
- years (number, required): Loan term in years.
### Net Worth Calculator
POST /api/tools/net-worth-calculator/execute
Parameters:
- assets (object)
- liabilities (object)
### Profit Margin Calculator
POST /api/tools/profit-margin-calculator/execute
Return cost, selling price, profit, profit margin (percent of price), and markup (percent of cost). Mode cost_price takes cost and selling_price; mode margin takes cost and a target margin; mode markup takes cost and a target markup.
Parameters:
- mode (string): What you know: cost_price, margin, or markup. Default: cost_price.
- cost (number, required): Cost of the item. Must be > 0.
- selling_price (number): Selling price (mode cost_price). Must be > 0.
- margin (number): Target profit margin in percent (mode margin). Must be > 0 and < 100.
- markup (number): Target markup in percent (mode markup). Must be > 0.
### Refinance Calculator
POST /api/tools/refinance-calculator/execute
Return the new monthly payment, monthly savings, total cost of the current vs the new loan, total savings, break-even month, and whether a mortgage refinance is worth it. Closing costs are added to the new loan balance. Rates are yearly percentages. Give current_monthly_payment, or give current_rate and it is computed from the balance and the remaining months.
Parameters:
- current_balance (number, required): Remaining balance on the current loan. Must be > 0.
- current_monthly_payment (number): Current monthly payment. Optional when current_rate is given.
- current_rate (number): Current yearly rate in percent. Used only to compute a missing current_monthly_payment.
- remaining_months (integer, required): Months left on the current loan.
- new_rate (number, required): New yearly rate in percent.
- new_term_months (integer, required): New loan term in months (360 = 30 years).
- closing_costs (number): Refinance closing costs. Default: 0.
### Retirement Calculator
POST /api/tools/retirement-calculator/execute
Return the projected savings at retirement, the amount needed to fund an inflation-adjusted monthly income until life expectancy, the gap or surplus, whether you are on track, the extra monthly saving needed, and the 4%-rule sustainable monthly withdrawal. Rates are yearly percentages.
Parameters:
- current_age (integer, required): Current age in years.
- retirement_age (integer, required): Planned retirement age. Must be greater than current_age.
- current_savings (number): Retirement savings today. Default: 0.
- monthly_contribution (number): Amount saved every month. Default: 0.
- expected_return (number): Expected yearly return in percent. Default: 7.
- inflation_rate (number): Yearly inflation in percent. Default: 3.
- desired_monthly_income (number, required)
- life_expectancy (integer): Age the money must last to. Must be greater than retirement_age. Default: 90.
### Roi Calculator
POST /api/tools/roi-calculator/execute
Return the return on investment: total invested (amount plus extra costs), net gain, simple ROI percent, annualized ROI percent, years to double at that rate (rule of 72), gain per year, and the percentage gain on the base amount alone.
Parameters:
- investment_amount (number, required): Amount invested. Must be > 0.
- final_value (number, required): Value of the investment at the end.
- investment_years (number): Holding period in years. Must be > 0. Default: 1.
- additional_costs (number): Fees, taxes, or other costs added to the investment. Default: 0.
### Salary Calculator
POST /api/tools/salary-calculator/execute
Return the same pay expressed as hourly, daily, weekly, bi-weekly, semi-monthly, monthly, and yearly amounts. Assumes 52 weeks and 260 working days a year; the hourly figure uses hours_per_week.
Parameters:
- amount (number, required): Pay amount for the given pay_period. Must be > 0.
- pay_period (string): Period the amount is paid for. Default: annual.
- hours_per_week (number): Working hours per week. Must be > 0. Default: 40.
### Savings Calculator
POST /api/tools/savings-calculator/execute
Return the future value of savings with compound interest and monthly contributions: total value, total contributions, total interest, and a year-by-year table of balance, cumulative contributions, and interest earned that year. Rate is a yearly percentage.
Parameters:
- initial_deposit (number): Starting balance. Default: 0.
- monthly_contribution (number): Amount added every month. Default: 0.
- interest_rate (number, required): Yearly interest rate in percent (5 = 5%).
- years (integer, required): Saving period in years.
- compound_frequency (integer): Times per year the deposit compounds: 1, 2, 4, 12, or 365. Default: 12.
### Self Employment Tax Calculator
POST /api/tools/self-employment-tax-calculator/execute
Return the yearly self-employment tax bill for the USA (SE tax: Social Security, Medicare, additional Medicare, plus federal income tax), Türkiye (Bağ-Kur premium plus income tax), or KKTC (social security plus income tax after the personal allowance), with taxable income, quarterly payment, effective rate, and net income after tax. Tax years 2024 and 2025.
Parameters:
- country (string): Tax system: usa, turkey, or kktc. Default: turkey.
- tax_year (string): Tax year. Default: 2025.
- gross_income (number, required): Gross self-employment income for the year.
- business_expenses (number): Deductible business expenses. Default: 0.
- filing_status (string): USA only. Default: single.
- other_income (number): USA only: other taxable income (W-2, interest). Default: 0.
- use_standard_deduction (boolean): USA only: use the standard deduction. Default: true.
- itemized_deductions (number): USA only: itemized deductions when not using the standard one; the larger of the two is applied. Default: 0.
- bagkur_tier (string): Türkiye only: minimum declared base, or custom. Default: minimum.
- bagkur_has_discount (boolean): Türkiye only: 5-point discount for regular payers (29.5% instead of 34.5%). Default: true.
- custom_bagkur_base (number): Türkiye only: monthly declared base when bagkur_tier is custom; clamped to the legal range.
### Travel Budget Calculator
POST /api/tools/travel-budget-calculator/execute
Estimate a trip budget from per-day and one-off expenses: total per person, total for all travelers, daily spend, and a per-category breakdown with percentages. When expenses is omitted, a default set (flights 500, accommodation 100/day, transport 30/day, food 60/day, activities 40/day, shopping 100, misc 50) is used.
Parameters:
- trip_days (integer, required): Trip length in days (1-3650).
- travelers (integer): Number of travelers (1-1000). Default 1.
- currency (string): Currency code echoed back in the result (e.g. USD). Default USD.
- expenses (array): Expense categories per person. Each item: { name: string, amount: number, per_day?: boolean }. per_day=true multiplies the amount by trip_days.
- items (object): One expense: name, amount, per_day (optional, default false).
### Vat Calculator
POST /api/tools/vat-calculator/execute
Return the net amount, the VAT (or sales tax) amount, and the gross amount for a price. Mode add treats the amount as net and adds tax; modes remove and extract treat the amount as gross and take the tax out.
Parameters:
- amount (number, required): The price. Net for mode add; gross for modes remove and extract.
- vat_rate (number, required): Tax rate in percent (20 = 20%).
- mode (string): add, remove, or extract. Default: add.
## Generators Tools
### Barcode Generator
POST /api/tools/barcode-generator/execute
Generate a 1D barcode as an SVG string from text. CODE128 takes any printable ASCII, CODE39 takes A-Z, 0-9, space and -.$/+%. EAN13, EAN8 and UPC (UPC-A) take digits: give 12, 7 or 11 digits and the GS1 check digit is appended, or the full code and it is verified. Returns the SVG, the bar/space bit pattern, the printed text, and the image size.
Parameters:
- text (string, required): Text to encode (1-80 characters).
- type (string): Barcode type. Default "CODE128".
- bar_width (integer): Width of one module in pixels (1-10). Default 2.
- height (integer): Bar height in pixels (20-500). Default 100.
- show_text (boolean): Print the text under the bars. Default true.
### Box Shadow Generator
POST /api/tools/box-shadow-generator/execute
Generate a CSS box-shadow declaration from offset, blur, spread, colour, opacity, and inset settings, or from a named preset (subtle, soft, medium, large, xl, inner, glow, hard). Returns the full "box-shadow: ...;" rule, the bare value, the rgba colour, and the resolved settings.
Parameters:
- preset (string): Start from a preset. Any other argument overrides the preset value.
- horizontal (number): Horizontal offset in px (-200 to 200). Default 0.
- vertical (number): Vertical offset in px (-200 to 200). Default 10.
- blur (number): Blur radius in px (0 to 300). Default 15.
- spread (number): Spread radius in px (-200 to 200). Default -3.
- color (string): Shadow colour as a hex string (#rrggbb or #rgb). Default #000000.
- opacity (number): Shadow opacity in percent (0 to 100). Default 15.
- inset (boolean): Inner shadow when true. Default false.
### Caption Generator
POST /api/tools/caption-generator/execute
Generate a social-media caption from a topic using built-in templates (no AI): picks a template for the content type and tone, fills in the topic, and optionally appends a call to action and up to 8 hashtags. Returns the caption, its length, and the platform limit.
Parameters:
- topic (string): What the post is about. Default "this moment".
- content_type (string): Content category. Default "lifestyle".
- tone (string): Voice of the caption. Default "casual". Falls back to casual, then lifestyle/casual, when no template exists.
- platform (string): Target platform, sets the character limit. Default "instagram".
- keywords (string): Comma-separated keywords turned into extra hashtags.
- include_hashtags (boolean): Append hashtags. Default true.
- include_emojis (boolean): Keep emojis in the caption. Default true.
- include_cta (boolean): Append a call to action. Default true.
### Color Palette Generator
POST /api/tools/color-palette-generator/execute
Generate a harmonious colour palette from a base hex colour: complementary, analogous, triadic, tetradic, split-complementary, or monochromatic. Returns the hex list, per-colour rgb/hsl swatches with a readable text colour, and a CSS custom-properties block.
Parameters:
- base_color (string, required): Base colour as a hex string (#rrggbb or #rgb), e.g. #3b82f6.
- palette_type (string): Colour harmony to generate.
### Css Animation Generator
POST /api/tools/css-animation-generator/execute
Return CSS @keyframes animation code (or Tailwind config, Web Animations API / React, or Framer Motion code) from a named preset such as fade-in, bounce, pulse, shake, spin, or from custom keyframes with transform, opacity, filter and color properties.
Parameters:
- preset (string): Built-in animation preset. Ignored when keyframes is given.
- keyframes (array): Custom keyframes: [{ offset: 0-100, properties: { translateX, translateY, rotate, scale, scaleX, scaleY, skewX, skewY, opacity, blur, brightness, contrast, saturate, hueRotate, borderRadius, backgroundColor, color } }].
- items (object): One keyframe.
- name (string): Animation / class name (CSS identifier).
- duration (number): Duration in milliseconds.
- timing_function (string): Easing: a CSS timing function, a cubic-bezier(...) or a preset name such as "ease-out-back", "bounce", "spring".
- iteration_count (string): Number of iterations or "infinite".
- direction (string): Animation direction.
- fill_mode (string): Animation fill mode.
- delay (number): Start delay in milliseconds.
- format (string): Output format. "all" returns every format.
### Email Signature Generator
POST /api/tools/email-signature-generator/execute
Generate an HTML email signature (table-based, inline styles, safe for Gmail/Outlook) from name, title, company, contact details and social links. Returns the HTML in a horizontal, vertical, or compact layout.
Parameters:
- full_name (string): Full name. Shows "Your Name" when empty.
- job_title (string): Job title.
- company (string): Company name.
- email (string): Email address (rendered as a mailto: link).
- phone (string): Phone number.
- website (string): Website URL.
- linkedin (string): LinkedIn profile URL.
- twitter (string): Twitter/X profile URL.
- image_url (string): Profile photo URL (round avatar).
- layout (string): Signature layout. Default "horizontal".
- primary_color (string): Accent colour as #rrggbb. Default "#2563eb".
- font_family (string): Font stack. Default "arial".
### Glassmorphism Generator
POST /api/tools/glassmorphism-generator/execute
Generate the CSS for a glassmorphism (frosted glass) card: semi-transparent background, backdrop-filter blur and saturation (with the -webkit- prefix), border radius, and a lighter border. Returns the multi-line CSS block, each property, and the resolved settings. Presets: subtle, frosted, bold, dark.
Parameters:
- preset (string): Start from a preset. Any other argument overrides the preset value.
- blur (number): Backdrop blur in px (0 to 100). Default 10.
- transparency (number): Background opacity in percent (0 to 100). Default 20.
- saturation (number): Backdrop saturation in percent (0 to 300). Default 100.
- border_radius (number): Border radius in px (0 to 200). Default 16.
- border_width (number): Border width in px (0 to 20). Default 1.
- color (string): Glass tint as a hex colour (#rrggbb or #rgb). Default #ffffff.
### Gradient Generator
POST /api/tools/gradient-generator/execute
Generate a CSS linear, radial, or conic gradient from colour stops (2 to 10) and an angle, or from a preset (sunset, ocean, forest, fire, purple, cool). Returns the "background: ...;" rule, the bare gradient value, and the sorted colour stops.
Parameters:
- type (string): Gradient type.
- angle (number): Angle in degrees (0-360) for linear and conic gradients. Default 90.
- color_stops (array): Colour stops, 2 to 10 items: { color: "#rrggbb", position: 0-100 }. Default: #667eea at 0%, #764ba2 at 100%.
- items (object): One stop with a hex colour and a percent position.
- preset (string): Use a preset palette instead of color_stops (evenly spaced stops).
- radial_shape (string): Radial only: shape.
- radial_position (string): Radial only: position keyword or lengths, e.g. "center", "top left", "50% 50%". Default "center".
### Hashtag Generator
POST /api/tools/hashtag-generator/execute
Generate relevant hashtags from keywords using a built-in, rule-based database (no AI): matches keywords against topic categories, scores popular and niche tags, adds compound and suffix variants, and caps the list at the platform limit (Instagram 30, Twitter 5, TikTok 20, LinkedIn 10, YouTube 15). Returns the hashtags, a space-joined string, and the tags grouped by source.
Parameters:
- keywords (string, required): Comma- or space-separated keywords, e.g. "travel photography sunset".
- platform (string): Target platform, sets the maximum count. Default "instagram".
- type (string): Tag mix: "mixed", "popular" (high volume) or "niche" (low competition). Default "mixed".
### Json To Chart
POST /api/tools/json-to-chart/execute
Render a bar, line, or pie chart as an SVG string from JSON data of the form {"title","type","data":[{"label","value","color?"}]}. Returns the SVG, the normalised data points with colours and percentages, the total, and the maximum value.
Parameters:
- json (string, required): Chart JSON: {"title"?: string, "type"?: "bar"|"line"|"pie", "data": [{"label": string, "value": number, "color"?: "#hex"}], "xAxisLabel"?, "yAxisLabel"?}.
- type (string): Override the chart type from the JSON. Default: the JSON "type", else "bar".
### Json To Email Template
POST /api/tools/json-to-email-template/execute
Generate a responsive, table-based HTML email (header, greeting, body paragraphs, button, footer, unsubscribe link) from JSON such as {"title","body":["..."],"button":{"text","url"},"companyName"}. Returns the full HTML document.
Parameters:
- json (string, required): Email JSON: {"title": string, "body": string[], "subject"?, "preheader"?, "logo"?, "headerColor"?, "greeting"?, "button"?: {"text","url","color"?}, "footer"?, "unsubscribe"?, "companyName"?, "companyAddress"?}.
### Json To Org Chart
POST /api/tools/json-to-org-chart/execute
Generate nested HTML for an organisation chart from JSON of the form {"title","root":{"name","title","avatar","children":[...]}}. Returns the HTML (div.org-chart with .org-node/.node-card/.node-children classes), the node count, and the depth.
Parameters:
- json (string, required): Org chart JSON: {"title"?: string, "root": {"name": string, "title"?: string, "avatar"?: url, "children"?: [node, ...]}}.
### Json To Pricing Table
POST /api/tools/json-to-pricing-table/execute
Generate the HTML for a pricing table (div.pricing-container with .pricing-card/.plan-features classes) from JSON of the form {"title","currency","plans":[{"name","price","period","features":[...],"cta","highlighted","badge"}]}. Returns the HTML plus a summary of each plan.
Parameters:
- json (string, required): Pricing JSON: {"title"?: string, "currency"?: string (default "$"), "plans": [{"name": string, "price": number|string, "period"?, "description"?, "features": string[], "cta"?, "highlighted"?: boolean, "badge"?}]}.
### Json To Product Card
POST /api/tools/json-to-product-card/execute
Generate an e-commerce product card from JSON such as {"name","price","originalPrice","currency","rating","reviews","badges"} in one of 6 templates. Returns the card three ways: inline-style HTML, Tailwind CSS markup, and a React JSX component.
Parameters:
- json (string, required): Product JSON: {"name": string, "price": number, "originalPrice"?: number, "currency"?: string, "image"?: url, "rating"?: 0-5, "reviews"?: number, "description"?: string, "badges"?: string[], "inStock"?: boolean, "category"?: string}.
- template (string): Card template. Default "classic".
### Json To Profile Card
POST /api/tools/json-to-profile-card/execute
Generate a profile card for team pages and portfolios from JSON such as {"name","title","company","location","email","bio","skills","social":{"twitter","github"}} in one of 6 templates. Returns the card three ways: inline-style HTML, Tailwind CSS markup, and a React JSX component.
Parameters:
- json (string, required): Profile JSON: {"name": string, "title"?, "company"?, "location"?, "email"?, "avatar"?: url, "bio"?, "skills"?: string[], "social"?: {"twitter"?, "linkedin"?, "github"?, "website"?}, "coverColor"?: "#hex"}.
- template (string): Card template. Default "classic".
### Json To Readme
POST /api/tools/json-to-readme/execute
Generate a README.md (title, shields.io badges, description, demo/docs links, features, installation, usage, contributing, author, license) from JSON such as {"name","description","features":[...],"installation":[...],"license":"MIT"}. Returns the Markdown and the list of sections included.
Parameters:
- json (string, required): README JSON: {"name": string, "description": string, "badges"?: [{"label","message","color"?}], "logo"?, "installation"?: string[], "usage"?, "features"?: string[], "contributing"?, "license"?, "author"?: {"name","github"?,"twitter"?,"website"?}, "demo"?, "documentation"?}.
### Json To Social Card
POST /api/tools/json-to-social-card/execute
Generate a social-media / Open Graph card (1200x630 aspect) from JSON such as {"title","description","author","date","siteName","tag","background","textColor"} in one of 6 templates. Returns the card three ways: inline-style HTML, Tailwind CSS markup, and a React JSX component.
Parameters:
- json (string, required): Card JSON: {"title": string, "description"?, "author"?, "avatar"?: url, "date"?, "siteName"?, "logo"?: url, "background"?: css color, "textColor"?: css color, "tag"?}.
- template (string): Card template. Default "og-classic".
### Json To Testimonial Card
POST /api/tools/json-to-testimonial-card/execute
Generate a testimonial / review card from JSON such as {"quote","author","title","company","rating","date","highlighted"} in one of 6 templates. Returns the card three ways: inline-style HTML, Tailwind CSS markup, and a React JSX component.
Parameters:
- json (string, required): Testimonial JSON: {"quote": string, "author": string, "title"?, "company"?, "avatar"?: url, "rating"?: integer 0-5, "date"?, "highlighted"?: boolean}.
- template (string): Card template. Default "classic".
### Json To Timeline
POST /api/tools/json-to-timeline/execute
Generate the HTML for a timeline (div.timeline with .timeline-event/.event-marker/.event-content classes) from JSON of the form {"title","orientation","events":[{"date","title","description","color"}]}. Returns the HTML, the orientation, and a summary of each event.
Parameters:
- json (string, required): Timeline JSON: {"title"?: string, "orientation"?: "vertical"|"horizontal", "events": [{"date": string, "title": string, "description"?, "color"?: "#hex"}]}.
- orientation (string): Override the orientation from the JSON. Default: the JSON "orientation", else "vertical".
### Linkedin Post Generator
POST /api/tools/linkedin-post-generator/execute
Assemble a LinkedIn post from a hook, a body, a call to action and hashtags, or from one of seven built-in templates (thought leadership, story, tips, announcement, question, celebration, insight). Returns the post text, its length against the 3,000-character limit, and any template placeholders left unfilled. No AI is used.
Parameters:
- post_type (string): Template family. Default "thought-leadership". Only used when use_template is true.
- hook (string): Opening line that appears in the feed preview.
- body (string): Main content. Use short paragraphs.
- cta (string): Call to action at the end of the post.
- hashtags (string): Hashtags placed after the call to action, e.g. "#RemoteWork #Career".
- include_line_breaks (boolean): Separate the sections with a blank line (true) or a single newline (false). Default true.
- use_template (boolean): Fill any empty hook, body or cta from the post_type template. Default false.
- template_values (object): Values for template placeholders, e.g. {"topic": "remote work", "years": "5"}. Unknown placeholders stay as {name}.
### Lorem Ipsum Generator
POST /api/tools/lorem-ipsum-generate/execute
Generate Lorem Ipsum placeholder text: words, sentences, or paragraphs.
Parameters:
- type (string): Unit to produce. Defaults to "paragraphs".
- count (integer): How many units (1-100). Defaults to 3.
- start_with_lorem (boolean): Begin with the classic "Lorem ipsum dolor sit amet". Defaults to true; false starts further into the text.
### Math Formula Templates
POST /api/tools/math-formula-templates/execute
Return LaTeX source for well-known math and physics formulas from the built-in template library of the math expression generator page (40+ formulas across algebra, calculus, trigonometry, linear algebra, statistics, physics, and Greek symbols). Filter by category or by a search term over names and LaTeX. This tool returns LaTeX strings only; it does not render them.
Parameters:
- category (string): Return only this category. Default: every category.
- search (string): Case-insensitive text to match in the formula name or its LaTeX, e.g. "integral" or "\\sum".
### Placeholder Image Generator
POST /api/tools/placeholder-image-generator/execute
Generate a placeholder image as an SVG string: a solid background with centred bold text (the dimensions by default, or custom text) and a thin border. Returns the SVG, a data: URL for it, and the computed font size. Sizes up to 4000x4000; the page\'s presets are available by name.
Parameters:
- width (integer): Image width in pixels (1-4000). Default 800.
- height (integer): Image height in pixels (1-4000). Default 600.
- preset (string): A named size preset. When given, it replaces width and height.
- bg_color (string): Background colour as #rgb or #rrggbb. Default "#e2e8f0".
- text_color (string): Text and border colour as #rgb or #rrggbb. Default "#64748b".
- text (string): Custom text. Default: " × ".
### Random Name Picker
POST /api/tools/random-name-picker/execute
Pick a random winner from a list of names. Returns the winner, every pick in order, and the names left in the pool. Duplicate and blank names are dropped first. Uses cryptographic randomness.
Parameters:
- names (array, required): Names to pick from (array of strings, or one newline-separated string). Duplicates are ignored.
- count (integer): How many picks to make (1-1000). Default 1. The first pick is the winner.
- remove_after_pick (boolean): Remove a name from the pool after it is picked (no repeats). Default false.
### Random Picker
POST /api/tools/random-picker/execute
Generate random numbers, pick random items from a list, or split people into random teams. Returns the numbers, the picks, or the teams, plus a ready-to-paste text. Uses cryptographic randomness. Mode "number": min/max/count/allow_duplicates. Mode "list": items (array of strings) and pick_count (no repeats; count is accepted as an alias). Mode "teams": members (array of strings) and team_count (round-robin after a shuffle).
Parameters:
- mode (string): What to randomise: "number", "list", or "teams". Default "number".
- min (integer): Number mode: smallest value (inclusive). Default 1.
- max (integer): Number mode: largest value (inclusive). Default 100.
- count (integer): Number mode: how many numbers (1-10000). Default 1. Without duplicates, a count above the range returns every number in the range, shuffled. In list mode, count is read as pick_count when pick_count is absent.
- allow_duplicates (boolean): Number mode: allow the same number twice. Default false.
- items (array): List mode: items to pick from, as an array of strings (one item per element).
- pick_count (integer): List mode: how many items to pick without repeats (1-10000). Default 1. count is accepted as an alias.
- members (array): Teams mode: people to split, as an array of strings (one name per element).
- team_count (integer): Teams mode: number of teams (2-20). Default 2.
### Signature Generator
POST /api/tools/signature-generator/execute
Generate a typed signature as an SVG string: the name is set in a handwriting font (cursive, elegant, bold, or casual) in the chosen colour on a 600x200 white canvas. Returns the SVG plus the font family used.
Parameters:
- name (string, required): The name to sign (1-80 characters).
- style (string): Handwriting style. Default "cursive".
- color (string): Ink colour as #rgb or #rrggbb. Default "#000000".
### Social Media Bio Generator
POST /api/tools/social-media-bio-generator/execute
Compose a social-media profile bio from a profession, skills, an achievement, a location and a call to action in one of five styles (professional, creative, minimalist, fun, inspirational). Returns the bio, its lines, and its length against the platform limit (Instagram 150, Twitter 160, TikTok 80, LinkedIn 220, YouTube 1000). Template-based, no AI.
Parameters:
- platform (string): Target platform; sets the character limit and the separator (Twitter joins with " | ", others with a newline). Default "instagram".
- style (string): Bio style. Default "professional". Note: "minimalist" omits the achievement and "inspirational" omits the location, like the page.
- profession (string): Job title or role, e.g. "Software Developer".
- skills (string): Skills or niche, e.g. "Web technologies & UI/UX".
- achievement (string): A notable achievement, e.g. "Helped 10K+ followers".
- cta (string): Call to action, e.g. "DM for collabs".
- location (string): City or country.
- include_emojis (boolean): Prefix lines with emojis. Default true.
### Svg Animation Generator
POST /api/tools/svg-animation-generator/execute
Return an animated SVG (inline CSS @keyframes) and/or the CSS alone, built from a shape template (rect, circle, star, stick figure, sun…) or custom SVG elements, plus animations from a preset (bounce, pulse, spin, fade, slide, squash-stretch, color-shift, float) or custom keyframes.
Parameters:
- shape (string): Shape template to start from. Ignored when elements is given.
- elements (array): Custom elements: [{ id?, type: rect|circle|ellipse|line|path|text, attrs: { x, y, width, height, cx, cy, r, d, fill, stroke, textContent, … } }].
- preset (string): Animation preset applied to the first element. Ignored when animations is given.
- animations (array): Custom animations: [{ element_id, property (x, y, cx, cy, r, opacity, rotate, translateX, translateY, scale, fill, stroke, …), keyframes: [{ offset: 0-100, value }], duration (ms), easing, iteration_count, direction: normal|alternate }].
- view_box (string): SVG viewBox.
- background (string): Background color (CSS color).
- output (string): What to return.
### Thread Generator
POST /api/tools/thread-generator/execute
Build a numbered Twitter/X thread from a list of tweets, or split long-form text into tweets of at most 280 characters. Returns each tweet with its character count and limit flag, plus the full thread text numbered "1/N" and separated by "---", exactly as the page copies it.
Parameters:
- tweets (array): The tweets in order (1-100 strings). Blank entries are dropped. Give tweets or text, not both.
- text (string): Long-form text to split into tweets at paragraph, sentence and word boundaries. Give text or tweets, not both.
- thread_type (string): Thread style label, returned as-is. Default "educational".
- topic (string): What the thread is about. Returned as-is.
- max_length (integer): Character limit per tweet (50-4000). Default 280.
- number_tweets (boolean): Prefix each tweet in the joined text with "i/N" on its own line. Default true.
### UUID Generator
POST /api/tools/uuid-generate/execute
Generate one or more UUIDs: random v4 (default), time-ordered v7 (RFC 9562), time-based v1 (RFC 4122, with a random node id rather than a MAC address), or the nil UUID. The same four versions the web page offers.
Parameters:
- count (integer): How many UUIDs to generate (1-100). Defaults to 1.
- version (string): UUID version: v4 (random), v7 (Unix millisecond timestamp + random, sortable), v1 (100-nanosecond timestamp + clock sequence + random multicast node id), or nil (all zeros). Defaults to v4.
- uppercase (boolean): Return the UUIDs in uppercase. Defaults to false.
### Vcard Generate
POST /api/tools/vcard-generate/execute
Generate a vCard (.vcf) contact card from name, organisation, emails, phones, address, URL, note and birthday. vCard 3.0 by default (imports into iOS Contacts, Google Contacts and Outlook), 4.0 on request. Values are escaped and long lines folded per RFC 6350.
Parameters:
- full_name (string, required): Display name (FN). Required.
- given_name (string): First name (N given part).
- family_name (string): Last name (N family part).
- organization (string): Company or organisation (ORG).
- title (string): Job title (TITLE).
- emails (array): Email addresses (EMAIL). The first is marked preferred.
- phones (array): Phone numbers (TEL), international format recommended. The first is marked preferred.
- street (string): Street address (ADR street part).
- city (string): City (ADR locality).
- region (string): State, province or region (ADR region).
- postal_code (string): Postal code (ADR).
- country (string): Country (ADR).
- url (string): Website (URL).
- note (string): Free text (NOTE).
- birthday (string): Birthday as YYYY-MM-DD (BDAY).
- version (string): vCard version. Defaults to 3.0.
### X402 Config Generator
POST /api/tools/x402-config-generator/execute
Get weather data
Parameters:
- role (string): Generate code for the seller (server) or the buyer (client).
- framework (string): Server framework (role=server).
- facilitator_url (string): x402 facilitator URL (role=server).
- routes (array): Paid routes (role=server): objects with path, method, price (e.g. "$0.001"), scheme (exact|upto), network (CAIP-2 id such as "eip155:8453"), pay_to (wallet address), description, mime_type.
- items (object): One paid route.
- enable_bazaar (boolean): Advertise routes in the x402 Bazaar discovery list (role=server).
- enable_payment_id (boolean): Attach a payment id to each settlement (role=server).
- client_type (string): Client library (role=client).
- networks (array): Networks the client can pay on (role=client).
- base_url (string): Base URL of the paid API (role=client).
### Youtube Description Generator
POST /api/tools/youtube-description-generator/execute
Assemble a structured YouTube video description from main content, timestamps, links, social links, a call to action and hashtags, with the section headings the page uses ("⏱️ Timestamps:", "🔗 Links & Resources:", "📱 Follow Me:"). Returns the description and its length against the 5,000-character limit. Template-based, no AI.
Parameters:
- title (string): Video title. Returned as-is; not part of the description text.
- category (string): Video category label, returned as-is. Default "tutorial".
- main_content (string): Opening summary of the video. Put the primary keyword in the first 150 characters.
- timestamps (string): Chapter list, one per line, e.g. "00:00 - Intro".
- links (string): Resource links, one per line.
- social_links (string): Social profile links, one per line.
- hashtags (string): Hashtags placed at the end, e.g. "#React #JavaScript".
- call_to_action (string): Closing line. When empty, the default like-and-subscribe line is used.
### Yoyo Component Generator
POST /api/tools/yoyo-component-generator/execute
Generate Yoyo PHP component boilerplate: the PHP class (properties, props, query string, listeners, lifecycle hooks, actions, computed properties) and the matching PHP, Blade, or Twig template. Anonymous components return only the template.
Parameters:
- name (string): Component name (converted to PascalCase). Default: "MyComponent".
- namespace (string): PHP namespace. Default: "App\\Yoyo".
- engine (string): Template engine. Default: "php".
- component_type (string): "dynamic" (class + template) or "anonymous" (template only). Default: "dynamic".
- properties (array): Public properties: [{ name, type: string|int|float|bool|array, default_value? }].
- use_props (boolean): Declare $props with every property name. Default: false.
- use_query_string (boolean): Declare $queryString with every property name. Default: false.
- actions (array): Action method names, e.g. ["increment", "decrement"].
- computed_props (array): Computed property names, e.g. ["doubleCount"].
- listeners (array): Event listeners: [{ event, handler }].
- hooks (array): Lifecycle hooks to stub: any of "initialize", "mount", "rendering", "rendered".
### Yoyo Config Generator
POST /api/tools/yoyo-config-generator/execute
Generate Yoyo PHP framework setup code: the composer install command, the bootstrap/service-provider code, the route handler, and a sample page. Supports PHP, Blade, and Twig template engines for vanilla PHP or Laravel.
Parameters:
- engine (string): Template engine. Default: "php".
- framework (string): "vanilla" PHP or "laravel". Default: "vanilla".
- url (string): Yoyo update endpoint URL. Default: "/yoyo".
- scripts_path (string): Path to Yoyo scripts. Default: "assets/js/".
- namespace (string): Component namespace. Default: "App\\Yoyo".
- views_dir (string): PHP engine: views directory. Default: "views/yoyo".
- blade_cache_path (string): Blade engine: compiled views cache path. Default: "cache/views".
- blade_components_dir (string): Blade engine: components directory. Default: "resources/views/yoyo".
- twig_templates_path (string): Twig engine: templates path. Default: "templates/yoyo".
- twig_cache_path (string): Twig engine: cache path. Default: "cache/twig".
- twig_debug (boolean): Twig engine: enable debug mode. Default: false.
## Media Tools
### Ass To Srt
POST /api/tools/ass-to-srt/execute
Flatten an Advanced SubStation Alpha (.ass) or SubStation Alpha (.ssa) subtitle script to plain SubRip (.srt). Reads the Dialogue lines of the [Events] section using the Format line for column order, converts H:MM:SS.cc centisecond timestamps to HH:MM:SS,mmm, strips every {\\...} override block, turns \\N into a line break, sorts cues by start time and renumbers them from 1. Styles, fonts, colours, positioning and drawing commands are discarded on purpose, because SubRip cannot carry them. Comment lines are ignored.
Parameters:
- input (string, required): The .ass or .ssa file contents.
- keep_empty (boolean): Keep cues whose text is empty once override tags are removed. Default: false, which drops them.
### Srt To Vtt
POST /api/tools/srt-to-vtt/execute
Convert SubRip (.srt) captions to WebVTT (.vtt) and back. The direction is detected from the input by default: SRT uses a comma before the milliseconds, WebVTT uses a dot and starts with a WEBVTT header. Timestamps are normalized to HH:MM:SS with three fraction digits, VTT cue settings are preserved, and NOTE and STYLE blocks are skipped. Only the format changes; the caption text is never translated or edited.
Parameters:
- input (string, required): Caption file contents, either SubRip or WebVTT.
- direction (string): Force a direction. Default: auto, detected from the input.
- keep_cue_numbers (boolean): Keep cue identifiers when writing WebVTT, where they are optional. Default: false.
### Subtitle Shift
POST /api/tools/subtitle-shift/execute
Shift every cue in a SubRip (.srt) or WebVTT (.vtt) caption file by one fixed offset, so a track that runs early or late lines up with the audio again. A positive offset delays the captions (they appear later); a negative one advances them. The output keeps the input format, cue text, order and WebVTT cue settings. A cue whose start would go below zero is held at zero and counted; a cue that would end before zero is dropped and counted. Timing only: nothing is stretched, translated or edited.
Parameters:
- input (string, required): Caption file contents, either SubRip or WebVTT.
- offset_ms (integer, required): Milliseconds to add to every timestamp. Positive shows captions later, negative earlier. 1500 means one and a half seconds later.
## Network Tools
### Cookie Analyzer
POST /api/tools/cookie-analyzer/execute
Analyze Set-Cookie header strings and return a per-cookie list of security issues, an overall 0-100 score, and recommendations. Checks Secure, HttpOnly, SameSite, expiry, path scope, sensitive names, and the __Secure-/__Host- prefix rules. One cookie per line; the "Set-Cookie:" prefix is optional.
Parameters:
- cookies (string, required): One or more cookie strings, one per line (e.g. "sessionid=abc; Secure; HttpOnly; SameSite=Lax"). A leading "Set-Cookie:" is stripped.
### Curl To Code
POST /api/tools/curl-to-code/execute
Returns source code that performs the same HTTP request as a cURL command, in JavaScript (fetch), Python (requests), PHP (cURL), Go (net/http), Ruby (net/http) or Node.js (https). Also returns the parsed request: method, URL, headers, body and basic auth. Parses -X, -H, -d/--data/--data-raw/--data-binary, -F/--form (name=value only; file fields are rejected), -u and the URL.
Parameters:
- curl_command (string, required): The cURL command, e.g. "curl -X POST https://api.example.com/users -H \'Content-Type: application/json\' -d \'{"a":1}\'". Line continuations (backslash-newline) are accepted. Simple -F name=value fields become multipart POST. File fields such as -F file=@photo.png are rejected.
- language (string): Target language. Default: "javascript".
### Dns Lookup
POST /api/tools/dns-lookup/execute
Return the DNS records of a domain for one record type (A, AAAA, CNAME, MX, TXT, NS or SOA). Resolved through the public Google DNS-over-HTTPS resolver.
Parameters:
- domain (string, required): Domain name to query, e.g. "example.com". A URL is accepted; only the hostname is used.
- record_type (string): DNS record type to look up.
### Dns Security Scanner
POST /api/tools/dns-security-scanner/execute
Return a DNS security report for a domain: SPF, DMARC, MX and CAA records with issues, a 0-100 score, a letter grade and recommendations. Records are resolved through Cloudflare DNS-over-HTTPS.
Parameters:
- domain (string, required): Domain to scan, e.g. "example.com". A URL is accepted; only the hostname is used.
### Email Security Checker
POST /api/tools/email-security-checker/execute
Return an email-security report for the domain of an email address: MX, SPF, DKIM (common selectors), DMARC, MTA-STS, TLS-RPT and BIMI checks with a 0-100 score and recommendations. Records are resolved through Cloudflare DNS-over-HTTPS.
Parameters:
- email (string, required): Email address (e.g. "name@example.com") or a bare domain ("example.com").
### Har To Curl
POST /api/tools/har-to-curl/execute
Convert a HAR (HTTP Archive) file into curl commands, one per recorded request, and return them as a script plus a per-request list. Each command carries the method, URL, request headers (pseudo-headers, Host, Connection, and Content-Length are skipped), optional cookies, and the request body. Output uses short flags by default; long_form switches to --request, --header, --cookie, --data.
Parameters:
- har (string, required): HAR 1.x JSON text as exported by browser DevTools (an object with log.entries).
- include_headers (boolean): Emit -H for each request header. Default: true.
- include_cookies (boolean): Emit -b with the request cookies. Default: false.
- long_form (boolean): Use long flags (--request, --header, --cookie, --data). Default: false.
### Har Viewer
POST /api/tools/har-viewer/execute
Parse HAR 1.x JSON and return each entry’s method, URL, status, size, time, and MIME type. Request bodies, cookies, and headers are omitted. Convert a HAR to curl with har_to_curl.
Parameters:
- har (string, required): HAR 1.x JSON text (DevTools export with log.entries).
### Http Status Code Lookup
POST /api/tools/http-status-code-lookup/execute
Return the meaning, typical use case and fix for HTTP status codes. Look up one code (e.g. "404"), a class ("4xx"), or search by name or keyword ("too many requests"); filter by category.
Parameters:
- query (string): Status code, class or keyword, e.g. "404", "5xx", "rate limit". Empty returns the whole table.
- category (string): Limit results to one class.
- limit (integer): Maximum number of results (1-100).
### Ip Address Lookup
POST /api/tools/ip-address-lookup/execute
Return geolocation and network details for a public IPv4 or IPv6 address: country, region, city, postal code, coordinates, timezone, ASN and organization, currency and calling code.
Parameters:
- ip (string, required): Public IPv4 or IPv6 address, e.g. "8.8.8.8" or "2606:4700::1111".
### Ip Blacklist Checker
POST /api/tools/ip-blacklist-checker/execute
Return whether an IPv4 address is listed on 12 well-known DNS blacklists (Spamhaus, Barracuda, SpamCop, SORBS, UCEPROTECT, PSBL and more), with listed, clean and failed counts. Lookups use Google DNS-over-HTTPS.
Parameters:
- ip (string, required): Public IPv4 address to check, e.g. "203.0.113.5". DNSBLs only support IPv4.
### Mime Type Finder
POST /api/tools/mime-type-finder/execute
Return MIME types with their file extensions and descriptions. Search by extension (".png" or "png"), by MIME type ("application/json") or by keyword ("spreadsheet"); filter by category.
Parameters:
- query (string): Extension, MIME type or keyword. Empty returns the whole table.
- category (string): Limit results to one category.
- limit (integer): Maximum number of results (1-200).
### Port Reference Guide
POST /api/tools/port-reference-guide/execute
Return well-known network ports that match a port number, service name, protocol, or category, with a security note (safe / caution / insecure) for each. Call with no filters to list every port in the reference table.
Parameters:
- query (string): Free-text search over port number, service, description, and category, e.g. "ssh", "443", "database".
- port (integer): Exact port number to look up (0-65535).
- protocol (string): Restrict to one transport protocol.
- category (string): Restrict to one category.
- limit (integer)
### Postman To Curl
POST /api/tools/postman-to-curl/execute
Convert a Postman collection (v2.x JSON) into curl commands, one per request, and return them as a script plus a per-request list. Folders are walked recursively; a single request object is accepted too. Each command carries the method, resolved URL (raw or host/path/query), enabled headers, bearer or basic auth, and raw, urlencoded, or form-data bodies. Output uses short flags by default; long_form switches to --request, --header, --user, --data, --form.
Parameters:
- collection (string, required): Postman collection JSON text (export format v2.0 or v2.1), or a single request object.
- include_headers (boolean): Emit -H for each enabled header. Default: true.
- long_form (boolean): Use long flags (--request, --header, --user, --data, --form). Default: false.
### Security Headers Analyzer
POST /api/tools/security-headers-analyzer/execute
Controls which resources the browser is allowed to load, preventing XSS attacks
Parameters:
- headers (object, required): Response headers as an object of header name → value (case-insensitive), e.g. {"content-security-policy": "default-src \'self\'"}. A raw "Name: value" block string (one header per line, as copied from curl -I) is also accepted.
- url (string): Optional URL the headers came from. Echoed in the result only.
### Ssl Certificate Checker
POST /api/tools/ssl-certificate-checker/execute
Return the TLS certificate details of a public hostname: validity, issuer, subject, expiry and days remaining, protocol, key size, signature algorithm, serial, SHA-256 fingerprint and SANs. The scan can take a while; when status is "in_progress" call again after retry_after_seconds.
Parameters:
- domain (string, required): Hostname to check, e.g. "example.com". A URL is accepted; only the hostname is used.
### Subnet Calculator
POST /api/tools/subnet-calculator/execute
Return the full IPv4 subnet breakdown for an address: network and broadcast address, subnet mask, wildcard mask, binary mask, first and last usable host, total and usable host counts, IP class (A-E), and IP type (public, private, loopback, link-local, multicast, reserved). Accepts CIDR notation (192.168.1.0/24), a bare IP (defaults to /24), or an IP plus a dotted subnet mask.
Parameters:
- ip (string, required): IPv4 address, with or without a /prefix, e.g. "192.168.1.0/24" or "10.0.0.5". Without a prefix /24 is assumed unless mask is given.
- mask (string): Optional dotted subnet mask such as "255.255.255.0". When given it overrides the prefix in ip.
### Whois Lookup
POST /api/tools/whois-lookup/execute
Return WHOIS-style registration data for a domain from the public RDAP service: registrar, creation, update and expiry dates, EPP status codes, nameservers and DNSSEC state.
Parameters:
- domain (string, required): Registered domain name, e.g. "example.com". A URL is accepted; only the hostname is used.
## Productivity Tools
### Client Status Report Generator
POST /api/tools/client-status-report-generator/execute
Generate a client-facing project status report in Markdown and return it with its headline counts. Sections: header (client, period, report type, generated date), timeline status, budget spent vs total, an executive summary, completed work, in-progress items with percent complete, active blockers with severity, upcoming goals, and notes. Empty sections are omitted, exactly as the page\'s export does.
Parameters:
- project_name (string, required): Project name for the report title.
- client_name (string): Client name.
- period_start (string): Reporting period start, YYYY-MM-DD. Default: today (UTC).
- period_end (string): Reporting period end, YYYY-MM-DD. Default: today (UTC).
- report_type (string): Report cadence. Default "weekly".
- completed_items (array): Completed work: { title, description }.
- in_progress_items (array): Work in progress: { title, description, percent_complete (0-100) }.
- blockers (array): Blockers and risks: { title, description, severity (low|medium|high), status (open|mitigating|resolved) }. Resolved blockers are excluded from the report.
- goals (array): Goals for the next period, one string each.
- budget_spent (number): Budget spent so far. Shown only when show_budget is true and budget_total > 0.
- budget_total (number): Total budget.
- budget_currency (string): Currency code or symbol printed before the amounts. Default "USD".
- show_budget (boolean): Include the budget line. Default false.
- timeline_status (string): Timeline health. Default "on-track".
- show_timeline (boolean): Include the timeline status line. Default true.
- notes (string): Free-text notes appended under "Additional Notes".
- company_name (string): Your company name, printed under the title.
- generated_date (string): Date printed as "Generated", YYYY-MM-DD. Default: today (UTC).
### Csv To Ics
POST /api/tools/csv-to-ics/execute
Turn a CSV of events into an iCalendar (.ics) file that Google Calendar, Apple Calendar and Outlook import. Columns are matched by name: Subject or Title, Start Date, Start Time, End Date, End Time, All Day Event, Description, Location and a few aliases, so a Google Calendar or Outlook export maps with no configuration; column_map overrides any of them. Each row needs a title and a start. A row with no time, or All Day Event set, becomes an all-day event. Times are written as stated; an optional IANA time zone is stamped on them, UTC writes Z, and no zone writes floating time. Rows without a title or a readable start are skipped and listed. Recurrence is not inferred from text.
Parameters:
- input (string, required): CSV text with a header row.
- delimiter (string): Field separator. Default: detected from the header (comma, semicolon, tab or pipe).
- calendar_name (string): Written as X-WR-CALNAME so the calendar app shows it. Default: none.
- timezone (string): IANA zone such as Europe/Istanbul, stamped on every timed event as TZID. UTC writes a Z suffix. Default: none, so times float and the importing calendar reads them in its own zone. A Time Zone column overrides it per row.
- date_format (string): How to read a date like 03/04/2026. auto (default): month-first unless a part is above 12. ISO dates are always read as-is.
- default_duration_minutes (integer)
- column_map (object): Header name per field when the automatic match is wrong: summary, start, start_time, end, end_time, all_day, description, location, private, uid, url, categories, timezone.
### Dev Request Prioritizer
POST /api/tools/dev-request-prioritizer/execute
Prioritize development requests with the page\'s scoring frameworks and return them sorted by priority score, each with a value score and an effort/value quadrant (quick win, big bet, fill-in, money pit), plus a top recommendation and totals. Frameworks: "default" (weighted value ÷ √effort over Customer Impact, Revenue Impact, Strategic Value, Urgency, Risk), "rice", "ice", "wsjf", "moscow". Score each request 1-10 per dimension, keyed by dimension name; optional confidence weighting and a deadline boost (+20% within 7 days, +50% within 3, +100% overdue, capped by deadline_boost_multiplier).
Parameters:
- requests (array, required): Requests: { title, scores (object: dimension name → 1-10), effort_days (default 1), confidence (1-100, default 50), deadline (YYYY-MM-DD), status (default "new"), tags }.
- framework (string): Scoring framework. Default "default".
- dimensions (array): Custom dimensions: { name, weight (1-10), is_inverse }. Default: the chosen framework\'s preset dimensions.
- use_confidence_in_scoring (boolean): Multiply scores by confidence/100. Default false.
- use_deadline_boost (boolean): Boost scores of requests with a near deadline. Default true.
- deadline_boost_days (integer): Days before the deadline at which the boost starts. Default 7.
- deadline_boost_multiplier (number): Maximum boost percent. Default 50 (= +50%).
- today (string): Reference date for the deadline boost, YYYY-MM-DD. Default: today (UTC).
### Ics To Csv
POST /api/tools/ics-to-csv/execute
Convert an iCalendar (.ics) export from Google Calendar, Apple Calendar or Outlook into CSV, one row per event. Folded lines, escaped text, TZID and UTC stamps, all-day dates, DURATION and X-WR-CALNAME are read. Times stay exactly as the file states them and are never converted between zones; the zone travels in its own column. A recurrence rule is written as text in the rrule column, not expanded into every occurrence. The outlook layout writes the nine-column header Google Calendar and Outlook accept on import. To-dos, journals and events with no readable start are skipped and counted.
Parameters:
- input (string, required): The .ics file contents.
- layout (string): spreadsheet (default): summary, start, end, all_day, timezone, location, description, organizer, status, categories, rrule, uid with ISO dates. outlook: Subject, Start Date, Start Time, End Date, End Time, All Day Event, Description, Location, Private with MM/DD/YYYY dates, the header Google Calendar and Outlook import.
- delimiter (string): Output field separator. Default: a comma.
- sort_by_start (boolean): Order rows by start time. Default true; false keeps file order.
### Keyboard Shortcut Finder
POST /api/tools/keyboard-shortcut-finder/execute
Return keyboard shortcuts (Mac and Windows keys) that match a search query, app, or category. Covers VS Code, Chrome, Excel, Photoshop, Figma, Slack, macOS, Windows, Word, and Terminal. Call with no filters to list the apps and categories.
Parameters:
- query (string): Action or keyword to search for, e.g. "copy", "undo", "zoom in", "command palette".
- app (string): Restrict to one app.
- category (string): Restrict to one category.
- limit (integer)
### Retro Meeting
POST /api/tools/retro-meeting/execute
Turn a finished sprint-retrospective board into shareable results: a Markdown summary grouped by category with items sorted by votes, a CSV export, and stats (item counts, revealed count, participants, counts per category, top-5 voted items). Supports the page\'s formats — standard (went well / needs improvement / action items), sailboat, 4Ls, start-stop-continue — or a custom list of categories. Hidden (unrevealed) items stay out of the exports, as on the page.
Parameters:
- name (string, required): Retrospective / sprint name used in the title.
- format (string): Board format. Default "standard". Use "custom" with your own categories.
- categories (array): Category names for format "custom" (1-12). Ignored for the built-in formats.
- items (array): Board items: { category, text, author, votes (default 0), revealed (default true) }. category must be a category id of the format (e.g. "went_well") or, for custom, one of your category names.
- anonymous (boolean): Print "Anonymous" instead of authors. Default true, as on the page.
- date (string): Session date, YYYY-MM-DD. Default: today (UTC).
### Scope Creep Tracker
POST /api/tools/scope-creep-tracker/execute
Measure scope creep on a project and return the numbers a stakeholder report needs: original (baseline) effort, approved / pending / rejected change effort, total current scope, growth percent versus the baseline, approval rate, counts of change requests by type (feature, enhancement, clarification, bug, removal) and by status (pending, approved, rejected), the list of approved changes, and an executive-summary paragraph. Growth above 20% is flagged as high, as on the page.
Parameters:
- project_name (string): Project name used in the summary. Default "Untitled Project".
- scope_items (array, required): Baseline scope items: { title, effort (hours) }. At least one is required.
- items (object): One baseline scope item.
- change_requests (array): Change requests: { title, effort_impact (hours), type (default "feature"), status (default "pending"), requested_by }.
- items (object): One change request.
### Social Media Calendar Generator
POST /api/tools/social-media-calendar-generator/execute
Turn a list of planned social media posts into a content calendar: a CSV export (Date, Time, Platform, Content Type, Title, Description, Hashtags), a plain-text schedule, posts grouped by date, counts per platform and content type, and a Monday-first month grid for the month you choose (default: the month of the earliest post). Each post needs a date, a platform (e.g. Instagram, Twitter/X, LinkedIn, TikTok, Facebook, YouTube), a content type (Post, Story, Reel, Video, Article, Thread, Live) and a title.
Parameters:
- posts (array, required): Planned posts: { date (YYYY-MM-DD), time (HH:MM), platform, content_type, title, description, hashtags }.
- month (string): Month to render the grid for, YYYY-MM. Default: month of the earliest post.
### Sprint Capacity Calculator
POST /api/tools/sprint-capacity-calculator/execute
Calculate a team\'s realistic sprint capacity in hours and story points. Starts from each member\'s hours per day × the working days in the sprint, then subtracts meeting overhead, public holidays that fall on working days, and per-member PTO; returns the deductions, final hours, utilization rate, recommended story points (final hours ÷ hours per point), the average of any historical velocity you pass, and a per-member breakdown.
Parameters:
- team (array, required): Team members: { name, hours_per_day (default 8), role }.
- duration_days (integer): Calendar days in the sprint, counted from start_date. Default 10.
- start_date (string): First day of the sprint, YYYY-MM-DD. Default: today (UTC).
- working_days (array): Seven booleans, Monday first, marking which weekdays count. Default Mon-Fri.
- meeting_overhead_percent (number): Percent of raw hours lost to meetings. Default 20.
- holidays (array): Holiday dates (YYYY-MM-DD strings, or { date, name }). Only those on working days deduct time.
- pto (array): Planned time off: { member (team member name), days }.
- historical_velocity (array): Completed story points of previous sprints, used for average_velocity.
- hours_per_point (number): Hours of work one story point represents. Default 6.
### Tech Debt Register
POST /api/tools/tech-debt-register/execute
Analyze a technical debt register and return the stakeholder numbers: active vs resolved counts, total hours to fix, weekly "interest" cost in hours, payoff weeks at a given weekly budget, breakeven weeks, counts by category and severity, the top-5 highest-interest items, a severity/effort matrix (quick wins, strategic, low priority, time sink), and an executive-summary paragraph. Each item has a category (code, architecture, testing, documentation, security, performance), a severity 1-5, effort_to_fix in hours, interest_rate in hours lost per week, and a status (active, resolved, wont_fix).
Parameters:
- items (array, required): Debt items: { title, category, severity (1-5), effort_to_fix (hours), interest_rate (hours/week, default 0), status (default "active"), description }.
- items (object, required): One debt item.
- weekly_budget (number): Hours per week available for paying down debt. Default 8.
## Security Tools
### Data Sanitizer
POST /api/tools/data-sanitizer/execute
Sanitize untrusted text and return the cleaned output, a list of changes made, and a risk level. Modes: html (escape HTML special characters), sql (escape quotes/backslashes, strip comments and semicolons), js (strip script tags, javascript: URLs, event handlers, CSS expressions), url (percent-encode), or all (html + sql + js). Defaults to all.
Parameters:
- text (string, required): The input text to sanitize.
- mode (string): Sanitization mode. Default: all.
### Dnpm Configurator
POST /api/tools/dnpm-configurator/execute
Returns the five files of a hardened Docker-based npm wrapper (the ./dnpm bash script, .dnpm/Dockerfile, docker-compose.node.yml, .dnpm/seccomp-profile.json and a CLAUDE.md) generated for a project. The sandbox mounts the source read-only, drops all capabilities, runs as a non-root user, disables postinstall scripts, pins the npm registry and builds with zero network access.
Parameters:
- project_name (string): Project name used for container names (lowercase letters, digits and dashes; other characters become dashes). Default: "my-project".
- framework (string): Framework preset: astro, next, vite, remix or generic. Sets the default dev port and writable output dirs. Default: "astro".
- node_version (string): Node.js major version for the image. Default: "22".
- dev_port (integer): Dev server port (1024-65535). Default: the framework port (astro 4321, next 3000, vite 5173, remix 3000, generic 3000).
- memory_limit (string): Container memory limit in MB. Default: "4096".
- cpu_limit (string): Container CPU limit. Default: "4".
- max_pids (integer): Maximum number of processes. Default: 256.
- tmp_size (string): Size of the noexec /tmp tmpfs. Default: "512m".
- enable_polling (boolean): Set CHOKIDAR_USEPOLLING=true for file watching inside Docker. Default: true.
### Email Header Analyzer
POST /api/tools/email-header-analyzer/execute
Return a structured analysis of raw email headers: sender, recipient, subject, date, message id, the Received hop chain with per-hop delays, SPF/DKIM/DMARC results, every public IP seen, and suspicious-routing flags.
Parameters:
- headers (string, required): The raw email headers (the "Show original" / "View source" block), including every Received: line.
### Hash Comparison Tool
POST /api/tools/hash-comparison-tool/execute
Hash text with SHA-1, SHA-256, SHA-384, or SHA-512 and compare the hex digest with an expected hash. Returns the computed hash, the normalized expected hash, and match true/false (null when no expected hash is given). Useful to verify checksums and integrity.
Parameters:
- text (string, required): The text to hash.
- expected_hash (string): The hex digest to compare against. Case and whitespace are ignored.
- algorithm (string): Hash algorithm. Default: SHA-256.
### Jwt Generator
POST /api/tools/jwt-generator/execute
Generate a signed JWT (HS256, HS384, or HS512 via HMAC) and return the token plus the decoded header and payload. The payload contains sub, name, iat, exp, and any custom claims. Asymmetric algorithms (RS*/ES*) are not supported.
Parameters:
- secret (string, required): The HMAC secret used to sign the token.
- algorithm (string): Signing algorithm. Default: HS256.
- subject (string): The "sub" claim. Default: "1234567890".
- name (string): The "name" claim. Default: "John Doe".
- expires_in (integer): Seconds until expiry; exp = iat + expires_in. Default: 3600.
- custom_claims (object): Extra claims merged into the payload. An object, or a JSON object string.
- issued_at (integer): Unix timestamp (seconds) for the "iat" claim. Default: now.
### Jwt Security Validator
POST /api/tools/jwt-security-validator/execute
Decode a JWT and return a list of security checks (algorithm strength, expiration, not-before, issued-at, issuer, audience, subject, signature presence) plus an overall valid flag. Does NOT verify the signature — it only inspects claims and header fields.
Parameters:
- token (string, required): The JWT to inspect (three dot-separated base64url segments).
- now (integer): Unix timestamp (seconds) to evaluate time claims against. Default: current time.
### Password Breach Checker
POST /api/tools/password-breach-checker/execute
Return whether a password appears in known data breaches and how many times, using the Have I Been Pwned k-anonymity range API. Only the first 5 characters of the SHA-1 hash are sent upstream.
Parameters:
- password (string, required): The password to check. It is hashed locally and never transmitted.
### Password Pattern Validator
POST /api/tools/password-pattern-validator/execute
At least one uppercase letter
Parameters:
- password (string, required): The password to validate.
- min_length (integer): Minimum length. Default: 8.
- require_uppercase (boolean): Require at least one uppercase letter. Default: true.
- require_lowercase (boolean): Require at least one lowercase letter. Default: true.
- require_number (boolean): Require at least one digit. Default: true.
- require_special (boolean): Require at least one special character. Default: true.
### Pgp Encryption Tool
POST /api/tools/pgp-encryption-tool/execute
Encrypt or decrypt a short message with RSA-OAEP (SHA-256) PEM keys, or generate a new RSA key pair. Returns the armoured ciphertext block, the decrypted plaintext, or the PEM public/private key pair. Note: this uses plain RSA-OAEP with SPKI/PKCS#8 PEM keys, not the OpenPGP message format. Messages are limited to the RSA block size (190 bytes for 2048-bit keys).
Parameters:
- mode (string, required): Operation: encrypt, decrypt, or generate.
- text (string): encrypt: the plaintext message. decrypt: the "-----BEGIN ENCRYPTED MESSAGE-----" block (or raw base64).
- public_key (string): encrypt: the recipient PEM public key (SPKI, "-----BEGIN PUBLIC KEY-----").
- private_key (string): decrypt: the PEM private key (PKCS#8, a BEGIN PRIVATE KEY block).
- modulus_length (integer): generate: RSA key size in bits. Default: 2048.
### Random Key Generator
POST /api/tools/random-key-generator/execute
Generate cryptographically random keys (API keys, tokens, secrets) and return them as a list of strings. Formats: hex, base64 (URL-safe characters only), alphanumeric, or base58. Optional uppercase and prefix. Default: five 32-character hex keys.
Parameters:
- length (integer): Key length in characters (excluding prefix). Default: 32.
- format (string): Character set. Default: hex.
- uppercase (boolean): Uppercase the key (ignored for base64). Default: false.
- prefix (string): Optional prefix prepended to every key (e.g. "sk_live_").
- count (integer): How many keys to generate. Default: 5.
### Text Encryption
POST /api/tools/text-encryption/execute
Encrypt text with a password using AES-256-GCM (key derived with PBKDF2-SHA256, 100000 iterations) and return a base64 ciphertext, or decrypt such a ciphertext back to the original text. The base64 blob is salt(16) + iv(12) + ciphertext, compatible with the FindUtils Text Encryption page.
Parameters:
- text (string, required): encrypt: the plaintext. decrypt: the base64 ciphertext produced by this tool.
- password (string, required): The password (passphrase) used to derive the AES key.
- mode (string): Operation. Default: encrypt.
### Two Fa Code Tester
POST /api/tools/two-fa-code-tester/execute
Compute the current TOTP code (RFC 6238) for a base32 secret and return the code, the seconds remaining in the window, and — when a code is supplied — whether it matches. Defaults match Google Authenticator: 6 digits, 30-second period, HMAC-SHA1. Pass "time" (unix seconds) to evaluate a specific moment.
Parameters:
- secret (string, required): The base32 TOTP secret (e.g. JBSWY3DPEHPK3PXP). Spaces, dashes, and padding are ignored.
- code (string): Optional code to verify against the computed one.
- digits (integer): Number of digits. Default: 6.
- period (integer): Time step in seconds. Default: 30.
- time (integer): Unix timestamp (seconds) to compute the code for. Default: now.
- algorithm (string): HMAC hash. Default: SHA-1.
### Url Safety Checker
POST /api/tools/url-safety-checker/execute
Run offline heuristic safety checks on a URL and return a risk level (low/medium/high), a 0+ risk score, per-check results, and warnings. Checks HTTPS, suspicious TLDs, URL shorteners, phishing keyword patterns, raw IP hosts, deceptive domain characters, and excessive subdomains. No network requests — pattern analysis only.
Parameters:
- url (string, required): The URL to check. "https://" is assumed when no scheme is given.
### Windows Update Settings Generator
POST /api/tools/windows-update-settings-generator/execute
Generate a Windows Update configuration script (.reg, .ps1, or .bat) plus a matching restore script from a preset and/or individual settings, and return them with a risk level and a change summary. Presets: gamer_mode, full_control, safe_defer, metered, custom. Settings override the preset.
Parameters:
- output_format (string): Script format. Default: reg.
- preset (string): Starting preset. Default: custom (all defaults).
- windows_version (string): Target Windows edition. Default: win11_pro.
- settings (object): Overrides: auto_update_mode (disabled|notify_only|download_notify|auto_install), pause_duration ("7"|"30"|"90"|"365"|"max"), and booleans no_auto_restart, disable_driver_updates, disable_delivery_optimization, disable_wuauserv, disable_uso_svc, disable_waas_medic_svc, disable_scheduled_tasks, minimize_telemetry, set_metered.
- include_restore (boolean): Also return the restore script. Default: true.
## Seo Tools
### Bot Crawl Checker
POST /api/tools/bot-crawl-checker/execute
Return which of 24 well-known crawlers (Googlebot, BingBot, GPTBot, ClaudeBot, PerplexityBot, AhrefsBot, Twitterbot and more) are allowed or blocked for a URL by the site\'s robots.txt, with the matching rule and user-agent group per bot.
Parameters:
- url (string, required): Public http(s) URL to check, e.g. "https://example.com/blog/post".
### Domain Rating Checker
POST /api/tools/domain-rating-checker/execute
Return the Ahrefs Domain Rating (0-100) for up to 25 domains in one call, with a per-domain status. Results carry the required "Domain Rating by Ahrefs" attribution.
Parameters:
- domains (array, required): Domains to check (1-25), e.g. ["ahrefs.com", "wikipedia.org"].
### Faq Schema Generator
POST /api/tools/faq-schema-generator/execute
Generate FAQPage JSON-LD structured data from question-answer pairs, and return the JSON-LD string, a ready