FreeDailyPro MCP
An official MCP server providing over 200 tools for AI agents to process PDFs, PowerPoint files, text, media, and run calculators via a shared API key and quota.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://api.freedailypro.com/mcpWhat you can do with it
- Merge, split, and compress PDF documents
- Build PowerPoint decks from JSON or Markdown
- Process video and audio with ffmpeg
- Run text analysis and calculators
Source and maintenance
Protocol and capabilities
- Server
- freedailypro-utility-tools 1.4.0
- MCP protocol
- 2025-06-18
- Tools
- 225 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
}
}Tools
225 advertised
word_count
Word counter — counts words, characters, sentences, paragraphs and reading time
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"description": "Text to analyze"
},
"wordsPerMinute": {
"type": "number",
"maximum": 1000,
"minimum": 50,
"description": "Reading speed (default 200)"
}
},
"additionalProperties": false
}{
"title": "Word Count",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}case_convert
Case converter — upper, lower, title, sentence, camel, pascal, snake, kebab, constant, alternating, inverse
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"text",
"case"
],
"properties": {
"case": {
"enum": [
"upper",
"lower",
"title",
"sentence",
"camel",
"pascal",
"snake",
"kebab",
"constant",
"alternating",
"inverse"
],
"type": "string"
},
"text": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Case Convert",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}generate_slug
Slug generator — SEO-friendly URL slug
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"text"
],
"properties": {
"text": {
"type": "string"
},
"lowercase": {
"type": "boolean"
},
"maxLength": {
"type": "number",
"maximum": 500,
"minimum": 0
},
"separator": {
"type": "string",
"maxLength": 3
},
"removeStopWords": {
"type": "boolean"
}
},
"additionalProperties": false
}{
"title": "Generate Slug",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}generate_password
Password generator — cryptographically secure password
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"length": {
"type": "number",
"maximum": 128,
"minimum": 4
},
"numbers": {
"type": "boolean"
},
"symbols": {
"type": "boolean"
},
"lowercase": {
"type": "boolean"
},
"uppercase": {
"type": "boolean"
}
},
"additionalProperties": false
}{
"title": "Generate Password",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}generate_lorem
Lorem ipsum generator
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"paragraphs": {
"type": "number",
"maximum": 50,
"minimum": 1
},
"startWithLorem": {
"type": "boolean"
},
"wordsPerParagraph": {
"type": "number",
"maximum": 500,
"minimum": 5
}
},
"additionalProperties": false
}{
"title": "Generate Lorem",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}reverse_text
Text reverser — reverse characters, words or lines
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"text"
],
"properties": {
"mode": {
"enum": [
"characters",
"words",
"lines"
],
"type": "string"
},
"text": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Reverse Text",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}sort_text
Text sorter — sort lines or words, optional unique
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"text"
],
"properties": {
"mode": {
"enum": [
"lines",
"words"
],
"type": "string"
},
"text": {
"type": "string"
},
"order": {
"enum": [
"asc",
"desc"
],
"type": "string"
},
"unique": {
"type": "boolean"
},
"caseSensitive": {
"type": "boolean"
}
},
"additionalProperties": false
}{
"title": "Sort Text",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}generate_hash
Hash generator — md5, sha1, sha256, sha384, sha512
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"text"
],
"properties": {
"text": {
"type": "string"
},
"algorithm": {
"enum": [
"md5",
"sha1",
"sha256",
"sha384",
"sha512"
],
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Generate Hash",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}generate_uuid
Uuid generator — v4, optional bulk
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"count": {
"type": "number",
"maximum": 1000,
"minimum": 1
}
},
"additionalProperties": false
}{
"title": "Generate Uuid",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}base64
Base64 tool — encode or decode
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"text",
"action"
],
"properties": {
"text": {
"type": "string"
},
"action": {
"enum": [
"encode",
"decode"
],
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Base64",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}format_json
Json formatter — validate, pretty-print or minify
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"text"
],
"properties": {
"text": {
"type": "string"
},
"indent": {
"anyOf": [
{
"type": "number",
"maximum": 8,
"minimum": 0
},
{
"type": "string",
"const": "minify"
}
]
}
},
"additionalProperties": false
}{
"title": "Format Json",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}test_regex
Regex tester
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"pattern",
"text"
],
"properties": {
"text": {
"type": "string"
},
"flags": {
"type": "string"
},
"pattern": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}{
"title": "Test Regex",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}url_encode_decode
Url encoder
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"text",
"action"
],
"properties": {
"text": {
"type": "string"
},
"action": {
"enum": [
"encode",
"decode"
],
"type": "string"
},
"component": {
"type": "boolean"
}
},
"additionalProperties": false
}{
"title": "Url Encode Decode",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}convert_timestamp
Timestamp converter
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"input"
],
"properties": {
"input": {
"type": [
"string",
"number"
]
}
},
"additionalProperties": false
}{
"title": "Convert Timestamp",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}percentage
Percentage calculator
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"operation",
"a",
"b"
],
"properties": {
"a": {
"type": "number"
},
"b": {
"type": "number"
},
"operation": {
"enum": [
"percentageOf",
"whatIsPercentOf",
"percentChange"
],
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Percentage",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}calculate_tip
Tip calculator
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"bill",
"tipPercent"
],
"properties": {
"bill": {
"type": "number",
"minimum": 0
},
"people": {
"type": "number",
"maximum": 100,
"minimum": 1
},
"tipPercent": {
"type": "number",
"maximum": 100,
"minimum": 0
}
},
"additionalProperties": false
}{
"title": "Calculate Tip",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}calculate_bmi
Bmi calculator
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"weight",
"height"
],
"properties": {
"unit": {
"enum": [
"metric",
"imperial"
],
"type": "string"
},
"height": {
"type": "number",
"exclusiveMinimum": 0
},
"weight": {
"type": "number",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
}{
"title": "Calculate Bmi",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}convert_length
Unit converter (length)
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"value",
"from",
"to"
],
"properties": {
"to": {
"enum": [
"m",
"cm",
"mm",
"km",
"in",
"ft",
"yd",
"mi"
],
"type": "string"
},
"from": {
"enum": [
"m",
"cm",
"mm",
"km",
"in",
"ft",
"yd",
"mi"
],
"type": "string"
},
"value": {
"type": "number"
}
},
"additionalProperties": false
}{
"title": "Convert Length",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}convert_weight
Unit converter (weight)
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"value",
"from",
"to"
],
"properties": {
"to": {
"enum": [
"kg",
"g",
"mg",
"lb",
"oz"
],
"type": "string"
},
"from": {
"enum": [
"kg",
"g",
"mg",
"lb",
"oz"
],
"type": "string"
},
"value": {
"type": "number"
}
},
"additionalProperties": false
}{
"title": "Convert Weight",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}convert_temperature
Unit converter (temperature)
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"value",
"from",
"to"
],
"properties": {
"to": {
"enum": [
"C",
"F",
"K"
],
"type": "string"
},
"from": {
"enum": [
"C",
"F",
"K"
],
"type": "string"
},
"value": {
"type": "number"
}
},
"additionalProperties": false
}{
"title": "Convert Temperature",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}calculate_loan
Loan calculator — EMI / amortizing loan, with an optional first payment date that dates the schedule preview and gives the payoff date
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"principal",
"annualRatePercent",
"years"
],
"properties": {
"years": {
"type": "number",
"maximum": 50,
"exclusiveMinimum": 0
},
"principal": {
"type": "number",
"exclusiveMinimum": 0
},
"previewMonths": {
"type": "number",
"maximum": 12,
"minimum": 0
},
"firstPaymentDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Optional date the first payment is due, as YYYY-MM-DD. Adds a date to every schedulePreview row and returns firstPaymentDate, lastPaymentDate and payoffDate for the whole loan. It only labels the schedule; the amounts do not change. A payment day of 29 to 31 moves to the last day of shorter months."
},
"annualRatePercent": {
"type": "number",
"maximum": 100,
"minimum": 0
}
},
"additionalProperties": false
}{
"title": "Calculate Loan",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}calculate_compound_interest
Compound interest calculator
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"principal",
"annualRatePercent",
"years"
],
"properties": {
"years": {
"type": "number",
"maximum": 100,
"exclusiveMinimum": 0
},
"frequency": {
"enum": [
"annually",
"semiannually",
"quarterly",
"monthly",
"daily"
],
"type": "string"
},
"principal": {
"type": "number",
"exclusiveMinimum": 0
},
"startDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Optional start date, as YYYY-MM-DD. Adds startDate and maturityDate (the date the future value is reached). It only labels the timeline; the amounts do not change."
},
"annualRatePercent": {
"type": "number",
"maximum": 100,
"minimum": 0
}
},
"additionalProperties": false
}{
"title": "Calculate Compound Interest",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}calculate_discount
Discount calculator
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"originalPrice"
],
"properties": {
"salePrice": {
"type": "number",
"exclusiveMinimum": 0
},
"originalPrice": {
"type": "number",
"exclusiveMinimum": 0
},
"discountPercent": {
"type": "number",
"maximum": 100,
"minimum": 0
}
},
"additionalProperties": false
}{
"title": "Calculate Discount",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}calculate_simple_interest
Simple interest calculator
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"principal",
"annualRatePercent",
"years"
],
"properties": {
"years": {
"type": "number",
"maximum": 100,
"exclusiveMinimum": 0
},
"principal": {
"type": "number",
"exclusiveMinimum": 0
},
"startDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Optional start date, as YYYY-MM-DD. Adds startDate and maturityDate (the date the total amount is reached). It only labels the timeline; the amounts do not change."
},
"annualRatePercent": {
"type": "number",
"maximum": 100,
"minimum": 0
}
},
"additionalProperties": false
}{
"title": "Calculate Simple Interest",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}calculate_sales_tax
Sales tax calculator with US state base-rate lookup (local rates excluded) — add or extract tax
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"amount"
],
"properties": {
"mode": {
"enum": [
"add",
"extract"
],
"type": "string"
},
"state": {
"type": "string",
"description": "US state (two-letter code such as TX, or the full name; DC included). Looks up the STATE base sales tax rate only (Tax Foundation, 1 July 2026). Local city, county and district rates are not included."
},
"amount": {
"type": "number",
"minimum": 0
},
"taxPercent": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Tax rate in percent. Required unless state is sent. Takes priority over state."
}
},
"additionalProperties": false
}{
"title": "Calculate Sales Tax",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}calculate_age
Age calculator — years/months/days between dates
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"startDate"
],
"properties": {
"endDate": {
"type": "string"
},
"startDate": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Calculate Age",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}diff_text
Diff checker — line-oriented text diff
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"textA",
"textB"
],
"properties": {
"textA": {
"type": "string"
},
"textB": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Diff Text",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}estimate_password_strength
Password strength
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"password"
],
"properties": {
"password": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Estimate Password Strength",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}generate_random_numbers
Random number generator
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"max": {
"type": "number"
},
"min": {
"type": "number"
},
"count": {
"type": "number",
"maximum": 1000,
"minimum": 1
},
"unique": {
"type": "boolean"
}
},
"additionalProperties": false
}{
"title": "Generate Random Numbers",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}extract_emails
Email extractor
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"text"
],
"properties": {
"text": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Extract Emails",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}extract_urls
Url extractor
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"text"
],
"properties": {
"text": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Extract Urls",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}find_and_replace
Find replace
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"text",
"find",
"replace"
],
"properties": {
"find": {
"type": "string",
"minLength": 1
},
"text": {
"type": "string"
},
"replace": {
"type": "string"
},
"useRegex": {
"type": "boolean"
},
"replaceAll": {
"type": "boolean"
},
"caseSensitive": {
"type": "boolean"
}
},
"additionalProperties": false
}{
"title": "Find And Replace",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}calculate_water_intake
Water intake calculator
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"weightKg"
],
"properties": {
"weightKg": {
"type": "number",
"exclusiveMinimum": 0
},
"activityLevel": {
"enum": [
"sedentary",
"light",
"moderate",
"active"
],
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Calculate Water Intake",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}calculate_ideal_weight
Ideal weight calculator
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"heightCm",
"sex"
],
"properties": {
"sex": {
"enum": [
"male",
"female"
],
"type": "string"
},
"heightCm": {
"type": "number",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
}{
"title": "Calculate Ideal Weight",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}calculate_gpa
Gpa calculator
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"courses"
],
"properties": {
"scale": {
"enum": [
"4.0",
"percent"
],
"type": "string"
},
"courses": {
"type": "array",
"items": {
"type": "object",
"required": [
"grade",
"credits"
],
"properties": {
"grade": {
"type": "number"
},
"credits": {
"type": "number",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
},
"minItems": 1
}
},
"additionalProperties": false
}{
"title": "Calculate Gpa",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}lookup_http_status
Http status reference
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"code": {
"type": "integer",
"maximum": 599,
"minimum": 100
}
},
"additionalProperties": false
}{
"title": "Lookup Http Status",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}analyze_readability
Reading level checker — Flesch-Kincaid style metrics
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"text"
],
"properties": {
"text": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Analyze Readability",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}html_entities
Html entity converter
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"text",
"action"
],
"properties": {
"text": {
"type": "string"
},
"action": {
"enum": [
"encode",
"decode"
],
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Html Entities",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}binary_ascii
Binary ascii converter
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"text",
"action"
],
"properties": {
"text": {
"type": "string"
},
"action": {
"enum": [
"toBinary",
"fromBinary",
"toHex",
"fromHex"
],
"type": "string"
},
"separator": {
"type": "string",
"maxLength": 3
}
},
"additionalProperties": false
}{
"title": "Binary Ascii",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}describe_cron
Cron builder — describe a 5-field cron expression
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"expression"
],
"properties": {
"expression": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Describe Cron",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}decode_jwt
Jwt decoder — header + payload only, no signature verification
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"token"
],
"properties": {
"token": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}{
"title": "Decode Jwt",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}markdown_to_html
Markdown html converter — basic subset
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"markdown"
],
"properties": {
"markdown": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Markdown To Html",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}calculate_bmr
Bmr calorie calculator — Mifflin-St Jeor + TDEE
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"weightKg",
"heightCm",
"ageYears",
"sex"
],
"properties": {
"sex": {
"enum": [
"male",
"female"
],
"type": "string"
},
"activity": {
"enum": [
"sedentary",
"light",
"moderate",
"active",
"very_active"
],
"type": "string"
},
"ageYears": {
"type": "number",
"maximum": 120,
"exclusiveMinimum": 0
},
"heightCm": {
"type": "number",
"exclusiveMinimum": 0
},
"weightKg": {
"type": "number",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
}{
"title": "Calculate Bmr",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}calculate_pregnancy_due_date
Pregnancy due date calculator — Naegele rule
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"lastMenstrualPeriod"
],
"properties": {
"referenceDate": {
"type": "string"
},
"lastMenstrualPeriod": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Calculate Pregnancy Due Date",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}calculate_sip
Sip calculator — systematic investment plan future value
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"monthlyInvestment",
"annualRatePercent",
"years"
],
"properties": {
"years": {
"type": "number",
"maximum": 100,
"exclusiveMinimum": 0
},
"startDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Optional date of the first monthly contribution, as YYYY-MM-DD. Adds firstContributionDate, lastContributionDate and maturityDate. It only labels the plan; the amounts do not change. A day of 29 to 31 moves to the last day of shorter months."
},
"annualRatePercent": {
"type": "number",
"maximum": 100,
"minimum": 0
},
"monthlyInvestment": {
"type": "number",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
}{
"title": "Calculate Sip",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}parse_user_agent
User agent parser
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"ua"
],
"properties": {
"ua": {
"type": "string",
"minLength": 1
},
"clientHints": {
"type": "string",
"description": "Optional: pasted Sec-CH-UA request headers; adds a 'clientHints' object (for example Windows 11)"
}
},
"additionalProperties": false
}{
"title": "Parse User Agent",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}minify_code
Css js minifier — whitespace and comment strip
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"code",
"type"
],
"properties": {
"code": {
"type": "string"
},
"type": {
"enum": [
"css",
"js"
],
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Minify Code",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}apply_timezone_offset
Timezone converter — apply fixed offset to UTC
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"utcIso",
"offset"
],
"properties": {
"offset": {
"type": "string"
},
"utcIso": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Apply Timezone Offset",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}estimate_body_fat
Body fat calculator — US Navy style estimate
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"sex",
"heightCm",
"waistCm",
"neckCm"
],
"properties": {
"sex": {
"enum": [
"male",
"female"
],
"type": "string"
},
"hipCm": {
"type": "number",
"exclusiveMinimum": 0
},
"neckCm": {
"type": "number",
"exclusiveMinimum": 0
},
"waistCm": {
"type": "number",
"exclusiveMinimum": 0
},
"heightCm": {
"type": "number",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
}{
"title": "Estimate Body Fat",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}scale_recipe
Recipe scaler
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"ingredients",
"originalServings",
"targetServings"
],
"properties": {
"ingredients": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"amount"
],
"properties": {
"name": {
"type": "string"
},
"unit": {
"type": "string"
},
"amount": {
"type": "number"
}
},
"additionalProperties": false
},
"minItems": 1
},
"targetServings": {
"type": "number",
"exclusiveMinimum": 0
},
"originalServings": {
"type": "number",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
}{
"title": "Scale Recipe",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}fancy_text
Fancy font generator — unicode styles
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"text",
"style"
],
"properties": {
"text": {
"type": "string"
},
"style": {
"type": "string"
},
"intensity": {
"type": "integer",
"maximum": 3,
"minimum": 1,
"description": "Zalgo only: 1 (light) to 3 (heavy), default 2"
}
},
"additionalProperties": false
}{
"title": "Fancy Text",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}invisible_text
Invisible text generator — encode/decode/strip/generate zero-width
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"mode"
],
"properties": {
"mode": {
"enum": [
"encode",
"decode",
"strip",
"generate"
],
"type": "string"
},
"text": {
"type": "string"
},
"length": {
"type": "number",
"maximum": 500,
"minimum": 1
},
"carrier": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Invisible Text",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}generate_meta_tags
Meta tag generator — Open Graph + Twitter
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"title",
"description"
],
"properties": {
"url": {
"type": "string"
},
"type": {
"type": "string"
},
"image": {
"type": "string"
},
"title": {
"type": "string",
"minLength": 1
},
"siteName": {
"type": "string"
},
"description": {
"type": "string",
"minLength": 1
},
"twitterCard": {
"enum": [
"summary",
"summary_large_image"
],
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Generate Meta Tags",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}keyword_density
Keyword density
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"text",
"keyword"
],
"properties": {
"text": {
"type": "string"
},
"keyword": {
"type": "string",
"minLength": 1
},
"caseSensitive": {
"type": "boolean"
}
},
"additionalProperties": false
}{
"title": "Keyword Density",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}hashtags
Hashtag generator — extract or generate
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"action"
],
"properties": {
"max": {
"type": "number",
"maximum": 50,
"minimum": 1
},
"text": {
"type": "string"
},
"action": {
"enum": [
"extract",
"generate"
],
"type": "string"
},
"keywords": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
}{
"title": "Hashtags",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}schema_jsonld
Schema generator — Article, FAQ, Organization JSON-LD
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"type",
"data"
],
"properties": {
"data": {
"type": "object",
"additionalProperties": {}
},
"type": {
"enum": [
"article",
"faq",
"organization"
],
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Schema Jsonld",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}color_convert
Color converter — hex/rgb/hsl plus hsv, cmyk, lab (D50) and oklch
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"b": {
"type": "number",
"description": "Blue, 0-255"
},
"g": {
"type": "number",
"description": "Green, 0-255"
},
"r": {
"type": "number",
"description": "Red, 0-255 (with clamp true, values outside are clamped)"
},
"hex": {
"type": "string"
},
"clamp": {
"type": "boolean",
"description": "Clamp r, g, b to 0-255 and report each change in 'clamped', instead of an error"
}
},
"additionalProperties": false
}{
"title": "Color Convert",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}contrast_ratio
Contrast checker — WCAG AA/AAA
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"foreground",
"background"
],
"properties": {
"background": {
"type": "string"
},
"foreground": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Contrast Ratio",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}pdf_parse_fillable_form
Parse a PDF's fillable form fields — lists every fillable field's name, type (text, checkbox, dropdown, radio, optionlist), current value and options so you know what to fill
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64"
],
"properties": {
"fileBase64": {
"type": "string",
"description": "The PDF file, base64-encoded"
}
},
"additionalProperties": false
}{
"title": "Pdf Parse Fillable Form",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}pdf_fill_form
Fill a PDF form's fields — sets text, checkbox, dropdown, radio and option-list values and returns the filled PDF as base64 in the first text item, optionally flattened so it can no longer be edited. Only the fields you name are changed; every other field keeps its value. To clear a field send null (or an empty string). The second text item is a JSON report: fieldsSet, fieldsNotSet (name and reason) and fieldsUntouched
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64"
],
"properties": {
"values": {
"type": "object",
"description": "Field name -> value. Text/dropdown/radio: a string; option list: a string or an array of strings; checkbox: true/false. null or an empty string clears the field. Fields not named here are left untouched",
"additionalProperties": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
]
}
},
"checked": {
"type": "object",
"description": "Field name -> checked state, for checkbox fields (only the named checkboxes change)",
"additionalProperties": {
"type": "boolean"
}
},
"flatten": {
"type": "boolean",
"description": "If true, bakes the values in and removes the ability to edit them further"
},
"fileBase64": {
"type": "string",
"description": "The PDF file, base64-encoded"
}
},
"additionalProperties": false
}{
"title": "Pdf Fill Form",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}pdf_redact
Permanently redact areas of a PDF. Boxes are fractions (0 to 1) of the page as displayed, measured from the top-left corner, pages numbered from 0. Text characters, picture pixels, vector art and annotations under a box are removed from the file itself and an opaque black bar is drawn; everything outside the boxes stays real, selectable text in its original fonts. A page that cannot be edited exactly (for example a curved drawing partly under a box) is turned into a picture with the boxes painted black instead. Pages without boxes are not touched
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64",
"boxes"
],
"properties": {
"boxes": {
"type": "object",
"description": "Page index (as a string key, 0-based) -> array of boxes to redact, each in fractional page coordinates (0-1)",
"additionalProperties": {
"type": "array",
"items": {
"type": "object",
"required": [
"x",
"y",
"w",
"h"
],
"properties": {
"h": {
"type": "number"
},
"w": {
"type": "number"
},
"x": {
"type": "number"
},
"y": {
"type": "number"
}
},
"additionalProperties": false
}
}
},
"fileBase64": {
"type": "string",
"description": "The PDF file, base64-encoded"
}
},
"additionalProperties": false
}{
"title": "Pdf Redact",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}convert_currency
Currency converter — converts between currencies using a periodic rate snapshot (not a live feed)
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"amount",
"from",
"to"
],
"properties": {
"to": {
"enum": [
"USD",
"EUR",
"GBP",
"JPY",
"CAD",
"AUD",
"CHF",
"CNY",
"INR",
"BRL",
"KRW",
"MXN"
],
"type": "string"
},
"from": {
"enum": [
"USD",
"EUR",
"GBP",
"JPY",
"CAD",
"AUD",
"CHF",
"CNY",
"INR",
"BRL",
"KRW",
"MXN"
],
"type": "string"
},
"amount": {
"type": "number",
"minimum": 0
}
},
"additionalProperties": false
}{
"title": "Convert Currency",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}generate_robots_sitemap
Robots.txt and sitemap.xml generator
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"domain",
"pages"
],
"properties": {
"pages": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 500
},
"domain": {
"type": "string",
"format": "uri"
}
},
"additionalProperties": false
}{
"title": "Generate Robots Sitemap",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}check_grammar
Grammar checker — lightweight, rule-based checks (not an LLM), catches common misspellings, spacing, capitalization, and repeated-word issues
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"maxLength": 20000
}
},
"additionalProperties": false
}{
"title": "Check Grammar",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}generate_captions
Social caption generator — template-based, not an LLM
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"topic",
"platform"
],
"properties": {
"tone": {
"enum": [
"fun",
"professional",
"bold",
"genz"
],
"type": "string"
},
"topic": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"platform": {
"enum": [
"instagram",
"tiktok",
"x",
"linkedin"
],
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Generate Captions",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}paraphrase_text
Paraphraser — rule-based phrase and word substitution plus simple clause moves, not an LLM; strength low, medium or high
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"maxLength": 20000
},
"strength": {
"enum": [
"low",
"medium",
"high",
"light",
"strong"
],
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Paraphrase Text",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}pdf_merge
Merge multiple PDFs into one
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"filesBase64"
],
"properties": {
"filesBase64": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 2,
"description": "The PDF files, base64-encoded, in the order they should be merged"
}
},
"additionalProperties": false
}{
"title": "Pdf Merge",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}pdf_split
Split a PDF into multiple files by page range, or combine specific ranges into one reordered file
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64",
"ranges"
],
"properties": {
"ranges": {
"type": "string",
"description": "Semicolon-separated groups, each a comma-separated list of pages/ranges, e.g. '1-3,5;7-9' for two output files"
},
"fileBase64": {
"type": "string"
},
"combineIntoOne": {
"type": "boolean",
"description": "If true, combines all specified ranges into a single reordered PDF instead of one file per group"
}
},
"additionalProperties": false
}{
"title": "Pdf Split",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}pdf_rotate
Rotate PDF pages — 90-degree steps only (0, 90, 180, 270)
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64",
"rotations"
],
"properties": {
"rotations": {
"type": "object",
"description": "1-indexed page number (as a string key) -> rotation in degrees, must each be a multiple of 90",
"additionalProperties": {
"type": "number"
}
},
"fileBase64": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Pdf Rotate",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}pdf_add_page_numbers
Add page numbers to a PDF
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64",
"position"
],
"properties": {
"format": {
"enum": [
"plain",
"page-of-total",
"prefixed"
],
"type": "string"
},
"prefix": {
"type": "string"
},
"startAt": {
"type": "number",
"default": 1
},
"fontSize": {
"type": "number"
},
"position": {
"enum": [
"bottom-center",
"bottom-right",
"bottom-left",
"top-center",
"top-right",
"top-left"
],
"type": "string"
},
"pageRange": {
"type": "string",
"description": "Comma-separated pages/ranges to number, e.g. '1,3-5' -- if omitted, numbers every page"
},
"fileBase64": {
"type": "string"
},
"skipFirstPage": {
"type": "boolean"
}
},
"additionalProperties": false
}{
"title": "Pdf Add Page Numbers",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}pdf_watermark
Add a text watermark to a PDF
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64",
"text"
],
"properties": {
"text": {
"type": "string",
"minLength": 1
},
"color": {
"type": "string",
"pattern": "^#?[0-9a-fA-F]{6}$",
"description": "Text colour, 6-digit hex. Default 808080"
},
"layer": {
"enum": [
"above",
"behind"
],
"type": "string",
"description": "above (default) draws over the page; behind draws under the page's own content so text stays dark (a full-page scan or solid background hides it)"
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0.05,
"description": "0.05 to 1. Default 0.4"
},
"fontSize": {
"type": "number",
"maximum": 400,
"minimum": 6,
"description": "Points, 6 to 400. Default: sized automatically to fill the page"
},
"position": {
"enum": [
"center",
"top-left",
"top-right",
"bottom-left",
"bottom-right",
"tiled"
],
"type": "string"
},
"fileBase64": {
"type": "string"
},
"rotationDegrees": {
"type": "number",
"maximum": 360,
"minimum": -360,
"description": "Degrees, default 45 (0 is horizontal)"
}
},
"additionalProperties": false
}{
"title": "Pdf Watermark",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}pdf_extract_pages
Extract specific pages from a PDF into a new PDF
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64",
"pages"
],
"properties": {
"pages": {
"type": "string",
"description": "Comma-separated pages/ranges, e.g. '1,3-5,8'"
},
"fileBase64": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Pdf Extract Pages",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}pdf_organize
Reorder, duplicate, rotate, or insert blank pages in a PDF
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64",
"pageSpecs"
],
"properties": {
"pageSpecs": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"required": [
"type",
"index"
],
"properties": {
"type": {
"type": "string",
"const": "source"
},
"index": {
"type": "number"
},
"rotation": {
"type": "number"
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string",
"const": "blank"
}
},
"additionalProperties": false
}
]
},
"description": "Ordered list describing the output PDF's pages -- 'source' with a 0-based index (and optional rotation) to reuse a page from the input, or 'blank' to insert a blank page"
},
"fileBase64": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Pdf Organize",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}pdf_flatten
Permanently flatten a PDF's fillable form fields
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64"
],
"properties": {
"fileBase64": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Pdf Flatten",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}pdf_repair
Attempt to recover a damaged or corrupted PDF
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64"
],
"properties": {
"fileBase64": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Pdf Repair",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}pdf_compress
Shrink a PDF from freedailypro. Default aims for about 50% smaller: tidies structure first (text untouched), then shrinks pictures only as much as needed. level: auto (default), medium, strong. targetFileSize (such as 2MB or 500KB) is the size to end at, for auto; default is half the original.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64"
],
"properties": {
"level": {
"enum": [
"auto",
"medium",
"strong"
],
"type": "string"
},
"fileBase64": {
"type": "string"
},
"targetFileSize": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Pdf Compress",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}pdf_compress_lossless_bw
Shrink a scanned PDF from freedailypro by turning pages into pure black-and-white JBIG2 pictures, each page coded exactly as read (no letter is ever swapped; safe for contracts and numbers). Colour and shading are lost and text on converted pages is no longer selectable. A page is converted only when that makes it at least 10% smaller; other pages (for example real-text pages) are copied untouched. Errors if the PDF is unreadable, password-protected, over 100 pages, or if no smaller file results.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64"
],
"properties": {
"dpi": {
"type": "number",
"maximum": 200,
"minimum": 100,
"description": "Render resolution, 100 to 200. Default 150"
},
"fileBase64": {
"type": "string",
"description": "The PDF, base64 encoded (up to 20 MB, up to 100 pages)"
}
},
"additionalProperties": false
}{
"title": "Pdf Compress Lossless Bw",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}pdf_compress_smallest_bw
Shrink a scanned PDF from freedailypro to the smallest black-and-white file: JBIG2 symbol mode stores each letter shape once and reuses it across pages, typically 3x smaller than the lossless black-and-white file. Very rarely a letter can be swapped for a look-alike one (for example a 6 and a 8 in tiny print), so check important numbers in the original. Colour and shading are lost and text on converted pages is no longer selectable. A page is converted only when that makes it at least 10% smaller; other pages are copied untouched. Errors if the PDF is unreadable, password-protected, over 100 pages, or if no smaller file results.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64"
],
"properties": {
"dpi": {
"type": "number",
"maximum": 200,
"minimum": 100,
"description": "Render resolution, 100 to 200. Default 150"
},
"threshold": {
"type": "number",
"maximum": 0.9,
"minimum": 0.4,
"description": "How alike two letter shapes must look to share one stored shape, 0.4 to 0.9. Default 0.85; higher is safer and slightly larger"
},
"fileBase64": {
"type": "string",
"description": "The PDF, base64 encoded (up to 20 MB, up to 100 pages)"
}
},
"additionalProperties": false
}{
"title": "Pdf Compress Smallest Bw",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}pdf_compress_greyscale
Shrink a scanned PDF from freedailypro by turning pages into 100 dpi greyscale JPEG pictures: shading and photos are kept, colour is dropped, text on converted pages is no longer selectable. Larger than the black-and-white files but nothing is thresholded to pure black and white. A page is converted only when that makes it at least 10% smaller. Errors (nothing is returned) if the result would not be smaller than the original, or if the PDF is unreadable, password-protected or over 100 pages.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64"
],
"properties": {
"dpi": {
"type": "number",
"maximum": 200,
"minimum": 100,
"description": "Render resolution, 100 to 200. Default 100"
},
"fileBase64": {
"type": "string",
"description": "The PDF, base64 encoded (up to 20 MB, up to 100 pages)"
}
},
"additionalProperties": false
}{
"title": "Pdf Compress Greyscale",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}pdf_compress_balanced
Shrink a PDF from freedailypro the gentle way (the site's Balanced mode): tidy the file, empty blank pages, and re-save the pictures inside at about 140 dpi. Text stays selectable; links, bookmarks, form fields and page sizes are kept. Returns the smaller file plus the levels applied. Errors if the PDF is unreadable, password-protected, over 100 pages, or if nothing gets smaller (for example a PDF that is already mostly text); in that case try pdf_compress_aggressive.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64"
],
"properties": {
"fileBase64": {
"type": "string",
"description": "The PDF, base64 encoded (up to 20 MB, up to 100 pages)"
}
},
"additionalProperties": false
}{
"title": "Pdf Compress Balanced",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}pdf_compress_aggressive
Shrink a PDF from freedailypro harder (the site's Aggressive mode): everything Balanced does, then pages become pictures in finer and finer steps (empty areas dropped, flat areas as plain fills, photos, text and small print at lower resolutions); a page is converted only when that is clearly smaller. Text on converted pages is no longer selectable and links and form fields on them are gone (textSelectable says which). Heavier than Balanced: it can take several seconds per page, and returns the best level finished so far (truncated: true) if the time budget runs out. Errors if the PDF is unreadable, password-protected, over 100 pages, or if nothing gets smaller.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64"
],
"properties": {
"fileBase64": {
"type": "string",
"description": "The PDF, base64 encoded (up to 20 MB, up to 100 pages)"
}
},
"additionalProperties": false
}{
"title": "Pdf Compress Aggressive",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}pdf_compress_extreme
Shrink a PDF from freedailypro as far as it will go (the site's Extreme mode): everything Aggressive does, then every page as 70 dpi greyscale and as pure black-and-white JBIG2 (exact, then with shared letter shapes), keeping the smallest. Colour and shading are lost and text is no longer selectable; very rarely a letter in tiny print can be swapped for a look-alike one in the symbol-mode result, so check important numbers in the original. Heavy: several seconds per page; returns the best level finished so far (truncated: true) if the time budget runs out. Errors if the PDF is unreadable, password-protected, over 100 pages, or if nothing gets smaller.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64"
],
"properties": {
"fileBase64": {
"type": "string",
"description": "The PDF, base64 encoded (up to 20 MB, up to 100 pages)"
}
},
"additionalProperties": false
}{
"title": "Pdf Compress Extreme",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}pdf_compress_size
Shrink a PDF from freedailypro to a size you need, such as under 2 MB for an email or a portal (the site's File size mode). The same steps as Balanced, Aggressive and Extreme, gentlest first, stopping at the first one that fits. If the goal cannot be reached it finishes every allowed step and returns the smallest file with targetMet: false and limitReason. `limit` caps how far it may go (balanced keeps text selectable). Heavy at the stronger limits; returns the best level so far (truncated: true) if the time budget runs out. A PDF already under the goal is returned unchanged.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64",
"targetSize"
],
"properties": {
"limit": {
"enum": [
"balanced",
"aggressive",
"extreme"
],
"type": "string",
"description": "How far the steps may go. Default extreme. balanced = text stays selectable; aggressive = pages may become pictures; extreme = greyscale and black-and-white too"
},
"fileBase64": {
"type": "string",
"description": "The PDF, base64 encoded (up to 20 MB, up to 100 pages)"
},
"targetSize": {
"type": [
"string",
"number"
],
"description": "The size to reach: a number of bytes, or text such as 2MB or 500KB"
}
},
"additionalProperties": false
}{
"title": "Pdf Compress Size",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}image_resize
Resize an image from freedailypro with a width, a height or both (one alone keeps the aspect ratio). fit: fill (default, stretches to exactly width x height), contain (fits inside and pads with backgroundColor), cover (fills the box and crops the overflow around the centre), inside (fits within, keeps the ratio), outside (at least as large, keeps the ratio). withoutEnlargement never makes it bigger. Reads and writes JPEG, PNG, WebP, AVIF, GIF (animation kept), TIFF; the first text item is the picture as base64, the second a JSON note with its size
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64"
],
"properties": {
"fit": {
"enum": [
"fill",
"contain",
"cover",
"inside",
"outside"
],
"type": "string",
"description": "Default fill (exact width x height)"
},
"width": {
"type": "number",
"maximum": 16384,
"exclusiveMinimum": 0
},
"format": {
"type": "string",
"description": "png, jpeg (or jpg), webp, avif, gif, tiff, bmp or ico; image/... types also work. Default: the same format as the input"
},
"height": {
"type": "number",
"maximum": 16384,
"exclusiveMinimum": 0
},
"quality": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "0-1 (for example 0.8) or 1-100 (for example 80); JPEG, WebP, AVIF, and palette PNG"
},
"animated": {
"type": "boolean",
"description": "Keep every frame of an animated GIF/WebP. Default true"
},
"fileBase64": {
"type": "string"
},
"stripMetadata": {
"type": "boolean",
"description": "Remove EXIF/GPS/colour-profile data. Default true"
},
"backgroundColor": {
"type": "string",
"description": "Fill for transparent areas (always used for JPEG), e.g. '#ffffff' or 'white'"
},
"withoutEnlargement": {
"type": "boolean"
}
},
"additionalProperties": false
}{
"title": "Image Resize",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}image_crop
Crop an image to a region from freedailypro. unit fraction (default): x, y, w, h are 0 to 1 of the image; unit px: pixels. Reads and writes JPEG, PNG, WebP, AVIF, GIF (first frame), TIFF
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64",
"w",
"h"
],
"properties": {
"h": {
"type": "number",
"exclusiveMinimum": 0
},
"w": {
"type": "number",
"exclusiveMinimum": 0
},
"x": {
"type": "number",
"minimum": 0
},
"y": {
"type": "number",
"minimum": 0
},
"unit": {
"enum": [
"fraction",
"px"
],
"type": "string"
},
"format": {
"type": "string",
"description": "png, jpeg (or jpg), webp, avif, gif, tiff, bmp or ico; image/... types also work. Default: the same format as the input"
},
"quality": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "0-1 (for example 0.8) or 1-100 (for example 80); JPEG, WebP, AVIF, and palette PNG"
},
"fileBase64": {
"type": "string"
},
"stripMetadata": {
"type": "boolean",
"description": "Remove EXIF/GPS/colour-profile data. Default true"
},
"backgroundColor": {
"type": "string",
"description": "Fill for transparent areas (always used for JPEG), e.g. '#ffffff' or 'white'"
}
},
"additionalProperties": false
}{
"title": "Image Crop",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}image_flip
Flip an image horizontally (mirror left to right) or vertically from freedailypro. Reads and writes JPEG, PNG, WebP, AVIF, GIF (first frame), TIFF
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64",
"direction"
],
"properties": {
"format": {
"type": "string",
"description": "png, jpeg (or jpg), webp, avif, gif, tiff, bmp or ico; image/... types also work. Default: the same format as the input"
},
"quality": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "0-1 (for example 0.8) or 1-100 (for example 80); JPEG, WebP, AVIF, and palette PNG"
},
"direction": {
"enum": [
"horizontal",
"vertical"
],
"type": "string"
},
"fileBase64": {
"type": "string"
},
"stripMetadata": {
"type": "boolean",
"description": "Remove EXIF/GPS/colour-profile data. Default true"
},
"backgroundColor": {
"type": "string",
"description": "Fill for transparent areas (always used for JPEG), e.g. '#ffffff' or 'white'"
}
},
"additionalProperties": false
}{
"title": "Image Flip",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}image_rotate
Rotate an image clockwise by 90, 180 or 270 degrees from freedailypro (no other angles). Reads and writes JPEG, PNG, WebP, AVIF, GIF (first frame), TIFF
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64",
"degrees"
],
"properties": {
"format": {
"type": "string",
"description": "png, jpeg (or jpg), webp, avif, gif, tiff, bmp or ico; image/... types also work. Default: the same format as the input"
},
"degrees": {
"enum": [
90,
180,
270
],
"type": "number"
},
"quality": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "0-1 (for example 0.8) or 1-100 (for example 80); JPEG, WebP, AVIF, and palette PNG"
},
"fileBase64": {
"type": "string"
},
"stripMetadata": {
"type": "boolean",
"description": "Remove EXIF/GPS/colour-profile data. Default true"
},
"backgroundColor": {
"type": "string",
"description": "Fill for transparent areas (always used for JPEG), e.g. '#ffffff' or 'white'"
}
},
"additionalProperties": false
}{
"title": "Image Rotate",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}image_compress
Make an image file smaller from freedailypro: same format unless format is given (png, jpeg, webp, avif, gif, tiff), quality 1-100 for JPEG/WebP/AVIF (default 80), PNG stays lossless unless quality is below 100 (then a smaller 256-colour palette), metadata removed unless stripMetadata is false, optional maxWidth/maxHeight (never enlarges). If the file cannot be made smaller in its own format the original bytes come back unchanged and the note says so
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64"
],
"properties": {
"format": {
"type": "string",
"description": "png, jpeg (or jpg), webp, avif, gif, tiff, bmp or ico; image/... types also work. Default: the same format as the input"
},
"quality": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "0-1 (for example 0.8) or 1-100 (for example 80); JPEG, WebP, AVIF, and palette PNG"
},
"lossless": {
"type": "boolean",
"description": "WebP/AVIF lossless"
},
"maxWidth": {
"type": "integer",
"maximum": 16384,
"minimum": 1
},
"maxHeight": {
"type": "integer",
"maximum": 16384,
"minimum": 1
},
"fileBase64": {
"type": "string"
},
"stripMetadata": {
"type": "boolean",
"description": "Remove EXIF/GPS/colour-profile data. Default true"
},
"backgroundColor": {
"type": "string",
"description": "Fill for transparent areas (always used for JPEG), e.g. '#ffffff' or 'white'"
}
},
"additionalProperties": false
}{
"title": "Image Compress",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}image_watermark
Put a watermark on an image from freedailypro: text (drawn in Roboto, Latin/Greek/Cyrillic) or a watermark picture (watermarkBase64), at a position (center, top-left, top, top-right, left, right, bottom-left, bottom, bottom-right or tile), with opacity 0-1, size, margin and rotation. Reads and writes JPEG, PNG, WebP, AVIF, GIF (first frame), TIFF
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64"
],
"properties": {
"text": {
"type": "string",
"maxLength": 200,
"description": "The words to stamp. Send this or watermarkBase64"
},
"color": {
"type": "string",
"description": "Text colour, a name or hex. Default white"
},
"scale": {
"type": "number",
"maximum": 1,
"description": "Watermark picture width as a share of the image width. Default 0.2",
"exclusiveMinimum": 0
},
"format": {
"type": "string",
"description": "png, jpeg (or jpg), webp, avif, gif, tiff, bmp or ico; image/... types also work. Default: the same format as the input"
},
"margin": {
"type": "number",
"maximum": 2000,
"minimum": 0,
"description": "Distance from the edge in pixels"
},
"opacity": {
"type": "number",
"maximum": 1,
"minimum": 0,
"description": "Default 0.5"
},
"quality": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "0-1 (for example 0.8) or 1-100 (for example 80); JPEG, WebP, AVIF, and palette PNG"
},
"fontSize": {
"type": "number",
"maximum": 1000,
"minimum": 6,
"description": "Text size in pixels. Default about 1/12 of the shorter side"
},
"position": {
"enum": [
"center",
"top-left",
"top",
"top-right",
"left",
"right",
"bottom-left",
"bottom",
"bottom-right",
"tile"
],
"type": "string",
"description": "Default bottom-right"
},
"rotation": {
"type": "number",
"maximum": 180,
"minimum": -180,
"description": "Degrees; tile defaults to -30"
},
"fileBase64": {
"type": "string"
},
"stripMetadata": {
"type": "boolean",
"description": "Remove EXIF/GPS/colour-profile data. Default true"
},
"backgroundColor": {
"type": "string",
"description": "Fill for transparent areas (always used for JPEG), e.g. '#ffffff' or 'white'"
},
"watermarkBase64": {
"type": "string",
"description": "A watermark picture (PNG with transparency works best), base64"
}
},
"additionalProperties": false
}{
"title": "Image Watermark",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}image_convert
Convert an image to PNG, JPEG, WebP, AVIF, GIF, TIFF, BMP or ICO from freedailypro, with optional quality, background colour, resize (fit modes), rotate/flip, grayscale, DPI and metadata controls. Inputs: JPEG, PNG, WebP, GIF (animated kept for GIF/WebP output), AVIF, TIFF, SVG, BMP. HEIC is not supported. Returns the converted file as base64 text.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64",
"format"
],
"properties": {
"dpi": {
"type": "integer",
"maximum": 2400,
"minimum": 1,
"description": "Print resolution written into PNG, JPEG, TIFF and BMP"
},
"fit": {
"enum": [
"cover",
"contain",
"fill",
"inside",
"outside"
],
"type": "string",
"description": "How the picture meets width and height. Default inside"
},
"blur": {
"type": [
"boolean",
"number"
]
},
"flip": {
"type": "boolean",
"description": "Mirror top to bottom"
},
"flop": {
"type": "boolean",
"description": "Mirror left to right"
},
"sizes": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "number"
}
}
],
"description": "ICO sizes, from 16, 32, 48, 64, 128, 256 (e.g. '16,32,48'). Default 16,32,48"
},
"width": {
"type": "integer",
"maximum": 16384,
"minimum": 1
},
"effort": {
"type": "integer",
"maximum": 10,
"minimum": 0,
"description": "0 fastest to 10 smallest file (clamped to what the format allows; 'speed' is the same thing)"
},
"format": {
"type": "string",
"description": "png, jpeg (or jpg), webp, avif, gif, tiff, bmp or ico; image/... types such as image/webp also work"
},
"height": {
"type": "integer",
"maximum": 16384,
"minimum": 1
},
"rotate": {
"type": "integer",
"description": "Multiple of 90 degrees clockwise (not for animated images)"
},
"quality": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "0-1 (for example 0.8) or 1-100 (for example 80); JPEG, WebP, AVIF (and TIFF with jpeg compression, palette PNG)"
},
"sharpen": {
"type": [
"boolean",
"number"
]
},
"animated": {
"type": "boolean",
"description": "Keep every frame of an animated GIF/WebP when the output is GIF or WebP. Default true"
},
"bitDepth": {
"enum": [
24,
32
],
"type": "number",
"description": "BMP: 24 (no transparency) or 32 (keeps transparency)"
},
"lossless": {
"type": "boolean",
"description": "WebP/AVIF lossless; false on PNG makes a smaller 256-colour palette PNG"
},
"grayscale": {
"type": "boolean"
},
"autoOrient": {
"type": "boolean",
"description": "Turn photos upright from their EXIF rotation flag. Default true"
},
"fileBase64": {
"type": "string"
},
"pngPalette": {
"type": "boolean",
"description": "PNG: reduce to a 256-colour palette for a smaller file"
},
"progressive": {
"type": "boolean",
"description": "JPEG progressive scan"
},
"stripMetadata": {
"type": "boolean",
"description": "Remove EXIF/ICC data. Default true; false keeps it"
},
"backgroundColor": {
"type": "string",
"description": "Fill for transparent areas, e.g. '#ffffff', 'ffffff' or 'white'. Default white for JPEG and 24-bit BMP; for other formats only applied when given"
},
"tiffCompression": {
"enum": [
"none",
"lzw",
"deflate",
"jpeg"
],
"type": "string"
},
"chromaSubsampling": {
"enum": [
"4:4:4",
"4:2:0"
],
"type": "string",
"description": "JPEG/AVIF colour detail: 4:4:4 sharpest, 4:2:0 smaller"
},
"withoutEnlargement": {
"type": "boolean",
"description": "Never make the picture bigger than the original"
},
"pngCompressionLevel": {
"type": "integer",
"maximum": 9,
"minimum": 0
}
},
"additionalProperties": false
}{
"title": "Image Convert",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}video_convert
Convert a video between formats (mp4/mp4-web/webm/mov)
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64",
"format"
],
"properties": {
"format": {
"enum": [
"mp4",
"mp4-web",
"webm",
"mov"
],
"type": "string"
},
"fileBase64": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Video Convert",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}video_trim
Trim a video to a time range -- stream-copy, cuts snap to the nearest keyframe
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64",
"startSeconds",
"endSeconds"
],
"properties": {
"endSeconds": {
"type": "number"
},
"fileBase64": {
"type": "string"
},
"startSeconds": {
"type": "number",
"minimum": 0
}
},
"additionalProperties": false
}{
"title": "Video Trim",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}video_merge
Merge multiple videos into one -- requires matching codec/resolution/frame rate across inputs
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"filesBase64"
],
"properties": {
"filesBase64": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 2
}
},
"additionalProperties": false
}{
"title": "Video Merge",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}video_extract_audio
Extract a video's audio track as MP3
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64"
],
"properties": {
"fileBase64": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Video Extract Audio",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}video_thumbnail
Extract a video frame as a JPEG thumbnail
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64"
],
"properties": {
"atSeconds": {
"type": "number",
"default": 0,
"minimum": 0
},
"fileBase64": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Video Thumbnail",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}video_to_gif
Convert a video to an animated GIF -- two-pass palette encoding
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64"
],
"properties": {
"fileBase64": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Video To Gif",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}video_subtitle
Burn SRT subtitles permanently into a video
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64",
"srt"
],
"properties": {
"srt": {
"type": "string",
"description": "Subtitle text in SRT format"
},
"fileBase64": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Video Subtitle",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}video_compress
Compress a video toward a target file size (targetFileSize such as 25MB; default half the original) -- two-pass encode, a floor bitrate is enforced below which quality degrades too much to be worth watching
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64"
],
"properties": {
"fileBase64": {
"type": "string"
},
"targetFileSize": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Video Compress",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}audio_convert
Convert audio between formats (mp3/wav/ogg/m4a/flac)
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64",
"format"
],
"properties": {
"format": {
"enum": [
"mp3",
"wav",
"ogg",
"m4a",
"flac"
],
"type": "string"
},
"fileBase64": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Audio Convert",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}audio_trim
Trim audio to a time range
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64",
"startSeconds",
"endSeconds"
],
"properties": {
"endSeconds": {
"type": "number"
},
"fileBase64": {
"type": "string"
},
"startSeconds": {
"type": "number",
"minimum": 0
}
},
"additionalProperties": false
}{
"title": "Audio Trim",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}audio_merge
Merge multiple audio files into one
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"filesBase64"
],
"properties": {
"filesBase64": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 2
}
},
"additionalProperties": false
}{
"title": "Audio Merge",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}audio_compress
Compress audio toward a target file size (targetFileSize such as "2MB"; default half the original)
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64"
],
"properties": {
"fileBase64": {
"type": "string"
},
"targetFileSize": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Audio Compress",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}audio_normalize
Normalize audio loudness -- EBU R128 broadcast standard
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64"
],
"properties": {
"fileBase64": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Audio Normalize",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}audio_speed
Change audio playback speed without altering pitch -- 0.5 to 2.0
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64",
"speed"
],
"properties": {
"speed": {
"type": "number",
"maximum": 2,
"minimum": 0.5
},
"fileBase64": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Audio Speed",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}audio_pitch
Shift audio pitch without altering speed
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64",
"semitones"
],
"properties": {
"semitones": {
"type": "number"
},
"fileBase64": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Audio Pitch",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}audio_denoise
Reduce background noise in audio -- FFT-based spectral subtraction
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64"
],
"properties": {
"fileBase64": {
"type": "string"
},
"strengthDb": {
"type": "number",
"default": 20,
"exclusiveMinimum": 0
}
},
"additionalProperties": false
}{
"title": "Audio Denoise",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}audio_remove_silence
Remove silence throughout an audio file
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64"
],
"properties": {
"fileBase64": {
"type": "string"
},
"thresholdDb": {
"type": "number",
"default": -30
},
"minDurationSeconds": {
"type": "number",
"default": 0.3,
"exclusiveMinimum": 0
}
},
"additionalProperties": false
}{
"title": "Audio Remove Silence",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}pptx_extract_text
Get the text of every slide in a PowerPoint (.pptx) from freedailypro: titles, bullets (with their level) and tables, optionally with the speaker notes. format: txt (default), md or json (json returns slides with title, paragraphs, tables and notes, easiest to process). Hidden slides are skipped unless includeHidden is true. Charts and diagrams are not read (counted in the output instead). Errors when the deck has no text at all (a deck made only of pictures).
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64"
],
"properties": {
"format": {
"enum": [
"txt",
"md",
"json"
],
"type": "string",
"description": "Default txt"
},
"fileBase64": {
"type": "string",
"description": "The presentation (.pptx), base64 encoded. Up to 50 MB and 500 slides. Old .ppt files and password-protected files are not supported."
},
"includeNotes": {
"type": "boolean",
"description": "Add each slide's speaker notes. Default false."
},
"includeHidden": {
"type": "boolean",
"description": "Include hidden slides. Default false."
}
},
"additionalProperties": false
}{
"title": "Pptx Extract Text",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}pptx_extract_notes
Get the speaker notes of a PowerPoint (.pptx) from freedailypro, slide by slide. format: txt (default), md, or docx (a Word file, returned as base64). Hidden slides' notes are skipped unless includeHidden is true. Errors when the deck has no speaker notes.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64"
],
"properties": {
"format": {
"enum": [
"txt",
"md",
"docx"
],
"type": "string",
"description": "Default txt"
},
"fileBase64": {
"type": "string",
"description": "The presentation (.pptx), base64 encoded. Up to 50 MB and 500 slides. Old .ppt files and password-protected files are not supported."
},
"includeHidden": {
"type": "boolean",
"description": "Include notes of hidden slides. Default false."
}
},
"additionalProperties": false
}{
"title": "Pptx Extract Notes",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}pptx_extract_images
Pull the pictures out of a PowerPoint (.pptx) from freedailypro as a ZIP (returned as base64), each file exactly as stored in the deck and named by slide, for example slide02_image-2-1.jpeg. Pictures that only the slide design uses (a logo on the master) are left out unless includeTemplatePictures is true; pictures on hidden slides are left out unless includeHidden is true. Errors when there are none.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64"
],
"properties": {
"fileBase64": {
"type": "string",
"description": "The presentation (.pptx), base64 encoded. Up to 50 MB and 500 slides. Old .ppt files and password-protected files are not supported."
},
"includeHidden": {
"type": "boolean",
"description": "Include pictures that appear only on hidden slides. Default false."
},
"includeTemplatePictures": {
"type": "boolean",
"description": "Include pictures used only by the master or layouts. Default false."
}
},
"additionalProperties": false
}{
"title": "Pptx Extract Images",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}pptx_clean
Strip what you do not want to share from a PowerPoint (.pptx) from freedailypro, and get a clean .pptx back (base64): speaker notes, comments, hidden slides, author and company details with the revision list, and the stored preview picture. All of those are on by default; documentProperties (title, subject, keywords) and customProperties (labels and tags) are off by default. Slide content, layout and formatting are untouched, and parts only the removed slides used are dropped. Errors if every slide is hidden and hiddenSlides is on.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64"
],
"properties": {
"notes": {
"type": "boolean",
"description": "Remove speaker notes. Default true."
},
"comments": {
"type": "boolean",
"description": "Remove comments. Default true."
},
"thumbnail": {
"type": "boolean",
"description": "Remove the small preview picture stored in the file. Default true."
},
"authorInfo": {
"type": "boolean",
"description": "Remove author, last modified by, company, manager and the revision list. Default true."
},
"fileBase64": {
"type": "string",
"description": "The presentation (.pptx), base64 encoded. Up to 50 MB and 500 slides. Old .ppt files and password-protected files are not supported."
},
"hiddenSlides": {
"type": "boolean",
"description": "Delete slides that are hidden when presenting. Default true."
},
"customProperties": {
"type": "boolean",
"description": "Also remove custom document properties. Default false."
},
"documentProperties": {
"type": "boolean",
"description": "Also clear title, subject, keywords, description and category. Default false."
}
},
"additionalProperties": false
}{
"title": "Pptx Clean",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}pptx_compress_default
Compress a PowerPoint (.pptx) from freedailypro at the Default level, the sharpest: pictures are kept up to 220 dpi at JPEG quality 82, large photos get smaller, and nothing is converted from PNG to JPEG. Only pictures are re-saved (JPEG, PNG, BMP); text, layouts, charts, animations, audio and video are left exactly as they are, so the deck stays fully editable. Returns the smaller .pptx as base64 plus originalBytes, outputBytes, reductionPercent and the pictures changed. Errors with a plain reason (422) when nothing can get smaller, for example a deck with no pictures.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64"
],
"properties": {
"maxDpi": {
"type": "number",
"maximum": 300,
"minimum": 48,
"description": "Never keep pictures sharper than this many dpi (48 to 300), on top of the level."
},
"fileBase64": {
"type": "string",
"description": "The presentation (.pptx), base64 encoded. Up to 50 MB and 500 slides. Old .ppt files and password-protected files are not supported."
},
"removeNotes": {
"type": "boolean",
"description": "Also remove speaker notes first. Default false."
},
"removeThumbnail": {
"type": "boolean",
"description": "Also remove the stored preview picture. Default false."
},
"removeUnusedLayouts": {
"type": "boolean",
"description": "Also remove slide layouts no slide uses, and the pictures only they carry. Default false."
}
},
"additionalProperties": false
}{
"title": "Pptx Compress Default",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}pptx_compress_medium
Compress a PowerPoint (.pptx) from freedailypro at the Medium level: pictures up to 150 dpi at JPEG quality 72, and opaque PNG photos are re-saved as JPEG when that is under half the size. Good for email. Only pictures are re-saved (JPEG, PNG, BMP); text, layouts, charts, animations, audio and video are left exactly as they are, so the deck stays fully editable. Returns the smaller .pptx as base64 plus originalBytes, outputBytes, reductionPercent and the pictures changed. Errors with a plain reason (422) when nothing can get smaller, for example a deck with no pictures.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64"
],
"properties": {
"maxDpi": {
"type": "number",
"maximum": 300,
"minimum": 48,
"description": "Never keep pictures sharper than this many dpi (48 to 300), on top of the level."
},
"fileBase64": {
"type": "string",
"description": "The presentation (.pptx), base64 encoded. Up to 50 MB and 500 slides. Old .ppt files and password-protected files are not supported."
},
"removeNotes": {
"type": "boolean",
"description": "Also remove speaker notes first. Default false."
},
"removeThumbnail": {
"type": "boolean",
"description": "Also remove the stored preview picture. Default false."
},
"removeUnusedLayouts": {
"type": "boolean",
"description": "Also remove slide layouts no slide uses, and the pictures only they carry. Default false."
}
},
"additionalProperties": false
}{
"title": "Pptx Compress Medium",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}pptx_compress_strong
Compress a PowerPoint (.pptx) from freedailypro at the Strong level, the smallest of the three: pictures up to 110 dpi at JPEG quality 58. Fine on screen, soft in print. Only pictures are re-saved (JPEG, PNG, BMP); text, layouts, charts, animations, audio and video are left exactly as they are, so the deck stays fully editable. Returns the smaller .pptx as base64 plus originalBytes, outputBytes, reductionPercent and the pictures changed. Errors with a plain reason (422) when nothing can get smaller, for example a deck with no pictures.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64"
],
"properties": {
"maxDpi": {
"type": "number",
"maximum": 300,
"minimum": 48,
"description": "Never keep pictures sharper than this many dpi (48 to 300), on top of the level."
},
"fileBase64": {
"type": "string",
"description": "The presentation (.pptx), base64 encoded. Up to 50 MB and 500 slides. Old .ppt files and password-protected files are not supported."
},
"removeNotes": {
"type": "boolean",
"description": "Also remove speaker notes first. Default false."
},
"removeThumbnail": {
"type": "boolean",
"description": "Also remove the stored preview picture. Default false."
},
"removeUnusedLayouts": {
"type": "boolean",
"description": "Also remove slide layouts no slide uses, and the pictures only they carry. Default false."
}
},
"additionalProperties": false
}{
"title": "Pptx Compress Strong",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}pptx_compress_size
Compress a PowerPoint (.pptx) from freedailypro to a size you need, such as under 10 MB for an email or an upload form. Runs from the sharpest picture setting to the coarsest and returns the sharpest result that fits targetSize, with targetMet: true. If it cannot fit, you get the smallest file it can make with targetMet: false and a note. A deck already at or under the target is returned unchanged. Only pictures are re-saved (JPEG, PNG, BMP); text, layouts, charts, animations, audio and video are left exactly as they are, so the deck stays fully editable. Returns the smaller .pptx as base64 plus originalBytes, outputBytes, reductionPercent and the pictures changed. Errors with a plain reason (422) when nothing can get smaller, for example a deck with no pictures.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64",
"targetSize"
],
"properties": {
"maxDpi": {
"type": "number",
"maximum": 300,
"minimum": 48,
"description": "Never keep pictures sharper than this many dpi (48 to 300), on top of the level."
},
"fileBase64": {
"type": "string",
"description": "The presentation (.pptx), base64 encoded. Up to 50 MB and 500 slides. Old .ppt files and password-protected files are not supported."
},
"targetSize": {
"type": [
"string",
"number"
],
"description": "The size to reach: a number of bytes, or text such as 10MB or 800KB (at least 1 KB)"
},
"removeNotes": {
"type": "boolean",
"description": "Also remove speaker notes first. Default false."
},
"removeThumbnail": {
"type": "boolean",
"description": "Also remove the stored preview picture. Default false."
},
"removeUnusedLayouts": {
"type": "boolean",
"description": "Also remove slide layouts no slide uses, and the pictures only they carry. Default false."
}
},
"additionalProperties": false
}{
"title": "Pptx Compress Size",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}pptx_split
Split a PowerPoint (.pptx) from freedailypro into several presentations, returned as ONE ZIP (base64) of .pptx files, each a complete editable deck keeping its own slides' notes, pictures, charts and tables. mode: each (one file per slide; default), every (every N slides, give every), or range (ranges such as '1-3,5,8-': one file per range, or one file with all of them when rangesAsFiles is false). At most 100 files. Errors name the slide numbers that do not exist.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64"
],
"properties": {
"mode": {
"enum": [
"each",
"every",
"range"
],
"type": "string",
"description": "Default: range when ranges is given, every when every is given, otherwise each."
},
"every": {
"type": "integer",
"minimum": 1,
"description": "every mode: slides per file, for example 5"
},
"ranges": {
"type": "string",
"description": "range mode: comma-separated slides or ranges, for example 1-3,5,8- (8- means 8 to the end)"
},
"fileName": {
"type": "string",
"description": "Base name for the files inside the ZIP, for example talk.pptx gives talk_slide-01.pptx"
},
"fileBase64": {
"type": "string",
"description": "The presentation (.pptx), base64 encoded. Up to 50 MB and 500 slides. Old .ppt files and password-protected files are not supported."
},
"rangesAsFiles": {
"type": "boolean",
"description": "range mode: true (default) makes one file per range; false puts every chosen slide into one file."
}
},
"additionalProperties": false
}{
"title": "Pptx Split",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}pptx_organize
Reorder, delete and duplicate the slides of a PowerPoint (.pptx) from freedailypro, returning a new editable .pptx (base64); the slide master, layouts and theme stay as they were and every slide keeps its notes, pictures, charts and tables. order: the final order as 1-based slide numbers, for example [3,1,2] (a number twice makes a copy). remove: slides to delete. duplicate: slides to copy, the copy placed right after the original. removeHidden: delete every hidden slide. Slide numbers always refer to the ORIGINAL deck. Errors when a number does not exist or every slide would be removed.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64"
],
"properties": {
"order": {
"type": "array",
"items": {
"type": "integer",
"minimum": 1
},
"description": "Final order, for example [3,1,2]. Default: the current order."
},
"remove": {
"type": "array",
"items": {
"type": "integer",
"minimum": 1
},
"description": "Original slide numbers to delete"
},
"duplicate": {
"type": "array",
"items": {
"type": "integer",
"minimum": 1
},
"description": "Original slide numbers to copy (the copy follows the original)"
},
"fileBase64": {
"type": "string",
"description": "The presentation (.pptx), base64 encoded. Up to 50 MB and 500 slides. Old .ppt files and password-protected files are not supported."
},
"removeHidden": {
"type": "boolean",
"description": "Delete every slide that is hidden when presenting"
}
},
"additionalProperties": false
}{
"title": "Pptx Organize",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}pptx_merge
Merge two or more PowerPoint (.pptx) files from freedailypro into one editable presentation (base64), slides in the order the files are given. Each deck keeps its own master, layouts and theme (several masters in one file), so slides keep the look they came with; set useFirstDesign true to put later decks on the first deck's layouts when they match by name. All decks must have the SAME slide size: otherwise it errors (422) naming the decks and their sizes, so fix the size first (in PowerPoint: Design, Slide Size). Comments of the second and later decks are left out. Up to 10 decks and 100 MB in all.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"files"
],
"properties": {
"files": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"base64"
],
"properties": {
"name": {
"type": "string",
"description": "File name, used in error messages, for example q1.pptx"
},
"base64": {
"type": "string",
"description": "The presentation (.pptx), base64 encoded. Up to 50 MB and 500 slides. Old .ppt files and password-protected files are not supported."
}
},
"additionalProperties": false
},
"maxItems": 10,
"minItems": 2
},
"useFirstDesign": {
"type": "boolean",
"description": "Put every later deck on the first deck's layouts. Refused with the reason when they do not match."
}
},
"additionalProperties": false
}{
"title": "Pptx Merge",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}markdown_to_pptx
Turn Markdown or a plain outline into an editable PowerPoint (.pptx, base64) from freedailypro, with real title and body placeholders (so Outline view, the slide master and accessibility checks work). `# Title` makes the title slide (a short line under it is the subtitle), `## Heading` a new slide, `### Heading` a bold sub-heading, `- item` / `1. item` bullets (indent two spaces for sub-bullets), `| a | b |` tables, `Note: text` speaker notes, `---` ends a slide, **bold**, *italic*, `code` and [links](https://example.com) work. Pictures given by web address are not fetched (reported in warnings); use json_to_pptx to put pictures in. mode outline reads an indented outline instead (first line = deck title). Themes: clean, dark, corporate, warm, minimal, or a brand colour and fonts.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"markdown"
],
"properties": {
"mode": {
"enum": [
"markdown",
"outline"
],
"type": "string",
"description": "Default markdown"
},
"brand": {
"type": "object",
"required": [
"color"
],
"properties": {
"dark": {
"type": "boolean",
"description": "Dark slide background."
},
"color": {
"type": "string",
"description": "Brand colour as hex, for example #0b6e4f. Used for the accent and the cover."
},
"bodyFont": {
"type": "string",
"description": "Body font, for example Calibri."
},
"headingFont": {
"type": "string",
"description": "Heading font, for example Georgia. Default Calibri."
}
},
"description": "A theme made from a brand colour and fonts. Replaces theme.",
"additionalProperties": false
},
"theme": {
"enum": [
"clean",
"dark",
"corporate",
"warm",
"minimal"
],
"type": "string",
"description": "Built-in look. Default clean. Ignored when brand is given."
},
"markdown": {
"type": "string",
"maxLength": 1000000,
"minLength": 1,
"description": "The deck as Markdown (or an indented outline in outline mode)"
}
},
"additionalProperties": false
}{
"title": "Markdown To Pptx",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}json_to_pptx
Build an editable PowerPoint (.pptx, base64) from a JSON description of the slides, from freedailypro. Each slide takes title, subtitle, bullets (strings, or {text, bullets:[...]} for sub-bullets; set numbered true for 1. 2. 3.), text (a paragraph or list of paragraphs), table ({header:[...], rows:[[...]]}), image ({data: base64 or data: URI of a PNG, JPEG or GIF, alt: description}) and notes (speaker notes). A slide with only a title (and subtitle) is a cover when it is first or has a subtitle; layout "title" or "content" forces it. With an image the text sits on the left and the picture on the right, keeping its shape; an image alone is centred. Bullets, text and subtitle accept **bold**, *italic*, `code` and [links](https://example.com); titles and table cells are plain text. Pictures are never fetched from a URL: send base64, and give each an alt text (a warning says when it is missing). Limits: 200 slides, 40 bullets per slide, tables of 60 rows and 12 columns (a table over 14 rows will run off the slide: warning), pictures 8 MB each and 24 MB in all. Themes clean, dark, corporate, warm, minimal, or brand {color, headingFont, bodyFont, dark}. Returns fileName, base64, slides and warnings; invalid input errors name the field, for example slides[2].bullets[1] must be text.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"slides"
],
"properties": {
"brand": {
"type": "object",
"required": [
"color"
],
"properties": {
"dark": {
"type": "boolean",
"description": "Dark slide background."
},
"color": {
"type": "string",
"description": "Brand colour as hex, for example #0b6e4f. Used for the accent and the cover."
},
"bodyFont": {
"type": "string",
"description": "Body font, for example Calibri."
},
"headingFont": {
"type": "string",
"description": "Heading font, for example Georgia. Default Calibri."
}
},
"description": "A theme made from a brand colour and fonts. Replaces theme.",
"additionalProperties": false
},
"theme": {
"enum": [
"clean",
"dark",
"corporate",
"warm",
"minimal"
],
"type": "string",
"description": "Built-in look. Default clean. Ignored when brand is given."
},
"title": {
"type": "string",
"description": "Deck title (file property). Default: the first slide's title."
},
"slides": {
"type": "array",
"items": {
"type": "object",
"properties": {
"text": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
],
"description": "A paragraph (or list of paragraphs) shown above the bullets"
},
"image": {
"anyOf": [
{
"type": "string"
},
{
"type": "object",
"required": [
"data"
],
"properties": {
"alt": {
"type": "string",
"description": "What the picture shows, for screen readers"
},
"data": {
"type": "string",
"description": "Base64 (or a data: URI) of a PNG, JPEG or GIF"
}
},
"additionalProperties": false
}
]
},
"notes": {
"type": "string",
"description": "Speaker notes"
},
"table": {
"anyOf": [
{
"type": "object",
"required": [
"rows"
],
"properties": {
"rows": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": [
"string",
"number",
"boolean",
"null"
]
}
}
},
"header": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
{
"type": "array",
"items": {
"type": "array",
"items": {
"$ref": "#/properties/slides/items/properties/table/anyOf/0/properties/rows/items/items"
}
}
}
],
"description": "A table: {header: [...], rows: [[...]]} or just rows"
},
"title": {
"type": "string",
"description": "Slide title (plain text)"
},
"layout": {
"enum": [
"title",
"content"
],
"type": "string",
"description": "title = cover slide (only title and subtitle); content = normal slide"
},
"bullets": {
"type": "array",
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string"
},
"bullets": {
"type": "array",
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string"
},
"bullets": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
}
]
},
"description": "Sub-bullets (up to 5 levels in total)"
}
},
"additionalProperties": false
}
]
},
"description": "Bullet list; an item can be text or {text, bullets: [...]}"
},
"numbered": {
"type": "boolean",
"description": "Number the top-level bullets"
},
"subtitle": {
"type": "string",
"description": "Shown under the title on a cover slide"
}
},
"additionalProperties": false
},
"maxItems": 200,
"minItems": 1
}
},
"additionalProperties": false
}{
"title": "Json To Pptx",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}csv_to_pptx
Turn a CSV file into an editable PowerPoint (.pptx, base64) of table slides from freedailypro: a cover slide, then the header and up to rowsPerSlide (default 12, max 40) rows on each slide, titled 'Title (1 of 3)'. The first row holds the column names unless header is false. The delimiter (comma, semicolon or tab) is found from the first line. At most 12 columns and 200 slides; cells are kept as plain text. Themes clean, dark, corporate, warm, minimal, or a brand.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"csv"
],
"properties": {
"csv": {
"type": "string",
"minLength": 1,
"description": "The CSV text (up to 10 MB)"
},
"brand": {
"type": "object",
"required": [
"color"
],
"properties": {
"dark": {
"type": "boolean",
"description": "Dark slide background."
},
"color": {
"type": "string",
"description": "Brand colour as hex, for example #0b6e4f. Used for the accent and the cover."
},
"bodyFont": {
"type": "string",
"description": "Body font, for example Calibri."
},
"headingFont": {
"type": "string",
"description": "Heading font, for example Georgia. Default Calibri."
}
},
"description": "A theme made from a brand colour and fonts. Replaces theme.",
"additionalProperties": false
},
"theme": {
"enum": [
"clean",
"dark",
"corporate",
"warm",
"minimal"
],
"type": "string",
"description": "Built-in look. Default clean. Ignored when brand is given."
},
"title": {
"type": "string",
"description": "Deck and slide title. Default Data."
},
"header": {
"type": "boolean",
"description": "The first row holds column names. Default true."
},
"delimiter": {
"type": "string",
"description": "One character, or tab. Default: detected."
},
"titleSlide": {
"type": "boolean",
"description": "Add a cover slide with the title and the table size. Default true."
},
"rowsPerSlide": {
"type": "integer",
"maximum": 40,
"minimum": 1,
"description": "Data rows per slide. Default 12."
}
},
"additionalProperties": false
}{
"title": "Csv To Pptx",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}pptx_find_replace
Find and replace text across every slide of a PowerPoint (.pptx) from freedailypro, and get the edited .pptx back (base64). Matches inside a paragraph are replaced even when PowerPoint split the words into several runs; the formatting of the first run is kept. Speaker notes are searched too (includeNotes, default true); the slide master and layouts only when includeTemplate is true. Errors with 422 when nothing matches, so a wrong spelling is noticed.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64",
"find"
],
"properties": {
"find": {
"type": "string",
"maxLength": 500,
"minLength": 1,
"description": "The text to look for"
},
"replace": {
"type": "string",
"maxLength": 5000,
"description": "The new text. Empty removes the match."
},
"matchCase": {
"type": "boolean",
"description": "Match upper and lower case exactly. Default false."
},
"wholeWord": {
"type": "boolean",
"description": "Match whole words only. Default false."
},
"fileBase64": {
"type": "string",
"description": "The presentation (.pptx), base64 encoded. Up to 50 MB and 500 slides. Old .ppt files and password-protected files are not supported."
},
"skipSlides": {
"type": "array",
"items": {
"type": "integer",
"minimum": 1
},
"description": "Slide numbers to leave alone"
},
"includeNotes": {
"type": "boolean",
"description": "Also change speaker notes. Default true."
},
"includeTemplate": {
"type": "boolean",
"description": "Also change the slide master and layouts (footers, company names in the design). Default false."
}
},
"additionalProperties": false
}{
"title": "Pptx Find Replace",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}pptx_fonts
List every font a PowerPoint (.pptx) from freedailypro uses, as JSON: name, how many places use it, which slides, whether the master/layouts/theme use it, whether it is the theme's heading or body font and whether it is embedded. Use it before pptx_replace_fonts.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64"
],
"properties": {
"fileBase64": {
"type": "string",
"description": "The presentation (.pptx), base64 encoded. Up to 50 MB and 500 slides. Old .ppt files and password-protected files are not supported."
}
},
"additionalProperties": false
}{
"title": "Pptx Fonts",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}pptx_replace_fonts
Swap fonts across a PowerPoint (.pptx) from freedailypro and get the new .pptx (base64): slides, notes, layouts, masters, the theme's heading and body fonts, charts and SmartArt. mapping is {"Old font": "New font"}. Embedded copies of replaced fonts are removed. Errors (422) when none of the named fonts is used. Text is not resized, so a wider font can make a line wrap.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64",
"mapping"
],
"properties": {
"mapping": {
"type": "object",
"description": "Old font name to new font name, for example {\"Calibri\": \"Arial\"}",
"additionalProperties": {
"type": "string"
}
},
"fileBase64": {
"type": "string",
"description": "The presentation (.pptx), base64 encoded. Up to 50 MB and 500 slides. Old .ppt files and password-protected files are not supported."
}
},
"additionalProperties": false
}{
"title": "Pptx Replace Fonts",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}pptx_slide_numbers
Add slide numbers to a PowerPoint (.pptx) from freedailypro, or remove them, and get the new .pptx (base64). The numbers are real slide-number fields, so they follow when slides move. Slides that already have a number are left alone. 'of-total' writes the total as plain text (PowerPoint has no total field). mode remove takes off the numbers the slides themselves carry (not those on the master).
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64"
],
"properties": {
"mode": {
"enum": [
"add",
"remove"
],
"type": "string",
"description": "Default add"
},
"size": {
"type": "number",
"maximum": 40,
"minimum": 8,
"description": "Points. Default 12."
},
"color": {
"type": "string",
"description": "Hex colour, for example 595959"
},
"format": {
"enum": [
"number",
"slide-number",
"of-total"
],
"type": "string",
"description": "3, Slide 3 or 3 / 12. Default number."
},
"startAt": {
"type": "integer",
"maximum": 9999,
"minimum": 0,
"description": "Number of the first slide. Default 1; 0 makes the second slide 1."
},
"position": {
"enum": [
"bottom-right",
"bottom-center",
"bottom-left",
"top-right"
],
"type": "string",
"description": "Default bottom-right"
},
"skipFirst": {
"type": "boolean",
"description": "Leave the first slide without a number"
},
"fileBase64": {
"type": "string",
"description": "The presentation (.pptx), base64 encoded. Up to 50 MB and 500 slides. Old .ppt files and password-protected files are not supported."
}
},
"additionalProperties": false
}{
"title": "Pptx Slide Numbers",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}pptx_watermark
Stamp a text watermark (such as DRAFT or CONFIDENTIAL) or a picture on the slides of a PowerPoint (.pptx) from freedailypro, or remove the watermarks this tool made, and get the new .pptx (base64). Give text, or pictureBase64 (PNG or JPEG) for a picture. It sits behind the slide content by default.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64"
],
"properties": {
"bold": {
"type": "boolean",
"description": "Default true"
},
"font": {
"type": "string",
"description": "Default Arial"
},
"mode": {
"enum": [
"add",
"remove"
],
"type": "string",
"description": "Default add"
},
"size": {
"anyOf": [
{
"type": "number",
"maximum": 400,
"minimum": 8
},
{
"type": "string",
"const": "auto"
}
],
"description": "Points, or auto to fit the slide. Default auto."
},
"text": {
"type": "string",
"maxLength": 80,
"description": "The watermark words, for example DRAFT"
},
"color": {
"type": "string",
"description": "Text colour, hex. Default 808080."
},
"layer": {
"enum": [
"behind",
"front"
],
"type": "string",
"description": "Default behind"
},
"place": {
"enum": [
"center",
"top",
"bottom",
"top-left",
"top-right",
"bottom-left",
"bottom-right"
],
"type": "string",
"description": "Default center"
},
"slides": {
"type": "array",
"items": {
"type": "integer",
"minimum": 1
},
"description": "Slides to mark. Default all."
},
"opacity": {
"type": "number",
"maximum": 100,
"minimum": 5,
"description": "Percent opaque. Default 30."
},
"rotation": {
"type": "number",
"maximum": 90,
"minimum": -90,
"description": "Degrees; negative rises to the right. Default -45 for text."
},
"fileBase64": {
"type": "string",
"description": "The presentation (.pptx), base64 encoded. Up to 50 MB and 500 slides. Old .ppt files and password-protected files are not supported."
},
"widthPercent": {
"type": "number",
"maximum": 100,
"minimum": 5,
"description": "Picture width as a percent of the slide. Default 50."
},
"pictureBase64": {
"type": "string",
"description": "A PNG or JPEG, base64, instead of text"
}
},
"additionalProperties": false
}{
"title": "Pptx Watermark",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}pptx_resize
Change the slide size of a PowerPoint (.pptx) from freedailypro and scale the content to match, returning the new .pptx (base64). preset 16x9, 4x3, 16x10, a4 or letter, or width and height with a unit. mode fit (default) keeps the shape of the content and centres it; fill covers the new area; stretch changes the shape. Fonts, line widths and spacing scale with the content unless scaleText is false. The result lists how many shapes now reach outside the slide. Errors (422) when the slides are already that size.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64"
],
"properties": {
"mode": {
"enum": [
"fit",
"fill",
"stretch"
],
"type": "string",
"description": "Default fit"
},
"unit": {
"enum": [
"in",
"cm",
"mm",
"px"
],
"type": "string",
"description": "Unit of width and height. Default in."
},
"width": {
"type": "number",
"description": "Custom width, with height",
"exclusiveMinimum": 0
},
"height": {
"type": "number",
"description": "Custom height, with width",
"exclusiveMinimum": 0
},
"preset": {
"enum": [
"16x9",
"4x3",
"16x10",
"a4",
"letter"
],
"type": "string",
"description": "A standard size (landscape)"
},
"scaleText": {
"type": "boolean",
"description": "Scale text, lines and spacing too. Default true."
},
"fileBase64": {
"type": "string",
"description": "The presentation (.pptx), base64 encoded. Up to 50 MB and 500 slides. Old .ppt files and password-protected files are not supported."
}
},
"additionalProperties": false
}{
"title": "Pptx Resize",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}pptx_extract_charts
Get the data behind every chart of a PowerPoint (.pptx) from freedailypro: format xlsx (default; one workbook, a sheet per chart, base64), csv (a ZIP of CSV files, base64; workbooks true also adds each chart's own embedded workbook) or json (each chart's slide, title, type and table). Charts pasted as pictures have no data; errors (422) when the deck has no real charts.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64"
],
"properties": {
"format": {
"enum": [
"xlsx",
"csv",
"json"
],
"type": "string",
"description": "Default xlsx"
},
"workbooks": {
"type": "boolean",
"description": "csv: also include the embedded workbooks. Default false."
},
"fileBase64": {
"type": "string",
"description": "The presentation (.pptx), base64 encoded. Up to 50 MB and 500 slides. Old .ppt files and password-protected files are not supported."
}
},
"additionalProperties": false
}{
"title": "Pptx Extract Charts",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}pptx_accessibility_check
Check a PowerPoint (.pptx) from freedailypro for accessibility problems and get a JSON report (or CSV): pictures and charts without alt text or with a file name as alt text, slides with no title or an empty or duplicate title, text under 12 points, table header rows, merged cells, vague link text and reading-order problems. Each issue has the slide, severity (error, warning, tip) and a plain message. The check reports only; it changes nothing.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64"
],
"properties": {
"format": {
"enum": [
"json",
"csv"
],
"type": "string",
"description": "Default json"
},
"fileBase64": {
"type": "string",
"description": "The presentation (.pptx), base64 encoded. Up to 50 MB and 500 slides. Old .ppt files and password-protected files are not supported."
}
},
"additionalProperties": false
}{
"title": "Pptx Accessibility Check",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}pptx_repair
Try to repair a damaged PowerPoint (.pptx) from freedailypro that PowerPoint reports as needing repair or will not open, and get a new .pptx (base64) plus what was fixed and what was lost. Mends a missing or wrong file list, a missing or inconsistent slide list, dead links to pictures, charts and layouts, duplicate slide ids and a damaged zip index; pieces that cannot be saved are dropped and listed. A healthy file is returned unchanged with changed false. Cannot open password-protected files or old .ppt files.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64"
],
"properties": {
"fileBase64": {
"type": "string",
"description": "The damaged .pptx, base64 encoded. Up to 50 MB."
}
},
"additionalProperties": false
}{
"title": "Pptx Repair",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}pptx_redact
Black out sensitive text in a PowerPoint (.pptx) from freedailypro and get the redacted .pptx (base64). Matches are replaced by block characters in the file's own text (not covered), on slides, notes, the master and layouts, charts, SmartArt, comments, alt text and link targets. presets: email, phone, ssn, card, url, ip, money, date; plus terms (exact words), regexes, imageSlides ('all' or slide numbers: pictures replaced by a black stand-in) and imageByAlt. stripNotes, stripComments and stripMetadata remove those entirely. The result is read again and any remaining match is reported (remaining, remainingWhere). Text inside pictures, video and audio cannot be found; warnings say what could not be checked. A deck with no match is returned unchanged with changed false.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64"
],
"properties": {
"notes": {
"type": "boolean",
"description": "Search speaker notes. Default true."
},
"terms": {
"type": "array",
"items": {
"type": "string",
"maxLength": 300
},
"maxItems": 200,
"description": "Exact words or phrases"
},
"presets": {
"type": "array",
"items": {
"enum": [
"email",
"phone",
"ssn",
"card",
"url",
"ip",
"money",
"date"
],
"type": "string"
},
"description": "Kinds of text to remove"
},
"regexes": {
"type": "array",
"items": {
"type": "string",
"maxLength": 300
},
"maxItems": 50,
"description": "Regular expressions (JavaScript syntax)"
},
"template": {
"type": "boolean",
"description": "Search the master and layouts. Default true."
},
"matchCase": {
"type": "boolean",
"description": "Default false"
},
"fileBase64": {
"type": "string",
"description": "The presentation (.pptx), base64 encoded. Up to 50 MB and 500 slides. Old .ppt files and password-protected files are not supported."
},
"imageByAlt": {
"type": "boolean",
"description": "Black out pictures whose name or alt text matches the terms or patterns"
},
"stripNotes": {
"type": "boolean",
"description": "Remove all speaker notes"
},
"imageSlides": {
"anyOf": [
{
"type": "string",
"const": "all"
},
{
"type": "array",
"items": {
"type": "integer",
"minimum": 1
}
}
],
"description": "Black out the pictures on these slides, or all"
},
"stripComments": {
"type": "boolean",
"description": "Remove all comments"
},
"stripMetadata": {
"type": "boolean",
"description": "Remove author and file details"
},
"dropChartWorkbooks": {
"type": "boolean",
"description": "Remove a chart's embedded workbook when it still holds a match. Default true."
}
},
"additionalProperties": false
}{
"title": "Pptx Redact",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}pptx_html_slideshow
Turn a PowerPoint (.pptx) from freedailypro into ONE self-contained HTML file (returned as text): the slides as readable text with their pictures inlined, arrow-key navigation, a grid (G) and optional speaker notes (N). No external files or scripts. Charts, SmartArt, video, audio and animations are not carried over (notCarried lists them). Speaker notes are off unless includeNotes is true; hidden slides are left out unless includeHidden is true.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64"
],
"properties": {
"look": {
"enum": [
"deck",
"light",
"dark"
],
"type": "string",
"description": "Default deck (the deck's own colours)"
},
"title": {
"type": "string",
"maxLength": 120,
"description": "Page title. Default: the deck's title."
},
"fileBase64": {
"type": "string",
"description": "The presentation (.pptx), base64 encoded. Up to 50 MB and 500 slides. Old .ppt files and password-protected files are not supported."
},
"includeNotes": {
"type": "boolean",
"description": "Include speaker notes. Default false."
},
"includeHidden": {
"type": "boolean",
"description": "Include hidden slides. Default false."
}
},
"additionalProperties": false
}{
"title": "Pptx Html Slideshow",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}pptx_to_template
Turn a PowerPoint (.pptx) from freedailypro into a .potx template (base64) and optionally change its theme: colors is {dk1, lt1, dk2, lt2, accent1..accent6, hlink, folHlink} as six-digit hex, plus headingFont, bodyFont and the theme name. keepSlides all, first or none. format pptx gives a re-themed deck instead. Shapes with their own fixed colour or font do not follow the theme; fixedColorShapes and fixedFontRuns count them. The .potx has been checked in LibreOffice, not in desktop PowerPoint.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fileBase64"
],
"properties": {
"name": {
"type": "string",
"maxLength": 80,
"description": "The theme's name"
},
"colors": {
"type": "object",
"description": "Theme colours by key, hex without #",
"additionalProperties": {
"type": "string"
}
},
"format": {
"enum": [
"potx",
"pptx"
],
"type": "string",
"description": "Default potx"
},
"bodyFont": {
"type": "string",
"maxLength": 64
},
"fileBase64": {
"type": "string",
"description": "The presentation (.pptx), base64 encoded. Up to 50 MB and 500 slides. Old .ppt files and password-protected files are not supported."
},
"keepSlides": {
"enum": [
"all",
"first",
"none"
],
"type": "string",
"description": "Default all"
},
"headingFont": {
"type": "string",
"maxLength": 64
},
"removeNotesAndAuthor": {
"type": "boolean",
"description": "Remove notes, comments and the author's name from the kept slides"
}
},
"additionalProperties": false
}{
"title": "Pptx To Template",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}converters_roman
converters roman
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"direction",
"value"
],
"properties": {
"value": {
"type": [
"number",
"string"
],
"description": "toRoman: a whole number from 1 to 3,999,999 (above 3,999 the thousands get a bar over every letter, written with the Unicode combining overline U+0305). fromRoman: a numeral; barred letters may be typed with U+0305 or as a bracketed group such as (V) for 5,000."
},
"direction": {
"enum": [
"toRoman",
"fromRoman"
],
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Converters Roman",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}converters_units
Unit converter: 14 categories and over 130 units with exact factors
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"category",
"value",
"from",
"to"
],
"properties": {
"to": {
"type": "string",
"description": "Unit id to convert to."
},
"from": {
"type": "string",
"description": "Unit id to convert from, for example gal_us, km_h, psi, kwh (see units-list for the ids and aliases)."
},
"value": {
"type": "number",
"description": "The number to convert."
},
"category": {
"type": "string",
"description": "length, weight, temperature, volume, area, speed, pressure, energy, power, time, data_transfer, angle, fuel_economy or cooking. List the units of each with /v1/converters/units-list."
}
},
"additionalProperties": false
}{
"title": "Converters Units",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}converters_units_list
Unit converter: the units of each category, with ids, symbols, aliases and a US, imperial or metric tag
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"category": {
"type": "string",
"description": "Only this category (for example volume). Leave out for every category."
}
},
"additionalProperties": false
}{
"title": "Converters Units List",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}converters_file_size
File size converter
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"value",
"from",
"to"
],
"properties": {
"to": {
"enum": [
"B",
"KB",
"MB",
"GB",
"TB",
"PB"
],
"type": "string"
},
"from": {
"enum": [
"B",
"KB",
"MB",
"GB",
"TB",
"PB"
],
"type": "string"
},
"value": {
"type": "number"
}
},
"additionalProperties": false
}{
"title": "Converters File Size",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}converters_job_experience
Job experience calculator
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"startIso"
],
"properties": {
"endIso": {
"type": "string"
},
"startIso": {
"type": "string"
},
"otherJobs": {
"type": "array",
"items": {
"type": "object",
"required": [
"startIso"
],
"properties": {
"endIso": {
"type": "string",
"description": "YYYY-MM-DD. Leave out for a job that is still going on (today is used)."
},
"startIso": {
"type": "string"
}
},
"additionalProperties": false
},
"maxItems": 50,
"description": "More jobs. When given, the response also has a `history` object: each job's length, the total with overlapping periods counted once, and the gaps between jobs."
},
"countEndDate": {
"type": "boolean",
"description": "Only used with otherJobs. true (default) counts the end date as a full day, so 1 Jan to 31 Dec is one year."
}
},
"additionalProperties": false
}{
"title": "Converters Job Experience",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}converters_paycheck
Paycheck estimator: 2026 US federal tax, FICA, state tax and pre-tax deductions
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"grossAnnual"
],
"properties": {
"state": {
"type": "string",
"description": "US state (two-letter code such as NY, or the full name; DC included). Adds that state's 2026 income tax from the same table as the website. Without it, no state income tax is included."
},
"grossAnnual": {
"type": "number",
"description": "Gross pay for the year, in US dollars."
},
"filingStatus": {
"enum": [
"single",
"married-joint",
"married-separate",
"head-of-household"
],
"type": "string",
"description": "Federal filing status. Default single."
},
"stateRatePct": {
"type": "number",
"minimum": 0,
"description": "Optional flat state rate in percent. When sent it replaces the state lookup (first-version behaviour)."
},
"retirementPct": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Traditional 401(k)/403(b) deferral as a percent of gross pay. Lowers income tax but not FICA."
},
"federalRatePct": {
"type": "number",
"minimum": 0,
"description": "Optional flat federal rate in percent. When sent it replaces the 2026 bracket calculation (first-version behaviour)."
},
"section125Annual": {
"type": "number",
"minimum": 0,
"description": "Yearly pre-tax health, dental, HSA or FSA deductions. Lowers income tax and FICA."
},
"payPeriodsPerYear": {
"type": "number",
"description": "Pay periods per year: 52, 26, 24 or 12. Default 24."
},
"otherDeductionPerCheck": {
"type": "number",
"minimum": 0,
"description": "Other after-tax deduction taken from each paycheck, in dollars."
}
},
"additionalProperties": false
}{
"title": "Converters Paycheck",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}converters_fire
FIRE calculator
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"annualSpend"
],
"properties": {
"startDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Optional plan start date, as YYYY-MM-DD. When the target is reached, adds startDate and fireDate (the start plus yearsToFire years). It only labels the timeline; the amounts do not change."
},
"annualSpend": {
"type": "number"
},
"currentSavings": {
"type": "number",
"minimum": 0
},
"expectedReturnPct": {
"type": "number"
},
"withdrawalRatePct": {
"type": "number",
"minimum": 0
},
"annualContribution": {
"type": "number",
"minimum": 0
}
},
"additionalProperties": false
}{
"title": "Converters Fire",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}converters_vat_gst
VAT and GST calculator with a country rate table
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"lines": {
"type": "array",
"items": {
"type": "object",
"required": [
"amount"
],
"properties": {
"amount": {
"type": "number",
"minimum": 0,
"description": "The line amount (net, or gross when amountIncludesTax is true)."
},
"ratePct": {
"type": "number",
"minimum": 0,
"description": "This line's rate in percent. Defaults to the top-level ratePct or the country's standard rate."
}
},
"additionalProperties": false
},
"maxItems": 200,
"description": "Invoice lines at different rates: returns a subtotal per rate (byRate) and a grand total. Use instead of amount."
},
"amount": {
"type": "number",
"description": "The amount, in any currency. Send this, or vatAmount, or lines."
},
"country": {
"type": "string",
"description": "Country name (for example Germany, United Kingdom, Australia, Singapore, UAE). Looks up the standard VAT/GST rate. Canada has one entry per province group, e.g. 'Canada - Ontario HST'. The error for an unknown name lists every supported entry."
},
"ratePct": {
"type": "number",
"description": "VAT/GST rate in percent. Required unless country is sent. Takes priority over country."
},
"vatAmount": {
"type": "number",
"minimum": 0,
"description": "The VAT amount shown on a receipt: returns the net and gross it implies at the rate (needs a rate above 0). Use instead of amount."
},
"amountIncludesTax": {
"type": "boolean",
"description": "true when amount already includes the tax (the tax is taken out of it)."
}
},
"additionalProperties": false
}{
"title": "Converters Vat Gst",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}converters_countdown
Countdown calculator
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"isoTarget"
],
"properties": {
"fromIso": {
"type": "string"
},
"isoTarget": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Converters Countdown",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}converters_401k
401(k) projection with the 2026 IRS contribution limits
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"currentBalance",
"annualContribution",
"years"
],
"properties": {
"age": {
"type": "number",
"description": "Your age. Used to pick the 2026 IRS employee limit ($24,500; plus $8,000 catch-up at 50-59 and 64+, $11,250 at 60-63). Without it the base limit is used."
},
"years": {
"type": "number"
},
"startDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Optional date the first contribution year starts, as YYYY-MM-DD. Adds startDate and endDate (when the projection ends). It only labels the plan; the amounts do not change."
},
"applyIrsLimit": {
"type": "boolean",
"description": "true caps annualContribution at the IRS limit for your age. Default false: the contribution is used as sent and a warning is returned if it is over the limit."
},
"currentBalance": {
"type": "number",
"minimum": 0
},
"employerMatchPct": {
"type": "number",
"minimum": 0,
"description": "Employer match as a percent of your own contribution (50 = 50 cents per dollar)."
},
"expectedReturnPct": {
"type": "number"
},
"annualContribution": {
"type": "number",
"minimum": 0
}
},
"additionalProperties": false
}{
"title": "Converters 401k",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}converters_rmd
RMD estimator using the IRS Uniform Lifetime Table
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"accountBalance",
"age"
],
"properties": {
"age": {
"type": "number",
"description": "Age you reach this year (72 to 120). The IRS Uniform Lifetime Table divisor for that age is used."
},
"birthYear": {
"type": "number",
"description": "Birth year. Adds the SECURE 2.0 RMD start age (73 for 1951-1959, 75 for 1960 or later) and whether an RMD is required yet."
},
"accountBalance": {
"type": "number",
"description": "Account balance on 31 December of the previous year."
}
},
"additionalProperties": false
}{
"title": "Converters Rmd",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}text_csv
text csv
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"operation"
],
"properties": {
"rows": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "string"
}
}
},
"text": {
"type": "string"
},
"headers": {
"type": "array",
"items": {
"type": "string"
}
},
"delimiter": {
"type": "string"
},
"operation": {
"enum": [
"parse",
"stringify",
"toJson"
],
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Text Csv",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}text_similarity
Text similarity
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"a",
"b"
],
"properties": {
"a": {
"type": "string"
},
"b": {
"type": "string"
},
"phraseWords": {
"type": "integer",
"maximum": 8,
"minimum": 3,
"description": "When given (3 to 8), the response also has a `phrases` object: how much of each text sits inside phrases of this many words that both texts share (case and punctuation ignored). Shorter texts use shorter phrases. Compares the two texts with each other only; it is not a web plagiarism check."
}
},
"additionalProperties": false
}{
"title": "Text Similarity",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}text_citation
Citation generator
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"style",
"authors",
"title"
],
"properties": {
"url": {
"type": "string"
},
"year": {
"type": [
"string",
"number"
]
},
"style": {
"enum": [
"apa",
"mla",
"chicago"
],
"type": "string"
},
"title": {
"type": "string",
"minLength": 1
},
"authors": {
"type": "string",
"minLength": 1
},
"siteOrPublisher": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Text Citation",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}planning_packing_list
Packing list generator
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"nights",
"climate"
],
"properties": {
"nights": {
"type": "number",
"minimum": 0
},
"climate": {
"enum": [
"hot",
"mild",
"cold"
],
"type": "string"
},
"tripType": {
"enum": [
"leisure",
"business"
],
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Planning Packing List",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}planning_event_budget
Event budget planner
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"guests"
],
"properties": {
"venue": {
"type": "number",
"minimum": 0
},
"extras": {
"type": "number",
"minimum": 0
},
"guests": {
"type": "number",
"minimum": 0
},
"catering": {
"type": "number",
"minimum": 0
},
"costPerGuest": {
"type": "number",
"minimum": 0
}
},
"additionalProperties": false
}{
"title": "Planning Event Budget",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}planning_itinerary
Travel itinerary splitter
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"days",
"activities"
],
"properties": {
"days": {
"type": "number",
"minimum": 0
},
"startDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Optional first day of the trip, as YYYY-MM-DD. Adds a calendar date to every day of the result."
},
"activities": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
}{
"title": "Planning Itinerary",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}converters_tdee
Calorie TDEE calculator
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"sex",
"age",
"weightKg",
"heightCm"
],
"properties": {
"age": {
"type": "number"
},
"sex": {
"enum": [
"male",
"female"
],
"type": "string"
},
"activity": {
"enum": [
"sedentary",
"light",
"moderate",
"active",
"veryActive"
],
"type": "string"
},
"heightCm": {
"type": "number"
},
"highDays": {
"type": "integer",
"maximum": 3,
"minimum": 1,
"description": "Weekly calorie cycling: how many higher-calorie days a week (1 to 3)."
},
"swingPct": {
"type": "number",
"maximum": 30,
"minimum": 1,
"description": "How far above the daily target the higher days sit, in percent. Default 15."
},
"weightKg": {
"type": "number"
},
"cycleGoal": {
"enum": [
"maintain",
"cut",
"bulk"
],
"type": "string",
"description": "Which daily target to spread over the week. Default maintain."
},
"macroGoal": {
"enum": [
"lose",
"maintain",
"gain"
],
"type": "string",
"description": "Adds a macros block: grams of protein, carbohydrate and fat for the matching calorie target (lose = cut, maintain = TDEE, gain = bulk), the percentage split, and whether each share sits inside the Institute of Medicine AMDR ranges."
}
},
"additionalProperties": false
}{
"title": "Converters Tdee",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}converters_self_employment_tax
Self-employment tax: 2026 wage base, Medicare and Additional Medicare
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"netProfit"
],
"properties": {
"state": {
"type": "string",
"description": "With includeIncomeTax: a US state (two-letter code or name) to add that state's income tax on the profit."
},
"w2Wages": {
"type": "number",
"minimum": 0,
"description": "W-2 wages from a job in the same year. They use up part of the Social Security wage base and count toward the Additional Medicare threshold."
},
"netProfit": {
"type": "number",
"description": "Net self-employment profit for the year, in US dollars."
},
"filingStatus": {
"enum": [
"single",
"married-joint",
"married-separate",
"head-of-household"
],
"type": "string",
"description": "Federal filing status. Default single."
},
"priorYearAgi": {
"type": "number",
"minimum": 0,
"description": "With priorYearTax: last year's adjusted gross income; above $150,000 ($75,000 married filing separately) the safe harbour is 110% of last year's tax."
},
"priorYearTax": {
"type": "number",
"minimum": 0,
"description": "With includeIncomeTax: last year's total tax, for the IRS safe-harbour alternative (100% of last year's tax, or 110% if priorYearAgi is above the threshold)."
},
"includeIncomeTax": {
"type": "boolean",
"description": "true adds federal income tax (2026 brackets, standard deduction, after the half self-employment tax deduction) so quarterlyPayment is the whole estimated payment. Default false: quarterlyPayment is the self-employment tax divided by 4."
}
},
"additionalProperties": false
}{
"title": "Converters Self Employment Tax",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}converters_529
529 calculator
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"currentBalance",
"monthlyContribution",
"years"
],
"properties": {
"years": {
"type": "number"
},
"currentBalance": {
"type": "number",
"minimum": 0
},
"expectedReturnPct": {
"type": "number"
},
"monthlyContribution": {
"type": "number",
"minimum": 0
},
"firstContributionDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Optional date of the first monthly contribution, as YYYY-MM-DD. Adds firstContributionDate, lastContributionDate and targetDate (when the projected balance is reached). It only labels the plan; the amounts do not change. A day of 29 to 31 moves to the last day of shorter months."
}
},
"additionalProperties": false
}{
"title": "Converters 529",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}planning_event_checklist
Event checklist planner
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"eventType": {
"enum": [
"wedding",
"birthday",
"conference",
"other"
],
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Planning Event Checklist",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}planning_event_schedule
Event day schedule
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"startHour",
"items"
],
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"title",
"minutes"
],
"properties": {
"title": {
"type": "string"
},
"minutes": {
"type": "number"
}
},
"additionalProperties": false
},
"minItems": 1
},
"startHour": {
"type": "number"
}
},
"additionalProperties": false
}{
"title": "Planning Event Schedule",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}planning_guest_list
Guest list tracker
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"guests"
],
"properties": {
"guests": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"status"
],
"properties": {
"name": {
"type": "string"
},
"status": {
"enum": [
"invited",
"yes",
"no",
"maybe"
],
"type": "string"
},
"plusOne": {
"type": "boolean"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}{
"title": "Planning Guest List",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}planning_relocation_checklist
Relocation checklist planner
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}{
"title": "Planning Relocation Checklist",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}planning_cost_of_living
Cost of living comparison
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"salary"
],
"properties": {
"to": {
"type": "string",
"description": "New place, same format as 'from'."
},
"from": {
"type": "string",
"description": "Current place as a U.S. city ('Austin' or 'Austin, TX') or 5-digit ZIP; looked up in the built-in table of 127 U.S. metros (BEA Regional Price Parities, 2023)."
},
"salary": {
"type": "number",
"description": "Current salary."
},
"toIndex": {
"type": "number",
"description": "Cost-of-living index of the new place. Leave out when you send 'to'.",
"exclusiveMinimum": 0
},
"fromIndex": {
"type": "number",
"description": "Cost-of-living index of the current place (100 = average). Leave out when you send 'from'.",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
}{
"title": "Planning Cost Of Living",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}business_invoice_totals
Invoice totals
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"lines"
],
"properties": {
"lines": {
"type": "array",
"items": {
"type": "object",
"required": [
"qty",
"unitPrice"
],
"properties": {
"qty": {
"type": "number"
},
"unitPrice": {
"type": "number"
},
"description": {
"type": "string"
}
},
"additionalProperties": false
},
"minItems": 1
},
"taxPct": {
"type": "number",
"minimum": 0
},
"discountPct": {
"type": "number",
"minimum": 0
}
},
"additionalProperties": false
}{
"title": "Business Invoice Totals",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}business_expenses
Expense tracker
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"items"
],
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"category",
"amount"
],
"properties": {
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}",
"description": "Optional date, YYYY-MM-DD. When any item has one, the response adds byMonth totals."
},
"amount": {
"type": "number"
},
"category": {
"type": "string"
},
"description": {
"type": "string",
"maxLength": 200,
"description": "Optional note; not used in the totals."
}
},
"additionalProperties": false
},
"description": "The expenses to total. A refund is a negative amount."
},
"mergeCategories": {
"type": "boolean",
"description": "true treats categories that differ only in case or surrounding spaces as one. Default false (exactly as sent)."
}
},
"additionalProperties": false
}{
"title": "Business Expenses",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}security_barcode_code128
Code 128 barcode
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"pattern": "^[\\x20-\\x7E]+$",
"maxLength": 80,
"minLength": 1
},
"format": {
"enum": [
"json",
"svg"
],
"type": "string"
},
"height": {
"type": "number",
"maximum": 400,
"minimum": 10
}
},
"additionalProperties": false
}{
"title": "Security Barcode Code128",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}converters_social_security
Social Security retirement benefit estimate with 2026 bend points
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"claimAge": {
"type": "number",
"description": "Age you start benefits, 62 to 70 (decimals such as 62.5 are rounded to whole months). Default 67."
},
"birthYear": {
"type": "number",
"description": "Birth year, which sets full retirement age (67 if born 1960 or later). Default 1960."
},
"yearsWorked": {
"type": "number",
"minimum": 0,
"description": "With annualEarnings: years of work, up to 35 (default 35)."
},
"annualEarnings": {
"type": "number",
"minimum": 0,
"description": "Alternative to AIME: current yearly earnings (capped at the 2026 wage base of $184,500). AIME is estimated from it."
},
"averageIndexedMonthlyEarnings": {
"type": "number",
"description": "Your AIME (average indexed monthly earnings) from your SSA statement. Send this or annualEarnings."
}
},
"additionalProperties": false
}{
"title": "Converters Social Security",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}planning_chores
Household chore splitter
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"people",
"chores"
],
"properties": {
"chores": {
"type": "array",
"items": {
"type": "string"
}
},
"people": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
}{
"title": "Planning Chores",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}business_nda_draft
NDA draft
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"disclosingParty",
"receivingParty",
"purpose"
],
"properties": {
"purpose": {
"type": "string",
"minLength": 1
},
"termYears": {
"type": "number",
"minimum": 0
},
"receivingParty": {
"type": "string",
"minLength": 1
},
"disclosingParty": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}{
"title": "Business Nda Draft",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}business_offer_letter_draft
Employment offer letter draft
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"candidate",
"company",
"title",
"salary",
"startDate"
],
"properties": {
"title": {
"type": "string",
"minLength": 1
},
"salary": {
"type": "string",
"minLength": 1
},
"company": {
"type": "string",
"minLength": 1
},
"candidate": {
"type": "string",
"minLength": 1
},
"startDate": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}{
"title": "Business Offer Letter Draft",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}business_bill_of_sale_draft
Bill of sale draft
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"seller",
"buyer",
"item",
"price",
"date"
],
"properties": {
"date": {
"type": "string",
"minLength": 1
},
"item": {
"type": "string",
"minLength": 1
},
"buyer": {
"type": "string",
"minLength": 1
},
"price": {
"type": "string",
"minLength": 1
},
"seller": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}{
"title": "Business Bill Of Sale Draft",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}business_product_margin
Product margin calculator
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"cost",
"price"
],
"properties": {
"cost": {
"type": "number",
"minimum": 0
},
"price": {
"type": "number",
"minimum": 0
}
},
"additionalProperties": false
}{
"title": "Business Product Margin",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}text_paper_format
Paper format checker
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"text"
],
"properties": {
"text": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Text Paper Format",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}planning_monthly_budget
Monthly budget planner
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"income",
"expenses"
],
"properties": {
"income": {
"type": "number"
},
"expenses": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"amount"
],
"properties": {
"kind": {
"enum": [
"need",
"want",
"savings",
"debt"
],
"type": "string",
"description": "50/30/20 bucket: need, want, savings, or debt (a required debt payment, counted in needs). When no expense has a kind the site's name-based guess is used for plan, and without kind or period on any expense the response is the first version."
},
"name": {
"type": "string"
},
"amount": {
"type": "number"
},
"period": {
"enum": [
"month",
"year"
],
"type": "string",
"description": "month (default) or year: a yearly amount counts as amount / 12 a month (a sinking fund for an annual bill)."
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}{
"title": "Planning Monthly Budget",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}planning_grocery_list
Grocery list planner
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"items"
],
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"qty": {
"type": "number"
},
"name": {
"type": "string"
},
"unit": {
"type": "string"
},
"aisle": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}{
"title": "Planning Grocery List",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}planning_inventory
Inventory tracker
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"items"
],
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"qty"
],
"properties": {
"qty": {
"type": "number"
},
"sku": {
"type": "string"
},
"name": {
"type": "string"
},
"reorderAt": {
"type": "number"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}{
"title": "Planning Inventory",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}converters_student_loan
Student loan calculator
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"principal",
"annualRatePct"
],
"properties": {
"ibr": {
"enum": [
10,
15
],
"type": "number",
"description": "Also show IBR at 10% (loans from 1 July 2014, 20 years) or 15% (older loans, 25 years) of discretionary income. Only for borrowers whose loans were all made before 1 July 2026."
},
"state": {
"type": "string",
"description": "Two-letter state code. AK and HI use their own poverty guideline for IBR; anything else the 48-state figure."
},
"income": {
"type": "number",
"minimum": 0,
"description": "Yearly adjusted gross income. Adds incomeDriven: the Repayment Assistance Plan payment (and IBR with ibr) beside the standard plan, with total paid, term and forgiven balance."
},
"principal": {
"type": "number"
},
"refinance": {
"type": "object",
"required": [
"annualRatePct",
"years"
],
"properties": {
"years": {
"type": "number",
"maximum": 40,
"minimum": 1
},
"annualRatePct": {
"type": "number",
"maximum": 100,
"minimum": 0
}
},
"description": "A private refinance on the same balance: returns the new payment and the interest saved or added.",
"additionalProperties": false
},
"dependents": {
"type": "integer",
"minimum": 0,
"description": "Dependents claimed on the tax return (RAP takes $50 a month off for each). With income."
},
"annualRatePct": {
"type": "number"
},
"householdSize": {
"type": "integer",
"minimum": 1,
"description": "Household size for the IBR poverty guideline. With income. Default 1."
},
"monthlyPayment": {
"type": "number",
"description": "The payment you make. Send this or standardTermYears."
},
"firstPaymentDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Optional date the first payment is due, as YYYY-MM-DD. Adds firstPaymentDate, lastPaymentDate and payoffDate to the result. It only labels the result; the months, interest and totals do not change. A payment day of 29 to 31 moves to the last day of shorter months."
},
"standardTermYears": {
"type": "number",
"description": "Use the standard payment for this many years instead of sending monthlyPayment."
}
},
"additionalProperties": false
}{
"title": "Converters Student Loan",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}business_lease_draft
Lease agreement draft
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"landlord",
"tenant",
"address",
"rent",
"start",
"end"
],
"properties": {
"end": {
"type": "string",
"minLength": 1
},
"rent": {
"type": "string",
"minLength": 1
},
"start": {
"type": "string",
"minLength": 1
},
"tenant": {
"type": "string",
"minLength": 1
},
"address": {
"type": "string",
"minLength": 1
},
"landlord": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}{
"title": "Business Lease Draft",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}business_promissory_note_draft
Promissory note draft
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"borrower",
"lender",
"amount",
"due"
],
"properties": {
"due": {
"type": "string",
"minLength": 1
},
"amount": {
"type": "string",
"minLength": 1
},
"lender": {
"type": "string",
"minLength": 1
},
"borrower": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}{
"title": "Business Promissory Note Draft",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}business_eviction_notice_draft
Eviction notice draft
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"landlord",
"tenant",
"address",
"date",
"days"
],
"properties": {
"date": {
"type": "string",
"minLength": 1
},
"days": {
"type": "number",
"minimum": 0
},
"tenant": {
"type": "string",
"minLength": 1
},
"address": {
"type": "string",
"minLength": 1
},
"landlord": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}{
"title": "Business Eviction Notice Draft",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}business_poa_draft
Power of attorney draft
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"principal",
"agent",
"powers"
],
"properties": {
"agent": {
"type": "string",
"minLength": 1
},
"powers": {
"type": "string",
"minLength": 1
},
"principal": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}{
"title": "Business Poa Draft",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}security_qr
QR code generator
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"minLength": 1
},
"format": {
"enum": [
"json",
"svg"
],
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Security Qr",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}text_emoji_unicode
Emoji unicode converter
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"operation",
"value"
],
"properties": {
"value": {
"type": "string"
},
"operation": {
"enum": [
"toUnicode",
"fromUnicode"
],
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Text Emoji Unicode",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}converters_amortization
Loan amortization schedule with optional payment dates and step-by-step working
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"principal",
"annualRatePct",
"months"
],
"properties": {
"months": {
"type": "number"
},
"principal": {
"type": "number"
},
"annualRatePct": {
"type": "number",
"minimum": 0
},
"firstPaymentDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Optional date the first payment is due, as YYYY-MM-DD. Adds a date to every schedule row and returns firstPaymentDate, lastPaymentDate and payoffDate. It only labels the schedule; the amounts do not change. A payment day of 29 to 31 moves to the last day of shorter months."
}
},
"additionalProperties": false
}{
"title": "Converters Amortization",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}converters_us_income_tax
US federal income tax estimate with 2026 brackets, filing status, deductions, FICA and state tax
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"state": {
"type": "string",
"description": "With grossIncome: US state (two-letter code or name) to add that state's 2026 income tax."
},
"deduction": {
"enum": [
"standard",
"itemized"
],
"type": "string",
"description": "With grossIncome. Default standard (2026 amount for the filing status)."
},
"grossIncome": {
"type": "number",
"description": "Gross income before deductions (wages or profit). The standard or itemized deduction is applied for you, and FICA and optional state tax are added. Send this OR taxableIncome."
},
"filingStatus": {
"enum": [
"single",
"married-joint",
"married-separate",
"head-of-household"
],
"type": "string",
"description": "Federal filing status. Default single."
},
"selfEmployed": {
"type": "boolean",
"description": "With grossIncome: treat the income as self-employment profit (self-employment tax instead of employee FICA)."
},
"taxableIncome": {
"type": "number",
"description": "Income after deductions. Send this OR grossIncome."
},
"preTaxDeductions": {
"type": "number",
"minimum": 0,
"description": "With grossIncome: yearly pre-tax deductions such as traditional 401(k). Lowers income tax but not FICA."
},
"itemizedDeductions": {
"type": "number",
"minimum": 0,
"description": "With deduction 'itemized': the total of your itemized deductions."
}
},
"additionalProperties": false
}{
"title": "Converters Us Income Tax",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}business_startup_names
Startup name generator
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"seeds"
],
"properties": {
"limit": {
"type": "number",
"minimum": 0
},
"seeds": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
}{
"title": "Business Startup Names",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}business_resume_outline
Resume outline builder
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"name",
"title"
],
"properties": {
"name": {
"type": "string",
"minLength": 1
},
"title": {
"type": "string",
"minLength": 1
},
"skills": {
"type": "array",
"items": {
"type": "string"
}
},
"summary": {
"type": "string"
},
"experience": {
"type": "array",
"items": {
"type": "object",
"required": [
"company",
"role"
],
"properties": {
"role": {
"type": "string"
},
"years": {
"type": "string"
},
"company": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}{
"title": "Business Resume Outline",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}planning_split_bill
Split bill calculator
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"total",
"people"
],
"properties": {
"total": {
"type": "number"
},
"people": {
"type": "number"
},
"tipPct": {
"type": "number",
"minimum": 0
}
},
"additionalProperties": false
}{
"title": "Planning Split Bill",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}text_product_description
Product description writer
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"name",
"audience",
"benefits"
],
"properties": {
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Product name, used as written."
},
"audience": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Who it is for, for example 'busy commuters'. A leading 'for' is fine."
},
"benefits": {
"type": "array",
"items": {
"type": "string",
"maxLength": 300
},
"maxItems": 20,
"minItems": 1,
"description": "What the product does for the buyer, in any form: 'keeps water cold', 'keep water cold', 'to keep water cold', 'keeping water cold', 'designed for comfort' or 'long battery life'."
},
"features": {
"type": "array",
"items": {
"type": "string",
"maxLength": 300
},
"maxItems": 20,
"description": "Optional specifications or details, same flexible wording as benefits."
}
},
"additionalProperties": false
}{
"title": "Text Product Description",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}text_user_manual
User manual writer
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"product",
"tasks"
],
"properties": {
"tasks": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1
},
"product": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}{
"title": "Text User Manual",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}business_invention_disclosure
Invention disclosure worksheet
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"title",
"inventor",
"problem",
"solution"
],
"properties": {
"date": {
"type": "string"
},
"title": {
"type": "string",
"minLength": 1
},
"problem": {
"type": "string",
"minLength": 1
},
"inventor": {
"type": "string",
"minLength": 1
},
"solution": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}{
"title": "Business Invention Disclosure",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}business_contract_pack
Contract templates
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"type"
],
"properties": {
"type": {
"enum": [
"services",
"nda",
"employment",
"sale"
],
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Business Contract Pack",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}business_receipt
Receipt maker
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"merchant",
"lines"
],
"properties": {
"date": {
"type": "string"
},
"lines": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"qty",
"unitPrice"
],
"properties": {
"qty": {
"type": "number"
},
"name": {
"type": "string"
},
"unitPrice": {
"type": "number"
}
},
"additionalProperties": false
},
"minItems": 1
},
"taxPct": {
"type": "number",
"minimum": 0
},
"merchant": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}{
"title": "Business Receipt",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}text_invitation_copy
Invitation copy
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"event",
"host",
"when",
"where"
],
"properties": {
"host": {
"type": "string",
"minLength": 1
},
"when": {
"type": "string",
"minLength": 1
},
"event": {
"type": "string",
"minLength": 1
},
"where": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}{
"title": "Text Invitation Copy",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}text_menu_outline
Menu card outline
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"venue",
"sections"
],
"properties": {
"venue": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Restaurant or cafe name."
},
"sections": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"items"
],
"properties": {
"name": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "Section name, for example Starters, Mains, Desserts, Drinks."
},
"items": {
"type": "array",
"items": {
"anyOf": [
{
"type": "string",
"maxLength": 200,
"minLength": 1
},
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"price": {
"anyOf": [
{
"type": "string",
"maxLength": 30
},
{
"type": "number"
}
]
},
"description": {
"type": "string",
"maxLength": 300
}
},
"additionalProperties": false
}
]
},
"maxItems": 100,
"minItems": 1,
"description": "Dish names, or {name, description, price}. A plain string may carry its own description ('Margherita pizza with basil', 'Soup (tomato, basil)', 'Soup - tomato and basil') or a trailing price ('Burger $12'); those words are used as given."
}
},
"additionalProperties": false
},
"maxItems": 30,
"minItems": 1,
"description": "Menu sections."
},
"keepOrder": {
"type": "boolean",
"description": "true keeps your section order. Default false: sections are put in the usual menu order (breakfast, starters, soups and salads, mains, sides, desserts, drinks)."
}
},
"additionalProperties": false
}{
"title": "Text Menu Outline",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}text_flyer_outline
Brochure flyer outline
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"offer",
"audience",
"cta"
],
"properties": {
"cta": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "The action you want, for example 'Book your spot'."
},
"date": {
"type": "string",
"maxLength": 60,
"description": "Optional date, used as given."
},
"time": {
"type": "string",
"maxLength": 60,
"description": "Optional time, used as given."
},
"offer": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "What is offered, for example 'First lesson half price'."
},
"title": {
"type": "string",
"maxLength": 120,
"description": "Optional headline. Default: the offer."
},
"contact": {
"type": "string",
"maxLength": 160,
"description": "Optional phone, email or website, used as given."
},
"details": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200
},
"maxItems": 10,
"description": "Optional bullet points, used as given."
},
"audience": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Who it is for, for example 'new students'."
},
"location": {
"type": "string",
"maxLength": 160,
"description": "Optional place, used as given."
}
},
"additionalProperties": false
}{
"title": "Text Flyer Outline",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}text_banner_copy
Banner sign copy
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"message"
],
"properties": {
"cta": {
"type": "string",
"maxLength": 80,
"description": "Optional call to action, for example 'Visit us today'. Default: Learn more."
},
"message": {
"type": "string",
"maxLength": 300,
"minLength": 1,
"description": "What the banner should say, for example 'Grand opening this Saturday'. A long message is split into a headline and a subheadline."
},
"maxCtaChars": {
"type": "integer",
"maximum": 60,
"minimum": 5,
"description": "Call to action length limit in characters (default 25)."
},
"maxHeadlineChars": {
"type": "integer",
"maximum": 200,
"minimum": 10,
"description": "Headline length limit in characters (default 40)."
}
},
"additionalProperties": false
}{
"title": "Text Banner Copy",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}planning_travel_countdown
Travel countdown planner
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"departIso",
"nights",
"climate"
],
"properties": {
"nights": {
"type": "number",
"minimum": 0
},
"climate": {
"enum": [
"hot",
"mild",
"cold"
],
"type": "string"
},
"departIso": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Planning Travel Countdown",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}text_ascii_art
ASCII art generator
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"text"
],
"properties": {
"fill": {
"type": "string",
"maxLength": 1,
"minLength": 1,
"description": "Optional single visible ASCII character used to draw the letters (default #)."
},
"font": {
"enum": [
"banner",
"wide",
"box"
],
"type": "string",
"description": "banner (default): 5-row block letters. wide: the same letters twice as wide. box: one line of plain text inside a box."
},
"text": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Text to draw. Plain ASCII only (letters, digits, space and . , ! ? - _ : ; ' \" + = / \\ ( ) @ # & * < >); lowercase is drawn as capitals. Use \\n for several lines (up to 6 lines of 20 characters). Emoji and non-ASCII characters return 400."
}
},
"additionalProperties": false
}{
"title": "Text Ascii Art",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}converters_india_income_tax
India income tax FY 2026-27: old and new regime, standard deduction, rebate, surcharge and cess
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"income"
],
"properties": {
"age": {
"enum": [
"below60",
"60to80",
"above80"
],
"type": "string",
"description": "Age group (old regime slabs). Default below60."
},
"income": {
"type": "number",
"description": "Annual salary or pension income in rupees. The standard deduction is taken off it."
},
"regime": {
"enum": [
"old",
"new"
],
"type": "string",
"description": "Which regime the top-level tax and effectiveRatePct report. Default old. Both regimes are always returned in 'regimes'."
},
"itemised": {
"type": "object",
"properties": {
"hra": {
"type": "object",
"required": [
"basicPlusDa",
"hraReceived",
"rentPaid",
"metro"
],
"properties": {
"metro": {
"type": "boolean"
},
"rentPaid": {
"type": "number",
"minimum": 0
},
"basicPlusDa": {
"type": "number",
"minimum": 0
},
"hraReceived": {
"type": "number",
"minimum": 0
}
},
"description": "HRA exemption inputs (per year). metro true uses 50% of basic + DA, false 40%.",
"additionalProperties": false
},
"other": {
"type": "number",
"minimum": 0,
"description": "Other deductions, added as entered (not capped here)."
},
"health80D": {
"type": "object",
"properties": {
"self": {
"type": "number",
"minimum": 0
},
"parents": {
"type": "number",
"minimum": 0
},
"selfSenior": {
"type": "boolean"
},
"parentsSenior": {
"type": "boolean"
}
},
"description": "80D premiums for self and family and for parents; each capped at 25,000, or 50,000 for a senior citizen.",
"additionalProperties": false
},
"nps80CCD1B": {
"type": "number",
"minimum": 0,
"description": "Own NPS contribution, 80CCD(1B); capped at 50,000."
},
"section80C": {
"type": "number",
"minimum": 0,
"description": "80C investments and payments; capped at 1,50,000."
},
"homeLoanInterest": {
"type": "number",
"minimum": 0,
"description": "Interest on a self-occupied home loan; capped at 2,00,000."
}
},
"description": "Old-regime deductions itemised, with the caps applied and returned in deductionBreakdown. Use instead of deductions.",
"additionalProperties": false
},
"deductions": {
"type": "number",
"minimum": 0,
"description": "Old regime only: total of 80C, 80D, HRA, home-loan interest and other deductions."
},
"employerNps": {
"type": "number",
"minimum": 0,
"description": "Employer NPS contribution, section 80CCD(2), capped at 14% of salary (new) or 10% (old)."
},
"otherIncome": {
"type": "number",
"minimum": 0,
"description": "Other annual income in rupees (business, interest, rent). No standard deduction."
}
},
"additionalProperties": false
}{
"title": "Converters India Income Tax",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}converters_uk_tax
UK income tax and Class 1 National Insurance 2026/27 with Scottish rates
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"income"
],
"properties": {
"bonus": {
"type": "number",
"minimum": 0,
"description": "A one-off bonus or overtime in the year, in pounds. Returns what it adds on its own in 'bonus'."
},
"income": {
"type": "number",
"description": "Gross annual salary in pounds."
},
"taxCode": {
"type": "string",
"maxLength": 20,
"description": "Optional PAYE tax code as printed on a payslip: 1257L, 1383M, 0T, BR, D0, D1, NT, K475, S1257L (Scotland), C1257L (Wales), SBR, SD0 to SD3. A code replaces the standard allowance. Omit it for the standard allowance and taper."
},
"benefits": {
"type": "number",
"minimum": 0,
"description": "Taxable benefits in kind per year, in pounds: added to taxable pay for income tax, not charged employee National Insurance."
},
"scotland": {
"type": "boolean",
"description": "true for Scottish income tax bands. Default false (England, Wales, Northern Ireland)."
},
"pensionPct": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Your pension contribution as a percent of salary."
},
"pensionType": {
"enum": [
"sacrifice",
"netpay",
"ras"
],
"type": "string",
"description": "How the pension is taken: salary sacrifice (default, lowers tax and National Insurance), net pay arrangement (lowers tax only) or relief at source."
},
"marriageAllowance": {
"enum": [
"none",
"receive",
"give"
],
"type": "string",
"description": "Marriage Allowance when no taxCode is sent: receive (tax reduced by up to £252) or give (£1,260 of allowance). Ignored when taxCode is sent."
}
},
"additionalProperties": false
}{
"title": "Converters Uk Tax",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}converters_state_tax
US state income tax with a 50-state schedule lookup
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"income"
],
"properties": {
"state": {
"type": "string",
"description": "US state (two-letter code such as NY, or the full name; DC included). Looks up that state's 2026 brackets, standard deduction and exemptions. Send this or ratePct."
},
"income": {
"type": "number",
"description": "Annual income subject to state tax, in US dollars."
},
"ratePct": {
"type": "number",
"description": "Flat rate in percent (first-version behaviour). Takes priority over state."
},
"filingStatus": {
"enum": [
"single",
"married-joint",
"married-separate",
"head-of-household"
],
"type": "string",
"description": "Filing status for the state schedule. Default single."
},
"includeLocal": {
"type": "boolean",
"description": "true adds an average local income tax where the state has local taxes (an estimate). Default false."
}
},
"additionalProperties": false
}{
"title": "Converters State Tax",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}converters_college_cost
College cost calculator
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"annualCost",
"years"
],
"properties": {
"years": {
"type": "number",
"minimum": 0
},
"startDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Optional date the first year starts, as YYYY-MM-DD. Adds the start date of each year to byYear, plus startDate and endDate for the whole program. It only labels the years; the costs do not change."
},
"annualCost": {
"type": "number",
"minimum": 0
},
"inflationPct": {
"type": "number"
}
},
"additionalProperties": false
}{
"title": "Converters College Cost",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}business_profit_margin
Profit margin calculator
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"cost": {
"type": "number",
"minimum": 0
},
"price": {
"type": "number",
"minimum": 0
},
"profit": {
"type": "number"
},
"shipping": {
"type": "number"
},
"marginPct": {
"type": "number"
},
"markupPct": {
"type": "number"
},
"acquisition": {
"type": "number"
}
},
"additionalProperties": false
}{
"title": "Business Profit Margin",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}business_marketplace_fee
Marketplace fee calculator
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"price",
"feePct"
],
"properties": {
"price": {
"type": "number",
"minimum": 0
},
"feePct": {
"type": "number",
"minimum": 0
},
"fixedFee": {
"type": "number",
"minimum": 0
}
},
"additionalProperties": false
}{
"title": "Business Marketplace Fee",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}business_shipping_estimate
Shipping cost estimator
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"weightKg",
"ratePerKg"
],
"properties": {
"base": {
"type": "number",
"minimum": 0
},
"weightKg": {
"type": "number"
},
"ratePerKg": {
"type": "number"
}
},
"additionalProperties": false
}{
"title": "Business Shipping Estimate",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}business_break_even
Break even calculator
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fixedCosts",
"price",
"variableCost"
],
"properties": {
"price": {
"type": "number"
},
"fixedCosts": {
"type": "number"
},
"startupCost": {
"type": "number"
},
"targetProfit": {
"type": "number"
},
"variableCost": {
"type": "number"
},
"expectedUnits": {
"type": "number"
}
},
"additionalProperties": false
}{
"title": "Business Break Even",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}business_government_forms
Government forms hub
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"region": {
"enum": [
"US",
"IN",
"UK",
"other"
],
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Business Government Forms",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}converters_mortgage
Mortgage calculator: payment with taxes, insurance, PMI and HOA, extra payments, biweekly and payoff date
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"homePrice",
"ratePct",
"years"
],
"properties": {
"vaUse": {
"enum": [
"first",
"subsequent",
"exempt"
],
"type": "string",
"description": "VA funding fee class (VA loans only). Default first."
},
"years": {
"type": "number",
"description": "Term in years, 1 to 50."
},
"ratePct": {
"type": "number",
"description": "Annual interest rate in percent."
},
"loanType": {
"enum": [
"conventional",
"fha",
"va",
"usda"
],
"type": "string",
"description": "Default conventional. FHA, VA and USDA add their standard fees (see sources in the response)."
},
"homePrice": {
"type": "number",
"description": "Purchase price."
},
"hoaMonthly": {
"type": "number",
"description": "Monthly HOA dues."
},
"pmiRatePct": {
"type": "number",
"description": "Conventional PMI rate, percent of the loan a year (default 0.6). Applies only above 80% loan-to-value and stops at 78% of the original price."
},
"downPayment": {
"type": "number",
"description": "Down payment as an amount. Send this or downPaymentPct (default 20%)."
},
"yearlyExtra": {
"type": "object",
"required": [
"amount"
],
"properties": {
"month": {
"type": "number",
"description": "Payment number 1 to 12 of each loan year it is paid in (default 12)."
},
"amount": {
"type": "number"
}
},
"description": "One extra payment every year.",
"additionalProperties": false
},
"annualIncome": {
"type": "number",
"description": "Gross yearly income, for the debt-to-income check. Send this or monthlyIncome."
},
"compareYears": {
"type": "array",
"items": [
{
"type": "number"
},
{
"type": "number"
}
],
"maxItems": 2,
"minItems": 2,
"description": "The two terms to compare, default [15, 30]."
},
"extraMonthly": {
"type": "number",
"description": "Extra principal paid every month."
},
"hoaGrowthPct": {
"type": "number",
"description": "Yearly increase of HOA dues in percent."
},
"oneTimeExtra": {
"type": "object",
"required": [
"month",
"amount"
],
"properties": {
"month": {
"type": "number",
"description": "Payment number (1 to 600) the extra is paid with."
},
"amount": {
"type": "number"
}
},
"description": "One extra payment.",
"additionalProperties": false
},
"taxGrowthPct": {
"type": "number",
"description": "Yearly increase of property tax in percent; any growth field adds a year-by-year costGrowth table."
},
"includeYearly": {
"type": "boolean",
"description": "false leaves out the year-by-year table."
},
"monthlyIncome": {
"type": "number",
"description": "Gross monthly income."
},
"closingCostPct": {
"type": "number",
"description": "Closing costs as a percent of the price; adds closing costs and cash to close."
},
"downPaymentPct": {
"type": "number",
"description": "Down payment as a percent of the price."
},
"propertyTaxPct": {
"type": "number",
"description": "Yearly property tax as a percent of the price. Send this or propertyTaxAnnual."
},
"firstPaymentDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Date of the first payment, YYYY-MM-DD. Adds the payoff dates; it only labels the schedule."
},
"otherMonthlyDebts": {
"type": "number",
"description": "Other monthly debt payments (car, cards, student loans) for the back-end ratio."
},
"propertyTaxAnnual": {
"type": "number",
"description": "Yearly property tax as an amount."
},
"insuranceGrowthPct": {
"type": "number",
"description": "Yearly increase of insurance (and maintenance) in percent."
},
"maintenanceMonthly": {
"type": "number",
"description": "Monthly maintenance and other costs (shown in the total, left out of the debt-to-income housing figure)."
},
"homeInsuranceAnnual": {
"type": "number",
"description": "Yearly homeowners insurance."
}
},
"additionalProperties": false
}{
"title": "Converters Mortgage",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}converters_refinance
Refinance break-even calculator: simple and full-cost break-even, interest difference and horizon table
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"currentBalance",
"currentRatePct",
"newRatePct",
"newTermYears"
],
"properties": {
"newRatePct": {
"type": "number",
"description": "Annual rate of the new loan in percent."
},
"closingCosts": {
"type": "number",
"description": "Closing costs as an amount. Send this or closingCostPct."
},
"newTermYears": {
"type": "number",
"description": "Term of the new loan in years."
},
"closingCostPct": {
"type": "number",
"description": "Closing costs as a percent of the current balance."
},
"currentBalance": {
"type": "number",
"description": "What you still owe on the current loan."
},
"currentPayment": {
"type": "number",
"description": "Your actual principal-and-interest payment, if you do not want it calculated from balance, rate and time left."
},
"currentRatePct": {
"type": "number",
"description": "Current annual rate in percent."
},
"remainingYears": {
"type": "number",
"description": "Years left on the current loan. Send this or remainingMonths."
},
"remainingMonths": {
"type": "number",
"description": "Months left on the current loan."
},
"plannedYearsToKeep": {
"type": "number",
"description": "How long you expect to keep the loan; adds a worthIt answer for that horizon."
},
"financeClosingCosts": {
"type": "boolean",
"description": "true adds the closing costs to the new loan instead of paying them in cash."
}
},
"additionalProperties": false
}{
"title": "Converters Refinance",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}converters_affordability
Home affordability and debt-to-income calculator: maximum home price at the 28/36 guideline and 31/43 stretch limits
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"ratePct"
],
"properties": {
"vaUse": {
"enum": [
"first",
"subsequent",
"exempt"
],
"type": "string",
"description": "VA funding fee class (VA loans only)."
},
"years": {
"type": "number",
"description": "Term in years (default 30)."
},
"ratePct": {
"type": "number",
"description": "Annual mortgage rate in percent."
},
"loanType": {
"enum": [
"conventional",
"fha",
"va",
"usda"
],
"type": "string",
"description": "Default conventional."
},
"homePrice": {
"type": "number",
"description": "A price to check: adds the front and back ratios and a verdict for it."
},
"hoaMonthly": {
"type": "number",
"description": "Monthly HOA dues."
},
"pmiRatePct": {
"type": "number",
"description": "Conventional PMI rate in percent of the loan a year (default 0.6)."
},
"downPayment": {
"type": "number",
"description": "Down payment as an amount. Send this or downPaymentPct (default 20%)."
},
"annualIncome": {
"type": "number",
"description": "Gross yearly income. Send this or monthlyIncome."
},
"maxBackEndPct": {
"type": "number",
"description": "Your own total-debt-ratio limit in percent."
},
"monthlyIncome": {
"type": "number",
"description": "Gross monthly income."
},
"downPaymentPct": {
"type": "number",
"description": "Down payment as a percent of the price."
},
"maxFrontEndPct": {
"type": "number",
"description": "Your own housing-ratio limit in percent. When either limit is sent the response has one 'custom' result instead of guideline and stretch."
},
"propertyTaxPct": {
"type": "number",
"description": "Yearly property tax as a percent of the price (default 1.1)."
},
"otherMonthlyDebts": {
"type": "number",
"description": "Other monthly debt payments (car, cards, student loans)."
},
"homeInsuranceAnnual": {
"type": "number",
"description": "Yearly homeowners insurance."
}
},
"additionalProperties": false
}{
"title": "Converters Affordability",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}converters_debt_payoff
Debt payoff planner: avalanche and snowball plans with payoff dates, interest and a minimums-only baseline
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"debts"
],
"properties": {
"debts": {
"type": "array",
"items": {
"type": "object",
"required": [
"balance",
"aprPct",
"minPayment"
],
"properties": {
"name": {
"type": "string"
},
"aprPct": {
"type": "number",
"description": "Annual interest rate in percent."
},
"balance": {
"type": "number",
"description": "Current balance."
},
"minPayment": {
"type": "number",
"description": "Required minimum monthly payment."
}
},
"additionalProperties": false
},
"maxItems": 30,
"minItems": 1,
"description": "The debts to pay off, 1 to 30."
},
"strategy": {
"enum": [
"avalanche",
"snowball",
"both"
],
"type": "string",
"description": "avalanche = highest rate first, snowball = smallest balance first, both (default) returns both and compares them."
},
"startDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Date of the first payment, YYYY-MM-DD. Adds a payoff date for every debt and the debt-free date."
},
"extraMonthly": {
"type": "number",
"description": "Money you can add each month on top of all the minimums. Send this or totalMonthlyBudget."
},
"totalMonthlyBudget": {
"type": "number",
"description": "Total you can pay each month across all debts (at least the sum of the minimums)."
}
},
"additionalProperties": false
}{
"title": "Converters Debt Payoff",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}converters_contribution_limits
Retirement and HSA contribution limits by tax year: 401(k), SIMPLE, IRA, Roth phase-out and HSA
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"age": {
"type": "number",
"description": "Age reached by the end of the year: adds the catch-up for 401(k) (50, and the larger 60 to 63 amount), IRA (50) and HSA (55) and the total for that age."
},
"magi": {
"type": "number",
"description": "Modified adjusted gross income. With filingStatus: the Roth IRA contribution you are allowed after the income phase-out (and, with coveredByWorkplacePlan, the traditional IRA deduction). Phase-out ranges are in the table for 2026 only."
},
"taxYear": {
"type": "number",
"description": "Tax year, 2025 or 2026 (default: the latest in the table). Other years are a 400 that lists the years available."
},
"hsaCoverage": {
"enum": [
"self",
"family"
],
"type": "string",
"description": "HSA coverage in December: adds the limit for it."
},
"filingStatus": {
"enum": [
"single",
"married-joint",
"married-separate",
"head-of-household"
],
"type": "string",
"description": "Needed with magi."
},
"coveredByWorkplacePlan": {
"type": "boolean",
"description": "true adds the traditional IRA deduction phase-out for someone covered by a workplace plan."
}
},
"additionalProperties": false
}{
"title": "Converters Contribution Limits",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}converters_retirement
Retirement and FIRE projection: nest egg, sustainable income, gap and drawdown with inflation and a withdrawal rate
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"currentAge",
"retirementAge"
],
"properties": {
"currentAge": {
"type": "number",
"description": "Your age now (whole years)."
},
"inflationPct": {
"type": "number",
"description": "Expected inflation, percent a year (default 2.5)."
},
"retirementAge": {
"type": "number",
"description": "Age you plan to stop working."
},
"currentSavings": {
"type": "number",
"description": "Invested savings now."
},
"expectedReturnPct": {
"type": "number",
"description": "Expected nominal return before retirement, percent a year (default 7). An assumption, not market data."
},
"lifeExpectancyAge": {
"type": "number",
"description": "Age the money must last to (default 95)."
},
"otherAnnualIncome": {
"type": "number",
"description": "Pension or Social Security per year in today's dollars, counted from the retirement age (default 0)."
},
"withdrawalRatePct": {
"type": "number",
"description": "Share of the nest egg withdrawn in the first year (default 4)."
},
"annualContribution": {
"type": "number",
"description": "What you add each year, in today's dollars."
},
"desiredAnnualIncome": {
"type": "number",
"description": "Income you want per year in today's dollars. Adds the nest egg needed, the gap, the extra saving needed and the years to financial independence."
},
"contributionGrowthPct": {
"type": "number",
"description": "Yearly real increase of the contribution in percent (default 0)."
},
"returnInRetirementPct": {
"type": "number",
"description": "Expected nominal return during retirement (default: same as before retirement)."
}
},
"additionalProperties": false
}{
"title": "Converters Retirement",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}converters_loan_interest
Loan and interest calculator: loan payments, simple interest and compound interest with contributions in one endpoint
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"kind"
],
"properties": {
"fee": {
"type": "number",
"description": "Loan: upfront fee; adds the APR and money received."
},
"kind": {
"enum": [
"loan",
"simple-interest",
"compound-interest"
],
"type": "string",
"description": "loan: payment, schedule and solving; simple-interest; compound-interest (with regular contributions and inflation)."
},
"years": {
"type": "number",
"description": "Term in years."
},
"payment": {
"type": "number",
"description": "Loan: target payment per period for solveFor amount, term or rate."
},
"loanType": {
"enum": [
"amortized",
"deferred",
"zeroCoupon"
],
"type": "string",
"description": "Loan: amortized (default), deferred or zeroCoupon."
},
"solveFor": {
"enum": [
"payment",
"amount",
"term",
"rate"
],
"type": "string",
"description": "Loan: what to solve for; amount, term and rate need 'payment'."
},
"frequency": {
"enum": [
"annually",
"semiannually",
"quarterly",
"monthly",
"daily"
],
"type": "string",
"description": "Compound interest: compounding frequency (default annually)."
},
"principal": {
"type": "number",
"description": "Amount. For kind loan it is required except when solveFor is 'amount'."
},
"startDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Interest kinds: start date, YYYY-MM-DD; adds the maturity date."
},
"compounding": {
"enum": [
"payment",
"annual",
"monthly",
"daily",
"continuous"
],
"type": "string",
"description": "Loan: how interest compounds (default: on every payment)."
},
"extraMonthly": {
"type": "number",
"description": "Plain monthly loan: extra principal each month; adds interest saved and payments saved."
},
"inflationPct": {
"type": "number",
"description": "Compound interest: adds the future value in today's dollars."
},
"previewMonths": {
"type": "number",
"description": "Loan: number of schedule rows to return, 0 to 12."
},
"yearlySummary": {
"type": "boolean",
"description": "Plain monthly loan: adds a year-by-year principal, interest and balance table."
},
"firstPaymentDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Loan: date of the first payment, YYYY-MM-DD; adds payment dates and the payoff date."
},
"paymentFrequency": {
"enum": [
"monthly",
"biweekly",
"weekly"
],
"type": "string",
"description": "Loan: payment frequency (default monthly)."
},
"annualRatePercent": {
"type": "number",
"description": "Annual rate in percent."
},
"contributeAtStart": {
"type": "boolean",
"description": "Compound interest: true adds each contribution at the start of the month instead of the end."
},
"compareWithCompound": {
"type": "boolean",
"description": "Simple interest: adds the result with annual compounding for comparison."
},
"monthlyContribution": {
"type": "number",
"description": "Compound interest: amount added every month (needs frequency monthly)."
}
},
"additionalProperties": false
}{
"title": "Converters Loan Interest",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}converters_exchange_rates
Exchange rates: daily reference rates for about 200 currencies, crypto and metals, with ECB fallback and ECB history (reference rates, not live)
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"to": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
],
"description": "Currency code, or a list of up to 20 codes, to convert to. Required unless listCurrencies is true."
},
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "A past date, YYYY-MM-DD: the daily rate for that day (ECB set: the latest earlier working day if none was published)."
},
"from": {
"type": "string",
"description": "Currency code to convert from (default USD): ISO codes such as USD, plus crypto and metal codes in the broad set."
},
"amount": {
"type": "number",
"description": "Amount to convert (default 1)."
},
"source": {
"enum": [
"auto",
"broad",
"ecb"
],
"type": "string",
"description": "auto (default): the broad daily set of about 200 currencies, crypto and metals, falling back to the ECB set; broad: only the broad set; ecb: only the ECB set (about 30 currencies, and the only one with history ranges)."
},
"endDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "History: last day of the range."
},
"startDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "History: first day of a range of up to 366 days (send with endDate)."
},
"listCurrencies": {
"type": "boolean",
"description": "true returns the supported currency codes (with type and name) and the date of the latest rates."
}
},
"additionalProperties": false
}{
"title": "Converters Exchange Rates",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}converters_vat_validate
EU VAT number validation: layout check per member state plus a live VIES lookup
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"vatNumber"
],
"properties": {
"country": {
"type": "string",
"description": "Two-letter country code when vatNumber has no prefix (Greece is EL)."
},
"vatNumber": {
"type": "string",
"maxLength": 40,
"minLength": 2,
"description": "The EU VAT number, with or without the two-letter prefix and with spaces or dots, for example DE123456789 or 'DE 123.456.789'."
},
"offlineOnly": {
"type": "boolean",
"description": "true checks only the number layout and skips the live VIES lookup."
}
},
"additionalProperties": false
}{
"title": "Converters Vat Validate",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}converters_vat_rates
VAT and GST rates by country: standard and reduced rates with a data version and as-of date
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"region": {
"enum": [
"eu",
"other-europe",
"canada",
"asia-pacific",
"middle-east-africa",
"americas"
],
"type": "string",
"description": "Only the countries of one region."
},
"country": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
],
"description": "A country name, or a list of names (for example Germany, UK, Canada - Ontario HST). Leave out for the whole table."
},
"currency": {
"type": "string",
"description": "Only the countries that use this currency code, for example EUR."
}
},
"additionalProperties": false
}{
"title": "Converters Vat Rates",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}business_bank_statement_to_csv
Bank statement to CSV
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"text": {
"type": "string",
"maxLength": 2000000,
"minLength": 1,
"description": "The statement as pasted text. Send this, or a PDF in fileBase64 (or as the multipart field file)."
},
"year": {
"type": "integer",
"maximum": 2100,
"minimum": 1990
},
"dateOrder": {
"enum": [
"auto",
"mdy",
"dmy"
],
"type": "string"
},
"flipSigns": {
"type": "boolean"
},
"categorize": {
"type": "boolean",
"description": "true adds a category to every row from a short list of generic keywords (not a merchant database). Default false."
},
"fileBase64": {
"type": "string",
"maxLength": 28000000,
"minLength": 8,
"description": "A text-based PDF statement, base64 encoded, up to 20 MB and 100 pages. Scanned or photographed PDFs are refused with a 422: there is no OCR."
},
"includeText": {
"type": "boolean",
"description": "true adds the lines read from the PDF to the response as extractedText, to see what the parser saw."
},
"numberFormat": {
"enum": [
"auto",
"us",
"eu"
],
"type": "string"
},
"categoryRules": {
"type": "array",
"items": {
"type": "object",
"required": [
"match",
"category"
],
"properties": {
"match": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"category": {
"type": "string",
"maxLength": 60,
"minLength": 1
}
},
"additionalProperties": false
},
"maxItems": 200,
"description": "Your own rules: a row whose description contains match (any case) gets that category; the first matching rule wins, before the built-in keywords."
}
},
"additionalProperties": false
}{
"title": "Business Bank Statement To Csv",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}business_blind_cv
Blind CV redactor
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"maxLength": 500000,
"minLength": 1
},
"names": {
"type": "string",
"maxLength": 500
},
"custom": {
"type": "string",
"maxLength": 5000
},
"labels": {
"type": "boolean"
},
"removeBirth": {
"type": "boolean"
},
"removeEmail": {
"type": "boolean"
},
"removeLinks": {
"type": "boolean"
},
"removePhone": {
"type": "boolean"
},
"removeYears": {
"type": "boolean"
},
"removeGender": {
"type": "boolean"
},
"removeAddress": {
"type": "boolean"
},
"removePersonal": {
"type": "boolean"
}
},
"additionalProperties": false
}{
"title": "Business Blind Cv",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}publishing_isbn
ISBN checker and converter
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"isbn"
],
"properties": {
"isbn": {
"type": "string",
"maxLength": 40,
"minLength": 1,
"description": "An ISBN-10 or ISBN-13, with or without hyphens or spaces, optionally written with an ISBN prefix."
}
},
"additionalProperties": false
}{
"title": "Publishing Isbn",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}publishing_spine_width
Book spine and cover size calculator
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"trimWidthIn",
"trimHeightIn",
"pages",
"thicknessIn"
],
"properties": {
"dpi": {
"type": "integer",
"maximum": 1200,
"minimum": 72,
"description": "Resolution used to give the cover size in pixels, a whole number from 72 to 1200. Default 300."
},
"pages": {
"type": "integer",
"maximum": 2000,
"minimum": 1,
"description": "Page count, a whole number from 1 to 2000. Printed books have an even count; an odd number returns a warning."
},
"bleedIn": {
"type": "number",
"maximum": 1,
"minimum": 0,
"description": "Bleed in inches added on every outer edge, 0 to 1. Default 0.125."
},
"platform": {
"enum": [
"kdp",
"ingramspark",
"lulu"
],
"type": "string",
"description": "Printer the numbers are for. Default kdp. For kdp a warning is returned when pages is outside 24 to 828 (black and white, white paper); the other printers have no built-in page limits."
},
"thicknessIn": {
"type": "number",
"maximum": 0.02,
"description": "Paper thickness in inches per page (one sheet is two pages), above 0 and at most 0.02, for example 0.002252 for KDP black and white on white paper.",
"exclusiveMinimum": 0
},
"trimWidthIn": {
"type": "number",
"maximum": 14,
"minimum": 2,
"description": "Trim width of one page in inches, 2 to 14."
},
"trimHeightIn": {
"type": "number",
"maximum": 14,
"minimum": 2,
"description": "Trim height in inches, 2 to 14."
},
"spineAllowanceIn": {
"type": "number",
"maximum": 0.5,
"minimum": -0.5,
"description": "Extra width in inches added to (or, if negative, removed from) the spine, -0.5 to 0.5. Default 0."
}
},
"additionalProperties": false
}{
"title": "Publishing Spine Width",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}publishing_print_royalty
Print cost and royalty calculator
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"pages",
"fixedCharge",
"perPageCharge",
"method",
"percent",
"listPrice"
],
"properties": {
"pages": {
"type": "integer",
"maximum": 2000,
"minimum": 1,
"description": "Page count, 1 to 2000."
},
"method": {
"enum": [
"rate",
"wholesale"
],
"type": "string",
"description": "rate: you earn percent of the list price. wholesale: percent is the discount given to retailers and you earn the rest."
},
"percent": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "The royalty rate (method rate) or the retailer discount (method wholesale), 0 to 100."
},
"listPrice": {
"type": "number",
"minimum": 0,
"description": "The list (cover) price per copy, 0 or more. At 0 nothing is earned, so the royalty is the printing cost as a loss."
},
"fixedCharge": {
"type": "number",
"minimum": 0,
"description": "Fixed printing charge per copy, in your currency (0 or more)."
},
"upfrontCost": {
"type": "number",
"minimum": 0,
"description": "One-off cost (editing, cover, ISBN), 0 or more. When given, copiesToRecoverUpfront is how many copies earn it back; null when each copy earns nothing."
},
"perPageCharge": {
"type": "number",
"minimum": 0,
"description": "Printing charge per page, in the same currency (0 or more). Printing cost per copy = fixedCharge + perPageCharge x pages."
},
"targetRoyalty": {
"type": "number",
"minimum": 0,
"description": "The royalty per copy you want to earn, 0 or more. When given, priceForTargetRoyalty is the lowest list price (to the cent) that earns it; null when the royalty share is 0."
}
},
"additionalProperties": false
}{
"title": "Publishing Print Royalty",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}ecommerce_etsy_listing_check
Etsy listing checker
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"title"
],
"properties": {
"tags": {
"type": "string",
"maxLength": 5000,
"description": "Tags separated by commas, semicolons or new lines. Errors: more than 13 tags, a tag over 20 characters, a repeated tag, a tag starting with a hyphen or apostrophe."
},
"title": {
"type": "string",
"maxLength": 1000,
"minLength": 1,
"description": "The listing title. Errors: more than 140 characters; the characters % : & used more than once each; any of $ ^ \\ and the backtick. Everything else is advice."
}
},
"additionalProperties": false
}{
"title": "Ecommerce Etsy Listing Check",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}publishing_kdp_description
Book description HTML formatter
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"html": {
"type": "string",
"maxLength": 200000,
"description": "HTML to clean to the tags KDP allows; what was removed or changed is reported."
},
"text": {
"type": "string",
"maxLength": 200000,
"description": "Plain text; blank lines make paragraphs. Send text or html (html wins when both are sent)."
},
"heading": {
"enum": [
"h4",
"h5",
"h6"
],
"type": "string",
"description": "Tag used for headings. Default h4."
}
},
"additionalProperties": false
}{
"title": "Publishing Kdp Description",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}publishing_onix
publishing onix
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"title",
"contributors",
"isbn",
"publisher",
"pubDate"
],
"properties": {
"isbn": {
"type": "string",
"maxLength": 40,
"minLength": 1,
"description": "The ISBN-13 (978 or 979, valid check digit), hyphens allowed. An ISBN-10 is rejected with the ISBN-13 to use."
},
"title": {
"type": "string",
"maxLength": 1000,
"minLength": 1,
"description": "The product title."
},
"prices": {
"type": "array",
"items": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"type": {
"enum": [
"01",
"02"
],
"type": "string",
"description": "ONIX price type: 01 recommended retail price EXCLUDING tax, 02 INCLUDING tax. Default by currency: 01 for USD and CAD (their prices are quoted before sales tax), 02 for every other currency. A warning is returned when USD or CAD is sent with 02. Two prices with the same currency and type are rejected."
},
"amount": {
"type": "string",
"maxLength": 20,
"description": "Digits with a decimal point and at most 2 decimals, for example 14.99. 0 and any other format are reported as an error issue (422)."
},
"currency": {
"type": "string",
"maxLength": 10,
"description": "Three-letter ISO 4217 code in capitals, for example USD. Anything else is an error issue (422)."
}
},
"additionalProperties": false
},
"maxItems": 20
},
"pubDate": {
"type": "string",
"maxLength": 20,
"description": "Publication date as YYYY-MM-DD, YYYY-MM or YYYY, and a real calendar date. Anything else is reported as an error issue (422)."
},
"audience": {
"enum": [
"01",
"02",
"03",
"04",
"05",
"06"
],
"type": "string",
"description": "ONIX audience code: 01 general/trade, 02 children/juvenile, 03 young adult, 04 primary and secondary education, 05 college/higher education, 06 professional and scholarly. Default: not stated."
},
"language": {
"type": "string",
"maxLength": 10,
"description": "Three-letter ISO 639-2/B language code in lower case, for example eng, fre, ger, spa. Default eng. Anything else is reported as an error issue (422)."
},
"subjects": {
"type": "array",
"items": {
"type": "object",
"required": [
"scheme",
"code"
],
"properties": {
"code": {
"type": "string",
"maxLength": 40,
"minLength": 1,
"description": "A BISAC code such as FIC027020 (three letters, six digits) or a Thema code such as FBA or 1KBB."
},
"scheme": {
"enum": [
"bisac",
"thema"
],
"type": "string"
}
},
"additionalProperties": false
},
"maxItems": 20
},
"subtitle": {
"type": "string",
"maxLength": 1000
},
"pageCount": {
"type": "string",
"maxLength": 10,
"description": "Number of pages as digits, 1 to 999999, written as text. Anything else is an error issue (422); print forms without it get a warning."
},
"publisher": {
"type": "string",
"maxLength": 300,
"minLength": 1
},
"territory": {
"type": "string",
"maxLength": 200,
"description": "WORLD, or two-letter country codes separated by spaces, for example US CA GB. Default WORLD. Anything else is an error issue (422)."
},
"description": {
"type": "string",
"maxLength": 100000,
"description": "The main description; a warning when missing."
},
"productForm": {
"enum": [
"BB",
"BC",
"EA"
],
"type": "string",
"description": "ONIX product form: BC paperback (default), BB hardback, EA digital download (written with form detail E101, EPUB)."
},
"availability": {
"type": "string",
"pattern": "^[0-9]{2}$",
"description": "ONIX product availability code (code list 65). Default 20 (available). 10 not yet available, 40 not available."
},
"contributors": {
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"maxLength": 300,
"minLength": 1,
"description": "Name as printed, for example Jane Q. Writer."
},
"role": {
"type": "string",
"pattern": "^[A-Z][0-9]{2}$",
"description": "ONIX contributor role code (code list 17). Default A01 (author). Common: B01 editor, A12 illustrator, B06 translator."
},
"inverted": {
"type": "string",
"maxLength": 300,
"description": "Name inverted for sorting, written Last name, First name (a warning when there is no comma)."
}
},
"additionalProperties": false
},
"maxItems": 50,
"minItems": 1,
"description": "At least one named contributor."
},
"shortDescription": {
"type": "string",
"maxLength": 350,
"description": "Up to 350 characters."
}
},
"additionalProperties": false
}{
"title": "Publishing Onix",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}business_cover_letter
Cover letter maker
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"name",
"contact",
"date",
"company",
"role",
"achievements"
],
"properties": {
"why": {
"type": "string"
},
"date": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1
},
"role": {
"type": "string",
"minLength": 1
},
"found": {
"type": "string"
},
"years": {
"type": "string"
},
"company": {
"type": "string",
"minLength": 1
},
"contact": {
"type": "string",
"minLength": 1,
"description": "Contact lines, one per line"
},
"manager": {
"type": "string"
},
"achievements": {
"type": "string",
"minLength": 1,
"description": "Best results for this job, one per line"
}
},
"additionalProperties": false
}{
"title": "Business Cover Letter",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}business_pay_stub
Pay stub generator
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"employer",
"employee",
"periodStart",
"periodEnd",
"payDate",
"payType",
"rate"
],
"properties": {
"rate": {
"type": "string",
"minLength": 1,
"description": "Hourly rate, or the salary for this period"
},
"bonus": {
"type": "string"
},
"hours": {
"type": "string"
},
"other": {
"type": "string"
},
"ssPct": {
"type": "string"
},
"fedPct": {
"type": "string"
},
"health": {
"type": "string"
},
"medPct": {
"type": "string"
},
"retire": {
"type": "string"
},
"payDate": {
"type": "string",
"minLength": 1
},
"payType": {
"enum": [
"hourly",
"salary"
],
"type": "string"
},
"employee": {
"type": "string",
"minLength": 1
},
"employer": {
"type": "string",
"minLength": 1
},
"statePct": {
"type": "string"
},
"ytdGross": {
"type": "string"
},
"periodEnd": {
"type": "string",
"minLength": 1
},
"employeeId": {
"type": "string"
},
"periodStart": {
"type": "string",
"minLength": 1
},
"otMultiplier": {
"type": "string"
},
"overtimeHours": {
"type": "string"
},
"employerAddress": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Business Pay Stub",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}business_proposal
Proposal builder
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"you",
"client",
"date",
"summary",
"scope",
"prices"
],
"properties": {
"you": {
"type": "string",
"minLength": 1
},
"date": {
"type": "string",
"minLength": 1
},
"scope": {
"type": "string",
"minLength": 1,
"description": "Scope of work, one item per line"
},
"terms": {
"type": "string"
},
"title": {
"type": "string"
},
"client": {
"type": "string",
"minLength": 1
},
"prices": {
"type": "string",
"minLength": 1,
"description": "Price lines with the amount at the end, for example Design: $1,200"
},
"summary": {
"type": "string",
"minLength": 1
},
"timeline": {
"type": "string"
},
"validDays": {
"type": "string"
},
"outOfScope": {
"type": "string"
},
"deliverables": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Business Proposal",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}business_rental_application
Rental application maker
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"property",
"landlord"
],
"properties": {
"fee": {
"type": "string"
},
"pets": {
"enum": [
"yes",
"no"
],
"type": "string"
},
"rent": {
"type": "string"
},
"moveIn": {
"type": "string"
},
"deposit": {
"type": "string"
},
"landlord": {
"type": "string",
"minLength": 1
},
"property": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}{
"title": "Business Rental Application",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 477 ms
- 95th percentile latency
- 477 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 477 ms · metadata changed · 225 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http freedailypro-mcp https://api.freedailypro.com/mcpCodex
codex mcp add freedailypro-mcp --url https://api.freedailypro.com/mcpCursor
{
"mcpServers": {
"freedailypro-mcp": {
"url": "https://api.freedailypro.com/mcp"
}
}
}Cline
{
"mcpServers": {
"freedailypro-mcp": {
"type": "streamableHttp",
"url": "https://api.freedailypro.com/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"freedailypro-mcp": {
"type": "http",
"url": "https://api.freedailypro.com/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http freedailypro-mcp https://api.freedailypro.com/mcpClaude Desktop
{
"mcpServers": {
"freedailypro-mcp": {
"url": "https://api.freedailypro.com/mcp"
}
}
}Windsurf
{
"mcpServers": {
"freedailypro-mcp": {
"serverUrl": "https://api.freedailypro.com/mcp"
}
}
}Let your agent find its tools
Find servers like FreeDailyPro MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other productivity and knowledge servers
Do you run FreeDailyPro MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.