{"openapi":"3.1.0","info":{"title":"Demystify Tools API","version":"1","description":"Privacy-first utility tools over a simple REST API. Anonymous free tier. Each endpoint validates input with the same schema the browser tool uses. Tools that need a browser, an AI key, or network egress are not on this API — run those in the browser or your own Bring-Your-Own-Cloud runner."},"servers":[{"url":"/api/v1"}],"paths":{"/base64-encode-decode":{"post":{"operationId":"base64_encode_decode","summary":"Base64 encode/decode","description":"Text and files, URL-safe variant","tags":["developer"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string"},"mode":{"type":"string","enum":["encode","decode"]}},"required":["text","mode"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string"},"result":{}},"required":["tool","result"]}}}},"404":{"description":"Tool not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Input failed validation","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Engine error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/json-formatter":{"post":{"operationId":"json_formatter","summary":"JSON formatter","description":"Format, validate, tree view, precise error pointer","tags":["data"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string"},"indent":{"anyOf":[{"type":"number","enum":[2]},{"type":"number","enum":[4]},{"type":"string","enum":["tab"]}],"default":2},"sortKeys":{"type":"boolean","default":false},"mode":{"type":"string","enum":["pretty","minify"],"default":"pretty"}},"required":["text"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string"},"result":{}},"required":["tool","result"]}}}},"404":{"description":"Tool not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Input failed validation","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Engine error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/hash-generator":{"post":{"operationId":"hash_generator","summary":"Hash generator","description":"MD5 / SHA-1 / SHA-256 / SHA-512 for text and files","tags":["developer"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string"},"algorithms":{"type":"array","items":{"type":"string","enum":["md5","sha1","sha256","sha384","sha512"]},"minItems":1}},"required":["text","algorithms"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string"},"result":{}},"required":["tool","result"]}}}},"404":{"description":"Tool not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Input failed validation","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Engine error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/uuid-generator":{"post":{"operationId":"uuid_generator","summary":"UUID generator","description":"v4/v7, bulk, multiple formats","tags":["developer"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"version":{"type":"string","enum":["v4","v7"]},"count":{"type":"integer","minimum":1,"maximum":1000},"format":{"type":"string","enum":["standard","uppercase","braced","no-dashes"]}},"required":["version","count","format"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string"},"result":{}},"required":["tool","result"]}}}},"404":{"description":"Tool not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Input failed validation","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Engine error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/jwt-decoder":{"post":{"operationId":"jwt_decoder","summary":"JWT decoder","description":"Decode header/payload, verify signatures","tags":["developer"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string"}},"required":["token"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string"},"result":{}},"required":["tool","result"]}}}},"404":{"description":"Tool not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Input failed validation","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Engine error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/epoch-converter":{"post":{"operationId":"epoch_converter","summary":"Epoch converter","description":"Unix time to human and back, ms/s, timezones","tags":["developer"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"value":{"type":"string"},"direction":{"type":"string","enum":["to-human","to-epoch"]},"unit":{"type":"string","enum":["s","ms"]}},"required":["value","direction","unit"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string"},"result":{}},"required":["tool","result"]}}}},"404":{"description":"Tool not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Input failed validation","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Engine error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/gst-calculator":{"post":{"operationId":"gst_calculator","summary":"GST calculator","description":"Inclusive and exclusive, CGST/SGST/IGST split","tags":["business-india"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"amountPaise":{"type":"integer","minimum":0},"rate":{"anyOf":[{"type":"number","enum":[0]},{"type":"number","enum":[5]},{"type":"number","enum":[12]},{"type":"number","enum":[18]},{"type":"number","enum":[28]}]},"mode":{"type":"string","enum":["exclusive","inclusive"],"default":"exclusive"},"supply":{"type":"string","enum":["intra","inter"],"default":"intra"}},"required":["amountPaise","rate"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string"},"result":{}},"required":["tool","result"]}}}},"404":{"description":"Tool not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Input failed validation","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Engine error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/gstin-validator":{"post":{"operationId":"gstin_validator","summary":"GSTIN validator","description":"Format, checksum, state decode","tags":["business-india"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"gstin":{"type":"string"}},"required":["gstin"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string"},"result":{}},"required":["tool","result"]}}}},"404":{"description":"Tool not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Input failed validation","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Engine error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/amount-to-words":{"post":{"operationId":"amount_to_words","summary":"Amount to words","description":"Rupees to words, English and Hindi, cheque-ready, lakh/crore","tags":["content-design"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"amount":{"type":"number","minimum":0},"currency":{"type":"string","enum":["rupees","none"],"default":"rupees"}},"required":["amount"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string"},"result":{}},"required":["tool","result"]}}}},"404":{"description":"Tool not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Input failed validation","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Engine error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/upi-qr-generator":{"post":{"operationId":"upi_qr_generator","summary":"UPI QR generator","description":"VPA plus amount to printable QR","tags":["business-india"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"payeeVpa":{"type":"string"},"payeeName":{"type":"string"},"amountPaise":{"type":"integer","minimum":0},"note":{"type":"string","maxLength":80}},"required":["payeeVpa","payeeName"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string"},"result":{}},"required":["tool","result"]}}}},"404":{"description":"Tool not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Input failed validation","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Engine error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/gold-making-charges-calculator":{"post":{"operationId":"gold_making_charges_calculator","summary":"Gold making-charges calculator","description":"Rate x weight + making percent + 3 percent GST, itemized","tags":["business-india"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ratePerGram":{"type":"number","minimum":0},"grams":{"type":"number","minimum":0},"makingType":{"type":"string","enum":["percent","perGram"],"default":"percent"},"makingValue":{"type":"number","minimum":0,"default":10},"gst":{"type":"boolean","default":true}},"required":["ratePerGram","grams"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string"},"result":{}},"required":["tool","result"]}}}},"404":{"description":"Tool not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Input failed validation","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Engine error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/cron-builder":{"post":{"operationId":"cron_builder","summary":"Cron builder","description":"Build and explain cron, next 10 runs, IST-aware","tags":["developer"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"expression":{"type":"string"},"fromMs":{"type":"number"},"count":{"type":"integer","default":5}},"required":["expression","fromMs"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string"},"result":{}},"required":["tool","result"]}}}},"404":{"description":"Tool not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Input failed validation","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Engine error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/json-to-typescript":{"post":{"operationId":"json_to_typescript","summary":"JSON to TypeScript","description":"Interfaces from sample JSON","tags":["developer"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string"},"rootName":{"type":"string","default":"Root"}},"required":["text"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string"},"result":{}},"required":["tool","result"]}}}},"404":{"description":"Tool not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Input failed validation","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Engine error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/json-schema-generator":{"post":{"operationId":"json_schema_generator","summary":"JSON Schema generator","description":"Infer a schema from sample JSON","tags":["data"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string"}},"required":["text"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string"},"result":{}},"required":["tool","result"]}}}},"404":{"description":"Tool not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Input failed validation","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Engine error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/json-to-csv":{"post":{"operationId":"json_to_csv","summary":"JSON to CSV","description":"Flatten nested JSON to CSV and back","tags":["data"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string"}},"required":["text"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string"},"result":{}},"required":["tool","result"]}}}},"404":{"description":"Tool not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Input failed validation","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Engine error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/json-to-any-language":{"post":{"operationId":"json_to_any_language","summary":"JSON to any language","description":"Go, Rust, Kotlin, Java, Python, C# types","tags":["developer"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"json":{"type":"string"},"lang":{"type":"string","enum":["go","python","rust","kotlin","java","csharp"],"default":"go"},"rootName":{"type":"string","default":"Root"}},"required":["json"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string"},"result":{}},"required":["tool","result"]}}}},"404":{"description":"Tool not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Input failed validation","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Engine error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/curl-to-code":{"post":{"operationId":"curl_to_code","summary":"cURL to code","description":"fetch, axios, Python requests, Go, PHP","tags":["developer"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"curl":{"type":"string"},"target":{"type":"string","enum":["fetch","axios","python","go","php"],"default":"fetch"}},"required":["curl"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string"},"result":{}},"required":["tool","result"]}}}},"404":{"description":"Tool not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Input failed validation","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Engine error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/mcp-server-generator":{"post":{"operationId":"mcp_server_generator","summary":"MCP server generator","description":"Describe your tools or paste an OpenAPI spec, get server.json plus a working MCP scaffold","tags":["developer"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string"},"serverName":{"type":"string","default":"my-tools"}},"required":["text"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string"},"result":{}},"required":["tool","result"]}}}},"404":{"description":"Tool not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Input failed validation","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Engine error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/api-spec-generator":{"post":{"operationId":"api_spec_generator","summary":"API spec generator","description":"Describe endpoints in plain language, get valid OpenAPI 3.1 YAML","tags":["developer"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string"},"title":{"type":"string","default":"My API"},"version":{"type":"string","default":"1.0.0"}},"required":["text"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string"},"result":{}},"required":["tool","result"]}}}},"404":{"description":"Tool not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Input failed validation","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Engine error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/data-anonymizer":{"post":{"operationId":"data_anonymizer","summary":"Data anonymizer","description":"Mask PII columns before sharing","tags":["data"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string"},"columns":{"type":"array","items":{"type":"string"},"default":[]},"mode":{"type":"string","enum":["mask","hash","redact"],"default":"mask"}},"required":["text"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string"},"result":{}},"required":["tool","result"]}}}},"404":{"description":"Tool not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Input failed validation","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Engine error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/mock-data-generator":{"post":{"operationId":"mock_data_generator","summary":"Mock data generator","description":"Schema to realistic fake CSV/JSON with Indian locale (names, phones, PAN, GSTIN)","tags":["data"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"schema":{"type":"string"},"rows":{"type":"integer","exclusiveMinimum":true,"minimum":0,"maximum":10000,"default":10},"format":{"type":"string","enum":["csv","json"],"default":"csv"},"seed":{"type":"integer","default":42}},"required":["schema"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"tool":{"type":"string"},"result":{}},"required":["tool","result"]}}}},"404":{"description":"Tool not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Input failed validation","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Engine error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}}},"components":{"schemas":{"Problem":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"code":{"type":"string"},"detail":{"type":"string"},"recovery":{"type":"string"}},"required":["title","status","code"]}}}}