{"openapi":"3.1.0","info":{"title":"iotools.cloud API","version":"1.0.0","description":"Run any iotools.cloud tool over HTTP.\n\nAuthenticate with `Authorization: Bearer iot_live_…`.\n\n**Only `POST /v1/tool/{slug}` costs credits.** Every GET here — the catalog, a tool's schema, your balance — is free. A tool call is charged its own weight or your plan's per-call minimum, whichever is larger; `x-iotools-credit-cost` on each operation is quoted at the free-tier minimum, and `GET /v1/tools/list` returns the exact figure for your key. `GET /v1/me/credits` reports what you have left, and `GET /v1/me/usage` reports what it went on.\n\nFailures are RFC 9457 problem documents — branch on `code`."},"servers":[{"url":"https://api.iotools.cloud","description":"Production"}],"tags":[{"name":"Catalog","description":"Find a tool and read its contract. Free."},{"name":"Converters","description":"Convert between formats, encodings, and units — Base64, CSV and JSON, timestamps, and more. Fast, free, and processed right in your browser."},{"name":"Formatters","description":"Format, beautify, minify, and validate code and data — JSON, HTML, CSS, SQL, and regex. Clean up messy input in one click, with nothing to upload."},{"name":"Generators","description":"Generate exactly what you need and on demand — passwords, UUIDs, QR codes, hashes, random numbers, and more. Secure, instant, and free."},{"name":"Calculators","description":"Crunch the numbers fast — from everyday math to specialized conversions and unit work. Free online calculators that run entirely in your browser."},{"name":"Editors","description":"Edit and transform text, code, and images with quick, focused editors that run entirely in your browser — nothing to install, and no sign-up needed."},{"name":"Utilities","description":"Everyday developer and web utilities — DNS and IP lookups, redirect and certificate checkers, and other quick diagnostics. Free and privacy-friendly."},{"name":"Account","description":"Your key's allowance, limits and usage history."}],"components":{"schemas":{"Problem":{"type":"object","description":"RFC 9457 problem document, served as application/problem+json. Branch on `code`; `title` is human prose and may be reworded without notice.","required":["type","title","status","code"],"properties":{"type":{"type":"string","format":"uri","description":"Stable documentation URI for this failure.","examples":["https://iotools.cloud/docs/errors/invalid_api_key","https://iotools.cloud/docs/errors/api_unconfigured","https://iotools.cloud/docs/errors/validation_error","https://iotools.cloud/docs/errors/payload_too_large","https://iotools.cloud/docs/errors/tool_not_found","https://iotools.cloud/docs/errors/tool_not_allowed","https://iotools.cloud/docs/errors/tool_disabled","https://iotools.cloud/docs/errors/rate_limited","https://iotools.cloud/docs/errors/insufficient_credits","https://iotools.cloud/docs/errors/processing_error","https://iotools.cloud/docs/errors/internal_error"]},"title":{"type":"string","examples":["Invalid API key","API not configured","Invalid request","Payload too large","Tool not found","Tool not available over the API","Tool temporarily disabled","Rate limit exceeded","Insufficient credits","Tool failed to run","Internal error"]},"status":{"type":"integer"},"code":{"type":"string","enum":["invalid_api_key","api_unconfigured","validation_error","payload_too_large","tool_not_found","tool_not_allowed","tool_disabled","rate_limited","insufficient_credits","processing_error","internal_error"]},"detail":{"type":"string","description":"Human explanation of this occurrence."},"request_id":{"type":"string","description":"Correlation id, also sent as x-request-id."}}}},"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"iot_live_…"}}},"security":[{"bearerAuth":[]}],"paths":{"/v1/tools/list":{"get":{"operationId":"list_tools","x-hidden":true,"summary":"List tools","description":"Every tool with an API — slug, title, description, category and credit cost. Use it to discover slugs rather than hard-coding them. Fetch a tool's input schema with `GET /v1/tool/{slug}` once you know which one you want. Free: this call costs no credits.","tags":["Catalog"],"security":[{"bearerAuth":[]}],"x-iotools-credit-cost":0,"responses":{"200":{"description":"The catalog.","content":{"application/json":{"schema":{"type":"object","required":["tools"],"properties":{"tools":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"category":{"type":"string"},"credit_cost":{"type":"integer","description":"Credits a run of this tool costs YOUR key, floor included — so it already reflects your plan and can be compared directly against `GET /v1/me/credits`."},"credit_cost_multiplier_field":{"type":"string","description":"Present only on per-unit tools: `credit_cost` is then a rate, and a run costs it times the value of this input field."}}}}}}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Rate limited.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tools/search":{"get":{"operationId":"search_tools","x-hidden":true,"summary":"Search tools","description":"Find a tool by name, slug, description or tag without pulling the whole catalog. Ranked — an exact slug beats a title match beats a description match — and results are stable for a given query. Free: this call costs no credits.","tags":["Catalog"],"security":[{"bearerAuth":[]}],"x-iotools-credit-cost":0,"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string"},"description":"What you're looking for, e.g. `convert csv`. Every word must match.","example":"qr code"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":25,"default":5},"description":"How many results to return. Values above the maximum are clamped, not rejected."}],"responses":{"200":{"description":"Matching tools, best first.","content":{"application/json":{"schema":{"type":"object","required":["query","count","tools"],"properties":{"query":{"type":"string"},"count":{"type":"integer"},"tools":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"category":{"type":"string"},"credit_cost":{"type":"integer","description":"Credits a run of this tool costs YOUR key, floor included — so it already reflects your plan and can be compared directly against `GET /v1/me/credits`."},"credit_cost_multiplier_field":{"type":"string","description":"Present only on per-unit tools: `credit_cost` is then a rate, and a run costs it times the value of this input field."}}}}}}}}},"400":{"description":"Missing or malformed query.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"Pass what you're looking for as `q`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Rate limited.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/{slug}":{"get":{"operationId":"get_tool_schema","x-hidden":true,"summary":"Get tool schema","description":"Input and output JSON Schema for one tool, plus what a run costs your key. Use it after `search` to learn a tool's exact contract without pulling the full catalog. Free: this call costs no credits.","tags":["Catalog"],"security":[{"bearerAuth":[]}],"x-iotools-credit-cost":0,"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"},"description":"The tool's slug. Nested slugs keep their slash: `ai-writer/story`.","example":"case-converter"}],"responses":{"200":{"description":"The tool's contract.","content":{"application/json":{"schema":{"type":"object","properties":{"slug":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"category":{"type":"string"},"credit_cost":{"type":"integer","description":"Credits a run of this tool costs YOUR key, floor included — so it already reflects your plan and can be compared directly against `GET /v1/me/credits`."},"credit_cost_multiplier_field":{"type":"string","description":"Present only on per-unit tools: `credit_cost` is then a rate, and a run costs it times the value of this input field."},"schema":{"type":"object","required":["input","output"],"properties":{"input":{"type":"object","description":"JSON Schema for the tool's inputs."},"output":{"type":"object","description":"JSON Schema for the tool's outputs."}}}}}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with the slug \"no-such-tool\".","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Rate limited.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/me/credits":{"get":{"operationId":"get_credits","x-hidden":true,"summary":"Get credit balance","description":"Credits left in the current allowance for the key's owner, when they reset, and the per-minute rate limit in force. Free — this call costs no credits and is not billed against the allowance it reports.\n\n`metered` is `false` on a deployment without Redis; `credits` is then `null` and tool calls still succeed, unmetered.","tags":["Account"],"security":[{"bearerAuth":[]}],"x-iotools-credit-cost":0,"responses":{"200":{"description":"The key owner's allowance.","content":{"application/json":{"schema":{"type":"object","required":["tier","metered","credits","rate_limit"],"properties":{"tier":{"type":"string","examples":["member","pro"]},"metered":{"type":"boolean","description":"False when this deployment has no credit metering configured."},"credits":{"type":["object","null"],"description":"Null exactly when `metered` is false.","properties":{"used":{"type":"integer"},"limit":{"type":"integer"},"remaining":{"type":"integer"},"period":{"type":"string","enum":["month","day"]},"resets_at":{"type":"string","format":"date-time","description":"UTC instant the allowance rolls over."}}},"rate_limit":{"type":"object","properties":{"requests_per_minute":{"type":"integer"}}}}},"example":{"tier":"member","metered":true,"credits":{"used":412,"limit":1000,"remaining":588,"period":"month","resets_at":"2026-08-01T00:00:00.000Z"},"rate_limit":{"requests_per_minute":60}}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Rate limited.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/me/usage":{"get":{"operationId":"get_usage","x-hidden":true,"summary":"Get credit usage history","description":"What the key's owner spent credits on, over the last 30 days — one row per tool per day per surface (`web`, `api`, `mcp`), newest and biggest first. Free: this call costs no credits.\n\nA usage history, not a ledger: rows only exist for days with spend, and `credits` is net of any settlement refund.","tags":["Account"],"security":[{"bearerAuth":[]}],"x-iotools-credit-cost":0,"responses":{"200":{"description":"The key owner's recent spend.","content":{"application/json":{"schema":{"type":"object","required":["days","items"],"properties":{"days":{"type":"integer","description":"How many days of history this response covers."},"items":{"type":"array","items":{"type":"object","required":["day","slug","title","surface","credits","runs"],"properties":{"day":{"type":"string","format":"date","description":"UTC, `YYYY-MM-DD`."},"slug":{"type":"string"},"title":{"type":"string"},"surface":{"type":"string","description":"Where the spend happened, e.g. `web`, `api`, `mcp`."},"credits":{"type":"integer"},"runs":{"type":"integer"}}}}}},"example":{"days":30,"items":[{"day":"2026-07-28","slug":"ai-writer","title":"AI Writer","surface":"api","credits":24,"runs":1},{"day":"2026-07-27","slug":"case-converter","title":"String Case Converter","surface":"mcp","credits":3,"runs":1}]}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Rate limited.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/acceleration-converter":{"post":{"operationId":"run_acceleration_converter","summary":"Acceleration Converter","tags":["Converters"],"description":"Convert acceleration between meters per second squared (m/s²), Galileo (Gal), feet per second squared, inches per second squared, and standard gravity (g) at once. Enter one value, pick its unit, and see the equivalent in all 5 units.\n\n[Try Acceleration Converter in your browser →](https://iotools.cloud/tool/acceleration-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioValue":{"type":"number","description":"Amount"},"ioFromUnit":{"enum":["meterPerSecondSquared","galileo","footPerSecondSquared","inchPerSecondSquared","standardGravity"],"description":"Unit"},"ioPrecision":{"enum":["0","2","4","6","8","10"],"description":"Decimal precision"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioTable":{"type":"string","description":"Converted to every unit"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/aes-encryption-decryption":{"post":{"operationId":"run_aes_encryption_decryption","summary":"AES Encryption/Decryption","tags":["Converters"],"description":"Encrypt or decrypt text with AES-256-CBC. Runs entirely client-side — provide a 64-character hex key, and the tool handles padding, the IV, and base64 encoding.\n\n[Try AES Encryption/Decryption in your browser →](https://iotools.cloud/tool/aes-encryption-decryption/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Input Text"},"ioKey":{"type":"string","description":"Secret Key (hex)"},"ioMode":{"enum":["encrypt","decrypt"],"description":"Mode"}},"required":["ioInputText","ioKey"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/angle-converter":{"post":{"operationId":"run_angle_converter","summary":"Angle Converter","tags":["Converters"],"description":"Convert angles between degrees, radians, gradians, turns, arcminutes, arcseconds, and milliradians at once, plus the sine/cosine/tangent for that angle. Enter one value, pick its unit, and see the equivalent in every unit.\n\n[Try Angle Converter in your browser →](https://iotools.cloud/tool/angle-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioValue":{"type":"number","description":"Amount"},"ioFromUnit":{"enum":["degree","radian","gradian","turn","arcminute","arcsecond","milliradian"],"description":"Unit"},"ioPrecision":{"enum":["0","2","4","6","8","10"],"description":"Decimal precision"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioTable":{"type":"string","description":"Converted to every unit"},"ioTrigTable":{"type":"string","description":"Trigonometric values"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/area-converter":{"post":{"operationId":"run_area_converter","summary":"Area Converter","tags":["Converters"],"description":"Convert area between square meters, square kilometers, hectares, acres, square feet, square miles, and 8 other units. Enter one value and pick its unit, then either see the equivalent in every unit at once or pick a single target unit.\n\n[Try Area Converter in your browser →](https://iotools.cloud/tool/area-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioValue":{"type":"number","description":"Amount"},"ioFromUnit":{"enum":["square_meter","square_kilometer","square_centimeter","square_millimeter","square_decimeter","square_dekameter","square_hectometer","hectare","acre","square_foot","square_yard","square_mile","square_inch","square_micrometer","square_nanometer"],"description":"Convert from"},"ioToUnit":{"enum":["all","square_meter","square_kilometer","square_centimeter","square_millimeter","square_decimeter","square_dekameter","square_hectometer","hectare","acre","square_foot","square_yard","square_mile","square_inch","square_micrometer","square_nanometer"],"description":"Convert to"},"ioPrecision":{"enum":["0","2","4","6","8","10"],"description":"Decimal precision"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Result"},"ioTable":{"type":"string","description":"Converted to every unit"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/atbash-cipher":{"post":{"operationId":"run_atbash_cipher","summary":"Atbash Cipher","tags":["Converters"],"description":"Encode and decode text using the Atbash cipher. Reverses the alphabet (A↔Z, B↔Y, C↔X…); non-letters pass through unchanged. Self-inverse — running it twice returns the original text.\n\n[Try Atbash Cipher in your browser →](https://iotools.cloud/tool/atbash-cipher/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Input Text"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Atbash Output"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/base32-encoder-decoder":{"post":{"operationId":"run_base32_encoder_decoder","summary":"Base32 Encoder/Decoder","tags":["Converters"],"description":"Encode text to Base32 or decode Base32 strings back to plain text (RFC 4648, UTF-8 aware). Handles padding and validates Base32 characters automatically.\n\n[Try Base32 Encoder/Decoder in your browser →](https://iotools.cloud/tool/base32-encoder-decoder/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Input Text"},"ioMode":{"enum":["encode","decode"],"description":"Mode"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/base58-encoder-decoder":{"post":{"operationId":"run_base58_encoder_decoder","summary":"Base58 Encoder/Decoder","tags":["Converters"],"description":"Encode text to Base58 or decode Base58 strings back to plain text using the Bitcoin alphabet (UTF-8 aware). Handles leading zero bytes and validates Base58 characters automatically.\n\n[Try Base58 Encoder/Decoder in your browser →](https://iotools.cloud/tool/base58-encoder-decoder/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Input Text"},"ioMode":{"enum":["encode","decode"],"description":"Mode"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/base64-decode":{"post":{"operationId":"run_base64_decode","summary":"Base64 Decode","tags":["Converters"],"description":"Decode Base64 strings back to plain text (UTF-8 aware). Paste one or more Base64 values — each line is decoded separately.\n\n[Try Base64 Decode in your browser →](https://iotools.cloud/tool/base64-decode/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioBase64String":{"type":"string","description":"Base64 string"}},"required":["ioBase64String"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioDecoded":{"type":"string","description":"Decoded text"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/base64-image-preview-decoder":{"post":{"operationId":"run_base64_image_preview_decoder","summary":"Base64 Image Preview & Decoder","tags":["Converters"],"description":"Preview a base64-encoded image and decode it back into a clean data URI. Paste raw base64 or a full data:image/...;base64,... string — see the rendered image plus its detected format, MIME type and decoded file size.\n\n[Try Base64 Image Preview & Decoder in your browser →](https://iotools.cloud/tool/base64-image-preview-decoder/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioBase64Input":{"type":"string","description":"Base64 String"},"ioMimeType":{"enum":["image/png","image/jpeg","image/gif","image/webp","image/svg+xml"],"description":"Image type (if not a data URI)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioDataUrl":{"type":"string","description":"Normalized Data URI"},"ioInfo":{"type":"string","description":"Decoded Info"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/base85-encoder-decoder":{"post":{"operationId":"run_base85_encoder_decoder","summary":"Base85 (Ascii85) Encoder/Decoder","tags":["Converters"],"description":"Encode text to Base85 (Ascii85) or decode Base85 strings back to plain text. More compact than Base64, the encoding used by Adobe PostScript and PDF.\n\n[Try Base85 (Ascii85) Encoder/Decoder in your browser →](https://iotools.cloud/tool/base85-encoder-decoder/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Input Text"},"ioMode":{"enum":["encode","decode"],"description":"Mode"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/bech32-encoder-decoder":{"post":{"operationId":"run_bech32_encoder_decoder","summary":"Bech32 Encoder/Decoder","tags":["Converters"],"description":"Encode hex data into a Bech32 (BIP-173) string with a human-readable part, or decode a Bech32 string back to its HRP and data — with full checksum validation.\n\n[Try Bech32 Encoder/Decoder in your browser →](https://iotools.cloud/tool/bech32-encoder-decoder/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Input"},"ioMode":{"enum":["encode","decode"],"description":"Mode"},"ioHrp":{"type":"string","description":"Human-Readable Part (HRP)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/bencode-encoder-decoder":{"post":{"operationId":"run_bencode_encoder_decoder","summary":"Bencode Encoder/Decoder","tags":["Converters"],"description":"Decode bencode (the encoding used by BitTorrent .torrent files) into JSON, or encode JSON into bencode — with a torrent-info summary when decoding a torrent file's dictionary.\n\n[Try Bencode Encoder/Decoder in your browser →](https://iotools.cloud/tool/bencode-encoder-decoder/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMode":{"enum":["decode","encode"],"description":"Mode"},"ioInputText":{"type":"string","description":"Bencode Input"},"ioJsonInput":{"type":"string","description":"JSON Input"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Result"},"ioTorrentInfo":{"type":"string","description":"Torrent Info"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/binary-gray-code":{"post":{"operationId":"run_binary_gray_code","summary":"Binary to Gray Code Converter","tags":["Converters"],"description":"Convert between binary and Gray code (reflected binary), where two successive values differ in only one bit. Supports both directions plus the decimal equivalent.\n\n[Try Binary to Gray Code Converter in your browser →](https://iotools.cloud/tool/binary-gray-code/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInput":{"type":"string","description":"Value"},"ioMode":{"enum":["binary-to-gray","gray-to-binary"],"description":"Direction"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Converted Value"},"ioDecimal":{"type":"string","description":"Decimal Equivalent"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/binary-to-text-converter":{"post":{"operationId":"run_binary_to_text_converter","summary":"Binary to Text Converter","tags":["Converters"],"description":"Convert plain text to binary (8-bit UTF-8 byte groups) or decode binary back to text. Tolerates space, comma, or newline-separated bits and validates input automatically.\n\n[Try Binary to Text Converter in your browser →](https://iotools.cloud/tool/binary-to-text-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Input"},"ioMode":{"enum":["textToBinary","binaryToText"],"description":"Mode"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/bionic-reading-converter":{"post":{"operationId":"run_bionic_reading_converter","summary":"Bionic Reading Converter","tags":["Converters"],"description":"Convert any text to bionic reading format — the first few letters of every word are bolded as fixation points, guiding your eye and speeding up skimming.\n\n[Try Bionic Reading Converter in your browser →](https://iotools.cloud/tool/bionic-reading-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioText":{"type":"string","description":"Input text"},"ioFixation":{"enum":["1","2","3","4","5"],"description":"Fixation point"},"ioTextContrast":{"enum":["low","medium","high"],"description":"Text contrast"},"ioHighlightColor":{"type":"string","description":"Highlight colour"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"HTML source"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/braille-text-generator":{"post":{"operationId":"run_braille_text_generator","summary":"Braille Text Generator","tags":["Converters"],"description":"Convert plain text into Unicode Braille patterns (Grade 1 / uncontracted English Braille). Letters, digits, and common punctuation are mapped to Braille cells; unsupported characters pass through unchanged.\n\n[Try Braille Text Generator in your browser →](https://iotools.cloud/tool/braille-text-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Input Text"},"ioCapitalIndicator":{"type":"boolean","description":"Add capital letter indicator (⠠)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Braille Unicode Output"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/caesar-cipher":{"post":{"operationId":"run_caesar_cipher","summary":"Caesar Cipher","tags":["Converters"],"description":"Encode and decode text using the Caesar cipher. Shift each letter by a fixed amount (shift 13 = ROT13). Supports encode and decode modes; non-letters pass through unchanged.\n\n[Try Caesar Cipher in your browser →](https://iotools.cloud/tool/caesar-cipher/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Input Text"},"ioShift":{"type":"number","description":"Shift Amount","minimum":1,"maximum":25},"ioMode":{"enum":["encode","decode"],"description":"Mode"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/case-converter":{"post":{"operationId":"run_case_converter","summary":"String Case Converter","tags":["Converters"],"description":"Convert text between 18 letter cases: UPPERCASE, lowercase, Title Case, camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, dot.case, path/case, sPoNgE cAsE and more — line by line.\n\n[Try String Case Converter in your browser →](https://iotools.cloud/tool/case-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputString":{"type":"string","description":"Input text"},"ioCase":{"enum":["uppercase","lowercase","sentence-case","title-case","capital-case","camel-case","pascal-case","snake-case","constant-case","param-case","dot-case","path-case","header-case","no-case","swap-case","lower-case-first","upper-case-first","sponge-case"],"description":"Convert to"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutputString":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/cbor-encoder-decoder":{"post":{"operationId":"run_cbor_encoder_decoder","summary":"CBOR Encoder / Decoder","tags":["Converters"],"description":"Encode a JSON value to CBOR (RFC 8949) binary data as hex or Base64, or decode CBOR bytes back to JSON. Runs entirely in your browser.\n\n[Try CBOR Encoder / Decoder in your browser →](https://iotools.cloud/tool/cbor-encoder-decoder/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Input"},"ioMode":{"enum":["encode","decode"],"description":"Mode"},"ioOutputFormat":{"enum":["hex","base64"],"description":"Output Format"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/charge-converter":{"post":{"operationId":"run_charge_converter","summary":"Electric Charge Converter","tags":["Converters"],"description":"Convert electric charge between coulombs, millicoulombs, microcoulombs, nanocoulombs, picocoulombs, kilocoulombs, megacoulombs, elementary charge (e), faraday, and statcoulomb at once. Enter one value, pick its unit, and see the equivalent in all 10 units.\n\n[Try Electric Charge Converter in your browser →](https://iotools.cloud/tool/charge-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioValue":{"type":"number","description":"Amount"},"ioFromUnit":{"enum":["coulomb","millicoulomb","microcoulomb","nanocoulomb","picocoulomb","kilocoulomb","megacoulomb","elementaryCharge","faraday","statcoulomb"],"description":"Unit"},"ioPrecision":{"enum":["0","2","4","6","8","10"],"description":"Decimal precision"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioTable":{"type":"string","description":"Converted to every unit"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/chmod-calculator":{"post":{"operationId":"run_chmod_calculator","summary":"Chmod Calculator","tags":["Converters"],"description":"Convert Unix file permission checkboxes (read/write/execute for owner, group and others) into the numeric chmod value and symbolic notation, plus a ready-to-run chmod command.\n\n[Try Chmod Calculator in your browser →](https://iotools.cloud/tool/chmod-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioOwnerRead":{"type":"boolean","description":"Read (4)"},"ioOwnerWrite":{"type":"boolean","description":"Write (2)"},"ioOwnerExecute":{"type":"boolean","description":"Execute (1)"},"ioGroupRead":{"type":"boolean","description":"Read (4)"},"ioGroupWrite":{"type":"boolean","description":"Write (2)"},"ioGroupExecute":{"type":"boolean","description":"Execute (1)"},"ioOtherRead":{"type":"boolean","description":"Read (4)"},"ioOtherWrite":{"type":"boolean","description":"Write (2)"},"ioOtherExecute":{"type":"boolean","description":"Execute (1)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNumeric":{"type":"string","description":"Numeric (Octal) Notation"},"ioSymbolic":{"type":"string","description":"Symbolic Notation"},"ioChmodCommand":{"type":"string","description":"Chmod Command"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/cocktail-measurement-converter":{"post":{"operationId":"run_cocktail_measurement_converter","summary":"Cocktail Measurement Converter","tags":["Converters"],"description":"Convert bartending measurements — ounces, ml, cl, teaspoons, tablespoons, dashes, splashes, jiggers, ponies, shots and more — into every other unit at once.\n\n[Try Cocktail Measurement Converter in your browser →](https://iotools.cloud/tool/cocktail-measurement-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioValue":{"type":"number","description":"Amount","minimum":0},"ioFromUnit":{"enum":["ml","cl","liter","flOz","tsp","tbsp","cup","pint","barspoon","dash","splash","pony","jigger","shot","double"],"description":"Unit"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioTable":{"type":"string","description":"Converted to every unit"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/color-temp-converter":{"post":{"operationId":"run_color_temp_converter","summary":"Color Temperature Converter","tags":["Converters"],"description":"Convert a color temperature in Kelvin (e.g. 2700K candlelight, 6500K daylight) into its approximate RGB color, hex code and CSS values using the Tanner Helland algorithm.\n\n[Try Color Temperature Converter in your browser →](https://iotools.cloud/tool/color-temp-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioKelvin":{"type":"number","description":"Temperature (K)","minimum":1000,"maximum":40000}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioColorTable":{"type":"string","description":"Color Values"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/cooking-measurement-converter":{"post":{"operationId":"run_cooking_measurement_converter","summary":"Cooking Measurement Converter","tags":["Converters"],"description":"Convert cooking and baking measurements — cups, tablespoons, teaspoons, fluid ounces, milliliters, liters, grams, kilograms, ounces and pounds — into every other unit at once, with optional ingredient-specific volume-to-weight conversion.\n\n[Try Cooking Measurement Converter in your browser →](https://iotools.cloud/tool/cooking-measurement-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioValue":{"type":"number","description":"Amount","minimum":0},"ioFromUnit":{"enum":["cup","tbsp","tsp","floz","ml","l","g","kg","oz","lb"],"description":"Unit"},"ioIngredient":{"enum":["none","all_purpose_flour","bread_flour","cake_flour","whole_wheat_flour","almond_flour","coconut_flour","rye_flour","oat_flour","cornstarch","granulated_sugar","brown_sugar_packed","powdered_sugar","honey","maple_syrup","corn_syrup","molasses","agave_nectar","water","milk_whole","heavy_cream","buttermilk","vegetable_oil","olive_oil","coconut_oil","sour_cream","yogurt","butter","cream_cheese","ricotta","parmesan_grated","cheddar_shredded","white_rice","brown_rice","rolled_oats","quinoa","couscous","breadcrumbs_dry","panko","almonds_whole","walnuts_chopped","pecans_chopped","peanuts","peanut_butter","flax_seeds","chia_seeds","sesame_seeds","sunflower_seeds","coconut_shredded","cocoa_powder","baking_powder","baking_soda","salt_table","salt_kosher","ground_cinnamon","ground_ginger","black_pepper","vanilla_extract","chocolate_chips","raisins","dried_cranberries","jam","mayonnaise","ketchup","soy_sauce"],"description":"Ingredient (for volume ↔ weight)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioTable":{"type":"string","description":"Converted to every unit"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/coordinate-format-converter":{"post":{"operationId":"run_coordinate_format_converter","summary":"Coordinate Format Converter","tags":["Converters"],"description":"Convert geographic coordinates between Decimal Degrees (DD), Degrees Minutes Seconds (DMS) and Degrees Decimal Minutes (DDM) — paste a latitude and longitude in any of the three formats and get all three side by side.\n\n[Try Coordinate Format Converter in your browser →](https://iotools.cloud/tool/coordinate-format-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioLatitude":{"type":"string","description":"Latitude"},"ioLongitude":{"type":"string","description":"Longitude"},"ioDecimals":{"enum":["2","3","4","5","6","7","8"],"description":"Decimal Precision"}},"required":["ioLatitude","ioLongitude"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Converted Coordinates"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/crlf-lf-line-ending-converter":{"post":{"operationId":"run_crlf_lf_line_ending_converter","summary":"CRLF/LF Line Ending Converter","tags":["Converters"],"description":"Convert line endings between CRLF (Windows), LF (Unix/Linux/macOS) and CR (classic Mac) in pasted text or an uploaded file. Detects the input's current line-ending style, including mixed endings, before converting.\n\n[Try CRLF/LF Line Ending Converter in your browser →](https://iotools.cloud/tool/crlf-lf-line-ending-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioOriginalText":{"type":"string","description":"Original Text"},"ioConvertTo":{"enum":["lf","crlf","cr"],"description":"Convert To"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioConvertedText":{"type":"string","description":"Converted Text"},"ioStats":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/css-logical-properties-converter":{"post":{"operationId":"run_css_logical_properties_converter","summary":"CSS Logical Properties Converter","tags":["Converters"],"description":"Convert physical CSS properties (margin-left, width, top, text-align: left) to their logical-property equivalents (margin-inline-start, inline-size, inset-block-start, text-align: start), or the reverse.\n\n[Try CSS Logical Properties Converter in your browser →](https://iotools.cloud/tool/css-logical-properties-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputCss":{"type":"string","description":"CSS Input"},"ioDirection":{"enum":["physical-to-logical","logical-to-physical"],"description":"Direction"}},"required":["ioInputCss"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutputCss":{"type":"string","description":"Converted CSS"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/css-nesting-converter":{"post":{"operationId":"run_css_nesting_converter","summary":"CSS Nesting Converter","tags":["Converters"],"description":"Flatten native CSS nesting (& selectors and nested blocks) into plain flat CSS rules, for browsers or tools that don't support CSS Nesting yet.\n\n[Try CSS Nesting Converter in your browser →](https://iotools.cloud/tool/css-nesting-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputCss":{"type":"string","description":"Nested CSS"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutputCss":{"type":"string","description":"Flattened CSS"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/css-to-js-converter":{"post":{"operationId":"run_css_to_js_converter","summary":"CSS to JS Converter","tags":["Converters"],"description":"Convert CSS declarations into a JS style object (React inline style, React Native StyleSheet, styled-components, Emotion, or plain object) — and back from JS to CSS.\n\n[Try CSS to JS Converter in your browser →](https://iotools.cloud/tool/css-to-js-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioDirection":{"enum":["css-to-js","js-to-css"],"description":"Direction"},"ioCssInput":{"type":"string","description":"Input"},"ioOutputFormat":{"enum":["react","react-native","styled-components","emotion","plain"],"description":"Output Format"}},"required":["ioCssInput"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Output"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/css-to-js-style-converter":{"post":{"operationId":"run_css_to_js_style_converter","summary":"CSS to JS Style Converter","tags":["Converters"],"description":"Convert CSS declarations to a React inline style object, a React Native StyleSheet, or a styled-components/Emotion css template literal — and convert JS style objects back to plain CSS.\n\n[Try CSS to JS Style Converter in your browser →](https://iotools.cloud/tool/css-to-js-style-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioConversionDirection":{"enum":["css-to-js","js-to-css"],"description":"Conversion Direction"},"ioOutputFormat":{"enum":["react-inline","react-native","styled-components"],"description":"Output Format"},"ioCssInput":{"type":"string","description":"Input"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Output"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/css-to-tailwind-converter":{"post":{"operationId":"run_css_to_tailwind_converter","summary":"CSS to Tailwind Converter","tags":["Converters"],"description":"Convert plain CSS declarations (display: flex, padding: 16px, color: #ffffff) into their closest Tailwind CSS utility classes, falling back to arbitrary-value syntax when no exact token matches.\n\n[Try CSS to Tailwind Converter in your browser →](https://iotools.cloud/tool/css-to-tailwind-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCssInput":{"type":"string","description":"CSS Input"}},"required":["ioCssInput"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioTailwindClasses":{"type":"string","description":"Tailwind CSS Classes"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/csv-to-json-converter":{"post":{"operationId":"run_csv_to_json_converter","summary":"CSV to JSON Converter","tags":["Converters"],"description":"Convert CSV to JSON. Parses real CSV grammar — quoted fields with embedded commas, newlines and escaped double-quotes — with a comma, semicolon or tab delimiter, and outputs either an array of objects (first row as headers) or an array of arrays. Runs entirely in your browser.\n\n[Try CSV to JSON Converter in your browser →](https://iotools.cloud/tool/csv-to-json-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCsvSource":{"type":"string","description":"CSV input"},"ioDelimiter":{"enum":[",",";","tab"],"description":"Delimiter"},"ioFirstRowHeaders":{"type":"boolean","description":"First row contains headers"},"ioIndent":{"enum":["2","4","tab","minified"],"description":"Indent"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutputJson":{"type":"string","description":"JSON output"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/csv-to-xml-converter":{"post":{"operationId":"run_csv_to_xml_converter","summary":"CSV to XML Converter","tags":["Converters"],"description":"Convert CSV to XML. Parses real CSV grammar — quoted fields with embedded commas, newlines and escaped double-quotes — with a comma, semicolon, tab or pipe delimiter (or auto-detect), and builds properly-indented, XML-escaped XML with customizable root/row element names. Runs entirely in your browser.\n\n[Try CSV to XML Converter in your browser →](https://iotools.cloud/tool/csv-to-xml-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCsvSource":{"type":"string","description":"CSV input"},"ioDelimiter":{"enum":["auto",",",";","tab","|"],"description":"Delimiter"},"ioFirstRowHeaders":{"type":"boolean","description":"First row contains headers"},"ioRootElement":{"type":"string","description":"Root element name"},"ioRowElement":{"type":"string","description":"Row element name"},"ioIndent":{"enum":["2","4","tab","minified"],"description":"Indent"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutputXml":{"type":"string","description":"XML output"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/csv-to-sql":{"post":{"operationId":"run_csv_to_sql","summary":"CSV to SQL Converter","tags":["Converters"],"description":"Convert CSV data with a header row into a CREATE TABLE statement and INSERT statements — infers each column's type (INTEGER/REAL/TEXT), picks MySQL/PostgreSQL/SQLite identifier quoting, and escapes string values.\n\n[Try CSV to SQL Converter in your browser →](https://iotools.cloud/tool/csv-to-sql/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCsvInput":{"type":"string","description":"CSV data"},"ioTableName":{"type":"string","description":"Table name"},"ioDialect":{"enum":["mysql","postgresql","sqlite"],"description":"Dialect"},"ioBatchInserts":{"type":"boolean","description":"Batch INSERT (single statement with multiple VALUES rows)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSqlOutput":{"type":"string","description":"SQL output"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/curl-to-code-converter":{"post":{"operationId":"run_curl_to_code_converter","summary":"cURL to Code Converter","tags":["Converters"],"description":"Convert a curl command into equivalent request code — Python requests, JavaScript fetch/axios, Node.js, PHP (Guzzle or the cURL extension), Go net/http, or Ruby Net::HTTP.\n\n[Try cURL to Code Converter in your browser →](https://iotools.cloud/tool/curl-to-code-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCurlCommand":{"type":"string","description":"cURL Command"},"ioTargetLanguage":{"enum":["python-requests","javascript-fetch","javascript-axios","node-fetch","php-guzzle","php-curl","go-nethttp","ruby-nethttp"],"description":"Target Language"},"ioIncludeComments":{"type":"boolean","description":"Include explanatory comments"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioGeneratedCode":{"type":"string","description":"Generated Code"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/data-storage-converter":{"post":{"operationId":"run_data_storage_converter","summary":"Data Storage Converter","tags":["Converters"],"description":"Convert digital storage sizes between bits, bytes, and every SI (KB, MB, GB, TB, PB, EB) and IEC binary (KiB, MiB, GiB, TiB, PiB, EiB) unit. Enter one value and pick its unit, then either see the equivalent in every unit at once or pick a single target unit.\n\n[Try Data Storage Converter in your browser →](https://iotools.cloud/tool/data-storage-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioValue":{"type":"number","description":"Amount"},"ioFromUnit":{"enum":["bit","nibble","byte","kb","mb","gb","tb","pb","eb","kib","mib","gib","tib","pib","eib"],"description":"Convert from"},"ioToUnit":{"enum":["all","bit","nibble","byte","kb","mb","gb","tb","pb","eb","kib","mib","gib","tib","pib","eib"],"description":"Convert to"},"ioPrecision":{"enum":["0","2","4","6","8","10"],"description":"Decimal precision"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Result"},"ioTable":{"type":"string","description":"Converted to every unit"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/date-time-format-converter":{"post":{"operationId":"run_date_time_format_converter","summary":"Date-Time Format Converter","tags":["Converters"],"description":"Auto-detect a date-time string (ISO 8601/9075, RFC 3339/7231, Unix or millisecond timestamp, Mongo ObjectID, Excel serial, UTC string) and convert it into every other format at once. Timezone-less input is read and shown in UTC.\n\n[Try Date-Time Format Converter in your browser →](https://iotools.cloud/tool/date-time-format-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioDateTimeString":{"type":"string","description":"Date-time string"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Converted formats"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/decibel-converter":{"post":{"operationId":"run_decibel_converter","summary":"Decibel (dB) Converter","tags":["Converters"],"description":"Convert decibel levels to and from their linear quantities and ratios for Sound Pressure Level (dB SPL), Voltage (dBV / dBu) and Power (dBm / dBW). Enter a value in any unit and read the equivalents, with the formulas and common reference levels.\n\n[Try Decibel (dB) Converter in your browser →](https://iotools.cloud/tool/decibel-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioRefType":{"enum":["spl","voltage","power"],"description":"Reference"},"ioValue":{"type":"number","description":"Value"},"ioUnitSpl":{"enum":["dbspl","pa","pratio","iratio"],"description":"Unit"},"ioUnitVoltage":{"enum":["dbv","dbu","v","vratio","vpratio"],"description":"Unit"},"ioUnitPower":{"enum":["dbm","dbw","w","pratiop"],"description":"Unit"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string"},"ioFormula":{"type":"string","description":"Formulas"},"ioReference":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/docker-run-to-compose-converter":{"post":{"operationId":"run_docker_run_to_compose_converter","summary":"Docker Run to Compose Converter","tags":["Converters"],"description":"Turn a `docker run …` command into an equivalent docker-compose.yml service definition — ports, volumes, environment, networks, healthchecks, resource limits and more. Runs entirely in your browser.\n\n[Try Docker Run to Compose Converter in your browser →](https://iotools.cloud/tool/docker-run-to-compose-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioDockerRunInput":{"type":"string","description":"Docker Run Command"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioComposeOutput":{"type":"string","description":"docker-compose.yml"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/dotenv-to-json-converter":{"post":{"operationId":"run_dotenv_to_json_converter","summary":"Dotenv to JSON Converter","tags":["Converters"],"description":"Convert a .env file into a JSON object — and back from JSON to .env. Parses export prefixes, quoted values and inline comments; optional nested JSON (split keys by __), alphabetical key sorting and dropping empty values. Runs entirely in your browser.\n\n[Try Dotenv to JSON Converter in your browser →](https://iotools.cloud/tool/dotenv-to-json-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioConversionDirection":{"enum":["env-to-json","json-to-env"],"description":"Direction"},"ioInput":{"type":"string","description":"Input"},"ioNestedJson":{"type":"boolean","description":"Nested JSON (split keys by __)"},"ioSortKeys":{"type":"boolean","description":"Sort keys alphabetically"},"ioExcludeEmpty":{"type":"boolean","description":"Exclude empty values"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Output"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/electric-converter":{"post":{"operationId":"run_electric_converter","summary":"Electric Current Converter","tags":["Converters"],"description":"Convert electric current between amperes, milliamperes, microamperes, nanoamperes, picoamperes, kiloamperes, megaamperes, statamperes, and abamperes at once. Enter one value, pick its unit, and see the equivalent in all 9 units.\n\n[Try Electric Current Converter in your browser →](https://iotools.cloud/tool/electric-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioValue":{"type":"number","description":"Amount"},"ioFromUnit":{"enum":["ampere","milliampere","microampere","nanoampere","picoampere","kiloampere","megaampere","statampere","abampere"],"description":"Unit"},"ioPrecision":{"enum":["0","2","4","6","8","10"],"description":"Decimal precision"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioTable":{"type":"string","description":"Converted to every unit"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/energy-converter":{"post":{"operationId":"run_energy_converter","summary":"Energy Converter","tags":["Converters"],"description":"Convert energy between joules, kilowatt-hours, calories, BTU, electronvolts, and 19 other units. Enter one value and pick its unit, then either see the equivalent in every unit at once or pick a single target unit.\n\n[Try Energy Converter in your browser →](https://iotools.cloud/tool/energy-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioValue":{"type":"number","description":"Amount"},"ioFromUnit":{"enum":["joule","kilojoule","megajoule","gigajoule","calorie","kilocalorie","watt_hour","kilowatt_hour","megawatt_hour","gigawatt_hour","british_thermal_unit","therm","foot_pound","electronvolt","kiloelectronvolt","megaelectronvolt","gigaelectronvolt","erg","tonne_of_oil_equivalent","tonne_of_coal_equivalent","barrel_of_oil_equivalent","quad","thermie","horsepower_hour"],"description":"Convert from"},"ioToUnit":{"enum":["all","joule","kilojoule","megajoule","gigajoule","calorie","kilocalorie","watt_hour","kilowatt_hour","megawatt_hour","gigawatt_hour","british_thermal_unit","therm","foot_pound","electronvolt","kiloelectronvolt","megaelectronvolt","gigaelectronvolt","erg","tonne_of_oil_equivalent","tonne_of_coal_equivalent","barrel_of_oil_equivalent","quad","thermie","horsepower_hour"],"description":"Convert to"},"ioPrecision":{"enum":["0","2","4","6","8","10"],"description":"Decimal precision"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Result"},"ioTable":{"type":"string","description":"Converted to every unit"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/force-unit-converter":{"post":{"operationId":"run_force_unit_converter","summary":"Force Unit Converter","tags":["Converters"],"description":"Convert force between newtons, kilonewtons, dynes, kilogram-force (kgf), pound-force (lbf), ounce-force, poundals, and ton-force units at once. Enter one value, pick its unit, and see the equivalent in all 12 units.\n\n[Try Force Unit Converter in your browser →](https://iotools.cloud/tool/force-unit-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioValue":{"type":"number","description":"Amount"},"ioFromUnit":{"enum":["newton","kilonewton","meganewton","dyne","kgf","gf","metricTonf","lbf","ozf","poundal","shortTonf","longTonf"],"description":"Unit"},"ioPrecision":{"enum":["0","2","4","6","8","10"],"description":"Decimal precision"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioTable":{"type":"string","description":"Converted to every unit"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/fraction-decimal":{"post":{"operationId":"run_fraction_decimal","summary":"Fraction to Decimal Converter","tags":["Converters"],"description":"Convert fractions to decimals (with repeating-cycle detection and step-by-step long division), convert decimals back to fractions (including 0.(3) and 0.333... repeating notation), and add, subtract, multiply, or divide two fractions.\n\n[Try Fraction to Decimal Converter in your browser →](https://iotools.cloud/tool/fraction-decimal/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMode":{"enum":["fraction-to-decimal","decimal-to-fraction","operations"],"description":"Mode"},"ioWholeNumber":{"type":"number","description":"Whole number (optional)"},"ioNumerator":{"type":"number","description":"Numerator"},"ioDenominator":{"type":"number","description":"Denominator"},"ioDecimalInput":{"type":"string","description":"Decimal"},"ioMaxDenominator":{"enum":["0","100","1000","10000"],"description":"Max denominator"},"ioOpNumeratorA":{"type":"number","description":"Fraction A — numerator"},"ioOpDenominatorA":{"type":"number","description":"Fraction A — denominator"},"ioOperation":{"enum":["add","subtract","multiply","divide"],"description":"Operation"},"ioOpNumeratorB":{"type":"number","description":"Fraction B — numerator"},"ioOpDenominatorB":{"type":"number","description":"Fraction B — denominator"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string","description":"Result"},"ioLongDivision":{"type":"string","description":"Step-by-step long division"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/frequency-converter":{"post":{"operationId":"run_frequency_converter","summary":"Frequency Converter","tags":["Converters"],"description":"Convert frequency between hertz, kilohertz, megahertz, gigahertz, terahertz, RPM, BPM, radians per second, and degrees per second at once. Enter one value, pick its unit, and see the equivalent in all 9 units.\n\n[Try Frequency Converter in your browser →](https://iotools.cloud/tool/frequency-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioValue":{"type":"number","description":"Amount"},"ioFromUnit":{"enum":["hertz","kilohertz","megahertz","gigahertz","terahertz","rpm","bpm","radiansPerSecond","degreesPerSecond"],"description":"Unit"},"ioPrecision":{"enum":["0","2","4","6","8","10"],"description":"Decimal precision"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioTable":{"type":"string","description":"Converted to every unit"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/geohash-converter":{"post":{"operationId":"run_geohash_converter","summary":"Geohash Converter","tags":["Converters"],"description":"Encode latitude and longitude into a geohash, or decode a geohash back to coordinates. Reports the cell's bounding box, real-world size and all eight neighbouring geohashes.\n\n[Try Geohash Converter in your browser →](https://iotools.cloud/tool/geohash-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMode":{"enum":["encode","decode"],"description":"Mode"},"ioLatitude":{"type":"string","description":"Latitude"},"ioLongitude":{"type":"string","description":"Longitude"},"ioPrecision":{"type":"number","description":"Precision (characters)","minimum":1,"maximum":12},"ioGeohash":{"type":"string","description":"Geohash"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResultGeohash":{"type":"string","description":"Geohash"},"ioResultCoordinates":{"type":"string","description":"Cell centre (latitude, longitude)"},"ioCellDetails":{"type":"string","description":"Cell details"},"ioNeighbours":{"type":"string","description":"Neighbouring cells"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/geojson-wkt-converter":{"post":{"operationId":"run_geojson_wkt_converter","summary":"GeoJSON to WKT Converter","tags":["Converters"],"description":"Convert geometry between GeoJSON and WKT (Well-Known Text) in either direction — Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon and GeometryCollection. Auto-detects the input format, with options for coordinate precision, pretty-printed JSON and uppercase WKT keywords. Runs entirely in your browser.\n\n[Try GeoJSON to WKT Converter in your browser →](https://iotools.cloud/tool/geojson-wkt-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioDirection":{"enum":["auto","geojson-to-wkt","wkt-to-geojson"],"description":"Direction"},"ioInput":{"type":"string","description":"Input geometry (GeoJSON or WKT)"},"ioCoordPrecision":{"enum":["full","4","5","6","7","8"],"description":"Coordinate precision"},"ioPrettyPrint":{"type":"boolean","description":"Pretty-print GeoJSON output (2-space indent)"},"ioUppercase":{"type":"boolean","description":"Uppercase WKT keywords (POINT, POLYGON, …)"}},"required":["ioInput"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Converted geometry"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/har-to-curl-extractor":{"post":{"operationId":"run_har_to_curl_extractor","summary":"HAR to cURL Extractor","tags":["Converters"],"description":"Convert HAR (HTTP Archive) requests into runnable cURL commands — with header, cookie, auth-masking, and body options, plus method/status/type filters.\n\n[Try HAR to cURL Extractor in your browser →](https://iotools.cloud/tool/har-to-curl-extractor/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioHarInput":{"type":"string","description":"HAR Content"},"ioIncludeHeaders":{"type":"boolean","description":"Include request headers (-H)"},"ioIncludeCookies":{"type":"boolean","description":"Include Cookie header"},"ioIncludeBody":{"type":"boolean","description":"Include request body (--data)"},"ioStripPseudo":{"type":"boolean","description":"Skip HTTP/2 pseudo-headers (:method, :path, etc.)"},"ioMaskAuth":{"type":"boolean","description":"Mask Authorization / token header values"},"ioMultiline":{"type":"boolean","description":"Multi-line output (backslash line continuations)"},"ioFilterSearch":{"type":"string","description":"Search"},"ioFilterMethod":{"enum":["any","GET","POST","PUT","PATCH","DELETE","HEAD","OPTIONS"],"description":"Method"},"ioFilterStatus":{"enum":["any","2xx","3xx","4xx","5xx"],"description":"Status"},"ioFilterType":{"enum":["any","xhr","document","no-static"],"description":"Type"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Summary"},"ioCurlOutput":{"type":"string","description":"cURL Commands"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/har-to-postman-collection-converter":{"post":{"operationId":"run_har_to_postman_collection_converter","summary":"HAR to Postman Collection Converter","tags":["Converters"],"description":"Convert a HAR (HTTP Archive) file into a Postman Collection v2.1 — grouped by host or path, with cookie/auth cleanup and a promoted {{baseUrl}} variable.\n\n[Try HAR to Postman Collection Converter in your browser →](https://iotools.cloud/tool/har-to-postman-collection-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioHarInput":{"type":"string","description":"HAR Content"},"ioCollectionName":{"type":"string","description":"Collection name"},"ioGrouping":{"enum":["host","path","none"],"description":"Group by"},"ioFilterSearch":{"type":"string","description":"Search"},"ioFilterMethod":{"enum":["any","GET","POST","PUT","PATCH","DELETE","HEAD","OPTIONS"],"description":"Method"},"ioFilterStatus":{"enum":["any","2xx","3xx","4xx","5xx"],"description":"Status"},"ioFilterType":{"enum":["any","xhr","document","no-static"],"description":"Type"},"ioStripCookies":{"type":"boolean","description":"Strip Cookie request headers"},"ioStripAuth":{"type":"boolean","description":"Replace Authorization values with {{token}} variable"},"ioStripPseudo":{"type":"boolean","description":"Skip HTTP/2 pseudo-headers (:method, :path, etc.)"},"ioPromoteVars":{"type":"boolean","description":"Promote scheme + host to a {{baseUrl}} collection variable"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Summary"},"ioPostmanOutput":{"type":"string","description":"Postman Collection (v2.1)"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/hardness-scale-converter":{"post":{"operationId":"run_hardness_scale_converter","summary":"Hardness Scale Converter","tags":["Converters"],"description":"Convert a material hardness value between the Mohs, Vickers (HV), Brinell (HB) and Rockwell A/B/C (HRA/HRB/HRC) scales. Enter a value on any one scale and read its approximate equivalent on all the others, using standardized ASTM E140-style correlation data for steels.\n\n[Try Hardness Scale Converter in your browser →](https://iotools.cloud/tool/hardness-scale-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSourceScale":{"enum":["HV","HB","HRC","HRB","HRA","Mohs"],"description":"Source Scale"},"ioHardnessValue":{"type":"number","description":"Hardness Value","minimum":0}},"required":["ioHardnessValue"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string","description":"Converted Values"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/hex-color-to-name":{"post":{"operationId":"run_hex_color_to_name","summary":"HEX Color to Name","tags":["Converters"],"description":"Find the name of a HEX color: enter a HEX code (#RRGGBB, #RGB, with or without #) to get the closest CSS named color by Euclidean RGB distance, whether it's an exact match, and a ranked list of nearby named colors.\n\n[Try HEX Color to Name in your browser →](https://iotools.cloud/tool/hex-color-to-name/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioHexColor":{"type":"string","description":"HEX Color"},"ioMatchCount":{"type":"number","description":"Number of matches to show","minimum":1,"maximum":10}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioClosestColor":{"type":"string","description":"Closest Color Name"},"ioMatchType":{"type":"string","description":"Match"},"ioMatchTable":{"type":"string","description":"Closest CSS Named Colors"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/hex-to-rgba-converter":{"post":{"operationId":"run_hex_to_rgba_converter","summary":"HEX to RGBA Converter","tags":["Converters"],"description":"Convert a HEX color (#RGB, #RGBA, #RRGGBB or #RRGGBBAA) to CSS rgba()/rgb() notation, with a full breakdown of red, green, blue, alpha and HSLA — plus an optional alpha override.\n\n[Try HEX to RGBA Converter in your browser →](https://iotools.cloud/tool/hex-to-rgba-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioHex":{"type":"string","description":"HEX Color"},"ioAlphaOverride":{"type":"number","description":"Alpha Override","minimum":0,"maximum":1}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioRgba":{"type":"string","description":"RGBA"},"ioColorTable":{"type":"string","description":"Color Values"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/hex-to-text":{"post":{"operationId":"run_hex_to_text","summary":"Hex to Text Converter","tags":["Converters"],"description":"Convert a hexadecimal string to readable text, or encode text into hex bytes. Handles space, comma, dash, 0x and \\x formats plus multi-byte UTF-8, with selectable output delimiter and case.\n\n[Try Hex to Text Converter in your browser →](https://iotools.cloud/tool/hex-to-text/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Input"},"ioMode":{"enum":["hexToText","textToHex"],"description":"Mode"},"ioDelimiter":{"enum":["space","none","comma","dash","0x","\\x"],"description":"Output delimiter"},"ioCase":{"enum":["uppercase","lowercase"],"description":"Hex case"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/hsv-to-rgb-converter":{"post":{"operationId":"run_hsv_to_rgb_converter","summary":"HSV to RGB Converter","tags":["Converters"],"description":"Convert an HSV/HSB color (Hue 0-360°, Saturation and Value/Brightness 0-100%) to RGB and a hex code, with a per-channel breakdown and a live color swatch.\n\n[Try HSV to RGB Converter in your browser →](https://iotools.cloud/tool/hsv-to-rgb-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioHue":{"type":"number","description":"Hue (H)","minimum":0,"maximum":360},"ioSaturation":{"type":"number","description":"Saturation (S)","minimum":0,"maximum":100},"ioValue":{"type":"number","description":"Value / Brightness (V)","minimum":0,"maximum":100}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioRgb":{"type":"string","description":"RGB"},"ioHex":{"type":"string","description":"HEX"},"ioColorTable":{"type":"string","description":"Color Values"},"ioSwatchHtml":{"type":"string","description":"Swatch HTML"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/html-decode":{"post":{"operationId":"run_html_decode","summary":"HTML Decode","tags":["Converters"],"description":"Decode HTML-encoded text back into literal characters. Handles named entities (&amp; &lt; &gt; &quot; &copy; &mdash; and ~190 more), decimal numeric references (&#169;), and hex numeric references (&#x27;, case-insensitive) — entirely in your browser.\n\n[Try HTML Decode in your browser →](https://iotools.cloud/tool/html-decode/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioEncodedHtml":{"type":"string","description":"HTML-Encoded Text"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioDecodedHtml":{"type":"string","description":"Decoded HTML"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/html-encoder-decoder":{"post":{"operationId":"run_html_encoder_decoder","summary":"HTML Encoder / Decoder","tags":["Converters"],"description":"Encode text into HTML entities or decode entities back into plain characters. Choose named (&lt;), decimal (&#60;) or hex (&#x3C;) output, and how much to escape — the parser-significant characters, control characters, or everything non-ASCII. Runs entirely in your browser.\n\n[Try HTML Encoder / Decoder in your browser →](https://iotools.cloud/tool/html-encoder-decoder/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioText":{"type":"string","description":"Text or HTML"},"ioMode":{"enum":["encode","decode","auto"],"description":"Direction"},"ioScope":{"enum":["minimal","extended","non-ascii"],"description":"Encode which characters"},"ioFormat":{"enum":["named","decimal","hex"],"description":"Entity format"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/html-stripper":{"post":{"operationId":"run_html_stripper","summary":"HTML Stripper","tags":["Converters"],"description":"Strip all HTML tags from a snippet or file, leaving just the visible text. Removes &lt;script>/&lt;style> content and comments entirely, decodes HTML entities, and turns block-level elements into line breaks.\n\n[Try HTML Stripper in your browser →](https://iotools.cloud/tool/html-stripper/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputHtml":{"type":"string","description":"HTML Input"},"ioPreserveLineBreaks":{"type":"boolean","description":"Preserve Line Breaks"},"ioPreserveSpaces":{"type":"boolean","description":"Preserve Spaces"},"ioPreserveLinks":{"type":"boolean","description":"Preserve Links (URLs)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Plain Text Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/html-table-extractor":{"post":{"operationId":"run_html_table_extractor","summary":"HTML Table Extractor","tags":["Converters"],"description":"Extract &lt;table> data from pasted HTML into CSV, TSV, JSON or Markdown, expanding merged colspan/rowspan cells.\n\n[Try HTML Table Extractor in your browser →](https://iotools.cloud/tool/html-table-extractor/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioHtml":{"type":"string","description":"HTML"},"ioFormat":{"enum":["csv","tsv","json","markdown"],"description":"Output format"},"ioTable":{"type":"string","description":"Table to extract"},"ioHeaders":{"type":"boolean","description":"First row contains headers"},"ioExpandMerged":{"type":"boolean","description":"Expand merged cells (colspan / rowspan)"}},"required":["ioHtml"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Extracted data"},"ioSummary":{"type":"string","description":"Summary"},"ioTables":{"type":"string","description":"Tables found"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/html-to-markdown":{"post":{"operationId":"run_html_to_markdown","summary":"HTML to Markdown Converter","tags":["Converters"],"description":"Convert an HTML snippet into clean Markdown. Handles headings, bold/italic, links, images, ordered and unordered lists, blockquotes, inline code and code blocks, tables, horizontal rules and line breaks. Runs entirely in your browser.\n\n[Try HTML to Markdown Converter in your browser →](https://iotools.cloud/tool/html-to-markdown/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioHtmlSource":{"type":"string","description":"HTML Input"},"ioHeadingStyle":{"enum":["atx","setext"],"description":"Heading style"},"ioCodeBlockStyle":{"enum":["fenced","indented"],"description":"Code block style"},"ioBulletMarker":{"enum":["-","*","+"],"description":"Bullet list marker"},"ioPreserveBreaks":{"type":"boolean","description":"Preserve line breaks (&lt;br> becomes trailing spaces)"}},"required":["ioHtmlSource"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioMarkdown":{"type":"string","description":"Markdown Output"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/icalendar-ics-to-json-converter":{"post":{"operationId":"run_icalendar_ics_to_json_converter","summary":"iCalendar (ICS) to JSON Converter","tags":["Converters"],"description":"Parse .ics calendar files into structured JSON — typed dates, RRULE recurrence rules, organizer/attendee addresses, and an optional recurrence-preview expansion.\n\n[Try iCalendar (ICS) to JSON Converter in your browser →](https://iotools.cloud/tool/icalendar-ics-to-json-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioIcsSource":{"type":"string","description":"ICS Source"},"ioPrettyPrint":{"type":"boolean","description":"Pretty-print JSON output"},"ioFlatEvents":{"type":"boolean","description":"Output flat events array (skip VCALENDAR wrapper)"},"ioParseDates":{"type":"boolean","description":"Parse DTSTART/DTEND/DTSTAMP into ISO 8601"},"ioIncludeRaw":{"type":"boolean","description":"Include raw property values alongside parsed values"},"ioExpandRecurrence":{"type":"boolean","description":"Expand RRULE into preview occurrences"},"ioRecurrenceLimit":{"type":"number","description":"Max occurrences to preview","minimum":1,"maximum":500}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioJsonOutput":{"type":"string","description":"JSON Output"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ieee-754-floating-point-converter":{"post":{"operationId":"run_ieee_754_floating_point_converter","summary":"IEEE 754 Floating Point Converter","tags":["Converters"],"description":"Convert a decimal number to its exact IEEE 754 binary representation (32-bit single or 64-bit double precision). Shows the sign / exponent / mantissa bit layout, the hexadecimal value, and a full breakdown including special-value detection (NaN, infinity, zero, subnormal).\n\n[Try IEEE 754 Floating Point Converter in your browser →](https://iotools.cloud/tool/ieee-754-floating-point-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioDecimal":{"type":"string","description":"Decimal number"},"ioPrecision":{"enum":["32","64"],"description":"Precision"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioBinary":{"type":"string","description":"Binary (sign · exponent · mantissa)"},"ioHex":{"type":"string","description":"Hexadecimal"},"ioDetails":{"type":"string","description":"Bit breakdown"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/image-compressor":{"post":{"operationId":"run_image_compressor","summary":"Image Compressor","tags":["Converters"],"description":"Compress and resize a JPG or PNG — set quality, max width/height, output format and a JPEG background. Free and private in your browser; also available as a paid API.\n\n[Try Image Compressor in your browser →](https://iotools.cloud/tool/image-compressor/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioFile":{"type":"string","contentEncoding":"base64","description":"Image"},"ioQuality":{"type":"number","description":"Quality","minimum":1,"maximum":100},"ioMaxWidth":{"type":"number","description":"Max width (px)","minimum":1,"maximum":10000},"ioMaxHeight":{"type":"number","description":"Max height (px)","minimum":1,"maximum":10000},"ioOutputFormat":{"enum":["auto","jpeg","png"],"description":"Output format"},"ioBackground":{"type":"string","description":"Background for JPEG"}},"required":["ioFile"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/image-converter":{"post":{"operationId":"run_image_converter","summary":"Image Converter","tags":["Converters"],"description":"Convert an image between JPG, PNG, WebP, AVIF, GIF, TIFF, BMP, HEIC, SVG and PDF (rasterized) — pick any format pair.\n\n[Try Image Converter in your browser →](https://iotools.cloud/tool/image-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioFile":{"type":"string","contentEncoding":"base64","description":"Image"},"ioTargetFormat":{"enum":["png","jpg","webp","avif","gif","tiff"],"description":"Convert to"}},"required":["ioFile"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/image-converter/to-avif":{"post":{"operationId":"run_image_converter_to_avif","summary":"Any Image to AVIF Converter","tags":["Converters"],"description":"Convert JPG, PNG, WebP, GIF, BMP, TIFF, HEIC, SVG or PDF to AVIF online. Server-side conversion.\n\n[Try Any Image to AVIF Converter in your browser →](https://iotools.cloud/tool/image-converter/to-avif/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioFile":{"type":"string","contentEncoding":"base64","description":"Image"}},"required":["ioFile"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/image-converter/to-gif":{"post":{"operationId":"run_image_converter_to_gif","summary":"Any Image to GIF Converter","tags":["Converters"],"description":"Convert JPG, PNG, WebP, AVIF, BMP, TIFF, HEIC, SVG or PDF to GIF online. Server-side conversion.\n\n[Try Any Image to GIF Converter in your browser →](https://iotools.cloud/tool/image-converter/to-gif/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioFile":{"type":"string","contentEncoding":"base64","description":"Image"}},"required":["ioFile"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/image-converter/to-jpg":{"post":{"operationId":"run_image_converter_to_jpg","summary":"Any Image to JPG Converter","tags":["Converters"],"description":"Convert PNG, WebP, AVIF, GIF, BMP, TIFF, HEIC, SVG or PDF to JPG online. Server-side conversion.\n\n[Try Any Image to JPG Converter in your browser →](https://iotools.cloud/tool/image-converter/to-jpg/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioFile":{"type":"string","contentEncoding":"base64","description":"Image"}},"required":["ioFile"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/image-converter/to-png":{"post":{"operationId":"run_image_converter_to_png","summary":"Any Image to PNG Converter","tags":["Converters"],"description":"Convert JPG, WebP, AVIF, GIF, BMP, TIFF, HEIC, SVG or PDF to PNG online. Server-side conversion.\n\n[Try Any Image to PNG Converter in your browser →](https://iotools.cloud/tool/image-converter/to-png/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioFile":{"type":"string","contentEncoding":"base64","description":"Image"}},"required":["ioFile"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/image-converter/to-tiff":{"post":{"operationId":"run_image_converter_to_tiff","summary":"Any Image to TIFF Converter","tags":["Converters"],"description":"Convert JPG, PNG, WebP, AVIF, GIF, BMP, HEIC, SVG or PDF to TIFF online. Server-side conversion.\n\n[Try Any Image to TIFF Converter in your browser →](https://iotools.cloud/tool/image-converter/to-tiff/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioFile":{"type":"string","contentEncoding":"base64","description":"Image"}},"required":["ioFile"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/image-converter/to-webp":{"post":{"operationId":"run_image_converter_to_webp","summary":"Any Image to WebP Converter","tags":["Converters"],"description":"Convert JPG, PNG, AVIF, GIF, BMP, TIFF, HEIC, SVG or PDF to WebP online. Server-side conversion.\n\n[Try Any Image to WebP Converter in your browser →](https://iotools.cloud/tool/image-converter/to-webp/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioFile":{"type":"string","contentEncoding":"base64","description":"Image"}},"required":["ioFile"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/image-converter/avif-to-jpg":{"post":{"operationId":"run_image_converter_avif_to_jpg","summary":"AVIF to JPG Converter","tags":["Converters"],"description":"Convert an AVIF image to JPG online. Server-side conversion.\n\n[Try AVIF to JPG Converter in your browser →](https://iotools.cloud/tool/image-converter/avif-to-jpg/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioFile":{"type":"string","contentEncoding":"base64","description":"Image"}},"required":["ioFile"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/image-converter/avif-to-png":{"post":{"operationId":"run_image_converter_avif_to_png","summary":"AVIF to PNG Converter","tags":["Converters"],"description":"Convert an AVIF image to PNG online. Server-side conversion.\n\n[Try AVIF to PNG Converter in your browser →](https://iotools.cloud/tool/image-converter/avif-to-png/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioFile":{"type":"string","contentEncoding":"base64","description":"Image"}},"required":["ioFile"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/image-converter/bmp-to-jpg":{"post":{"operationId":"run_image_converter_bmp_to_jpg","summary":"BMP to JPG Converter","tags":["Converters"],"description":"Convert a BMP image to JPG online. Server-side conversion with much smaller file size.\n\n[Try BMP to JPG Converter in your browser →](https://iotools.cloud/tool/image-converter/bmp-to-jpg/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioFile":{"type":"string","contentEncoding":"base64","description":"Image"}},"required":["ioFile"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/image-converter/bmp-to-png":{"post":{"operationId":"run_image_converter_bmp_to_png","summary":"BMP to PNG Converter","tags":["Converters"],"description":"Convert a BMP image to PNG online. Server-side conversion with proper compression.\n\n[Try BMP to PNG Converter in your browser →](https://iotools.cloud/tool/image-converter/bmp-to-png/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioFile":{"type":"string","contentEncoding":"base64","description":"Image"}},"required":["ioFile"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/image-converter/gif-to-jpg":{"post":{"operationId":"run_image_converter_gif_to_jpg","summary":"GIF to JPG Converter","tags":["Converters"],"description":"Convert a GIF image to JPG online. Server-side conversion (first frame for animated GIFs).\n\n[Try GIF to JPG Converter in your browser →](https://iotools.cloud/tool/image-converter/gif-to-jpg/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioFile":{"type":"string","contentEncoding":"base64","description":"Image"}},"required":["ioFile"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/image-converter/gif-to-png":{"post":{"operationId":"run_image_converter_gif_to_png","summary":"GIF to PNG Converter","tags":["Converters"],"description":"Convert a GIF image to PNG online. Server-side conversion (first frame for animated GIFs).\n\n[Try GIF to PNG Converter in your browser →](https://iotools.cloud/tool/image-converter/gif-to-png/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioFile":{"type":"string","contentEncoding":"base64","description":"Image"}},"required":["ioFile"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/image-converter/heic-to-jpg":{"post":{"operationId":"run_image_converter_heic_to_jpg","summary":"HEIC to JPG Converter","tags":["Converters"],"description":"Convert an iPhone HEIC photo to JPG online. Server-side conversion — works on any device, no HEIC support required.\n\n[Try HEIC to JPG Converter in your browser →](https://iotools.cloud/tool/image-converter/heic-to-jpg/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioFile":{"type":"string","contentEncoding":"base64","description":"Image"}},"required":["ioFile"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/image-converter/heic-to-png":{"post":{"operationId":"run_image_converter_heic_to_png","summary":"HEIC to PNG Converter","tags":["Converters"],"description":"Convert an iPhone HEIC photo to PNG online. Server-side conversion — works on any device, no HEIC support required.\n\n[Try HEIC to PNG Converter in your browser →](https://iotools.cloud/tool/image-converter/heic-to-png/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioFile":{"type":"string","contentEncoding":"base64","description":"Image"}},"required":["ioFile"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/image-converter/jpg-to-png":{"post":{"operationId":"run_image_converter_jpg_to_png","summary":"JPG to PNG Converter","tags":["Converters"],"description":"Convert a JPG image to PNG online. Server-side conversion, no quality loss beyond the source JPG.\n\n[Try JPG to PNG Converter in your browser →](https://iotools.cloud/tool/image-converter/jpg-to-png/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioFile":{"type":"string","contentEncoding":"base64","description":"Image"}},"required":["ioFile"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/image-converter/png-to-jpg":{"post":{"operationId":"run_image_converter_png_to_jpg","summary":"PNG to JPG Converter","tags":["Converters"],"description":"Convert a PNG image to JPG online. Server-side conversion, transparent areas are flattened to white.\n\n[Try PNG to JPG Converter in your browser →](https://iotools.cloud/tool/image-converter/png-to-jpg/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioFile":{"type":"string","contentEncoding":"base64","description":"Image"}},"required":["ioFile"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/image-converter/svg-to-jpg":{"post":{"operationId":"run_image_converter_svg_to_jpg","summary":"SVG to JPG Converter","tags":["Converters"],"description":"Rasterize an SVG vector image to JPG online. Server-side conversion via a dedicated SVG renderer.\n\n[Try SVG to JPG Converter in your browser →](https://iotools.cloud/tool/image-converter/svg-to-jpg/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioFile":{"type":"string","contentEncoding":"base64","description":"Image"}},"required":["ioFile"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/image-converter/svg-to-png":{"post":{"operationId":"run_image_converter_svg_to_png","summary":"SVG to PNG Converter","tags":["Converters"],"description":"Rasterize an SVG vector image to PNG online. Server-side conversion via a dedicated SVG renderer.\n\n[Try SVG to PNG Converter in your browser →](https://iotools.cloud/tool/image-converter/svg-to-png/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioFile":{"type":"string","contentEncoding":"base64","description":"Image"}},"required":["ioFile"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/image-converter/tiff-to-jpg":{"post":{"operationId":"run_image_converter_tiff_to_jpg","summary":"TIFF to JPG Converter","tags":["Converters"],"description":"Convert a TIFF image to JPG online. Server-side conversion.\n\n[Try TIFF to JPG Converter in your browser →](https://iotools.cloud/tool/image-converter/tiff-to-jpg/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioFile":{"type":"string","contentEncoding":"base64","description":"Image"}},"required":["ioFile"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/image-converter/tiff-to-png":{"post":{"operationId":"run_image_converter_tiff_to_png","summary":"TIFF to PNG Converter","tags":["Converters"],"description":"Convert a TIFF image to PNG online. Server-side conversion.\n\n[Try TIFF to PNG Converter in your browser →](https://iotools.cloud/tool/image-converter/tiff-to-png/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioFile":{"type":"string","contentEncoding":"base64","description":"Image"}},"required":["ioFile"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/image-converter/webp-to-jpg":{"post":{"operationId":"run_image_converter_webp_to_jpg","summary":"WebP to JPG Converter","tags":["Converters"],"description":"Convert a WebP image to JPG online. Server-side conversion.\n\n[Try WebP to JPG Converter in your browser →](https://iotools.cloud/tool/image-converter/webp-to-jpg/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioFile":{"type":"string","contentEncoding":"base64","description":"Image"}},"required":["ioFile"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/image-converter/webp-to-png":{"post":{"operationId":"run_image_converter_webp_to_png","summary":"WebP to PNG Converter","tags":["Converters"],"description":"Convert a WebP image to PNG online. Server-side conversion, works with animated and static WebP.\n\n[Try WebP to PNG Converter in your browser →](https://iotools.cloud/tool/image-converter/webp-to-png/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioFile":{"type":"string","contentEncoding":"base64","description":"Image"}},"required":["ioFile"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/image-to-pdf":{"post":{"operationId":"run_image_to_pdf","summary":"Image to PDF","tags":["Converters"],"description":"Combine PNG and JPEG images into a single PDF, in the order you choose — drag to reorder, pick a page size, and download. Runs entirely in your browser; your images are never uploaded.\n\n[Try Image to PDF in your browser →](https://iotools.cloud/tool/image-to-pdf/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioImages":{"type":"array","items":{"type":"string","contentEncoding":"base64"},"description":"Images"},"ioPageSize":{"enum":["fit","a4","letter"],"description":"Page size"},"ioOrientation":{"enum":["auto","portrait","landscape"],"description":"Orientation"},"ioMargin":{"type":"number","description":"Margin (pt)","minimum":0,"maximum":120}},"required":["ioImages"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioPdf":{"type":"string","contentEncoding":"base64","description":"PDF"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ini-to-json":{"post":{"operationId":"run_ini_to_json","summary":"INI to JSON Converter","tags":["Converters"],"description":"Convert INI configuration text into a JSON object. Parses [section] headers (including dotted, nested sections), key = value pairs, quoted values and comments. Optional type coercion turns true/false and numeric strings into real JSON booleans and numbers. Runs entirely in your browser.\n\n[Try INI to JSON Converter in your browser →](https://iotools.cloud/tool/ini-to-json/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioIniSource":{"type":"string","description":"INI Input"},"ioTypeCoercion":{"type":"boolean","description":"Type coercion (convert booleans, numbers, null)"},"ioStripComments":{"type":"boolean","description":"Strip inline comments (after ; or #)"},"ioDuplicateKeys":{"enum":["last","array"],"description":"Duplicate keys"},"ioIndent":{"enum":["2","4","tab","minified"],"description":"Indent"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutputJson":{"type":"string","description":"JSON Output"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ini-to-yaml-converter":{"post":{"operationId":"run_ini_to_yaml_converter","summary":"INI to YAML Converter","tags":["Converters"],"description":"Convert INI configuration text into YAML. Parses [section] headers (including dotted, nested sections), key = value pairs, quoted values and comments, and emits clean block-style YAML. Optional type coercion turns true/false and numeric strings into real YAML booleans and numbers. Runs entirely in your browser.\n\n[Try INI to YAML Converter in your browser →](https://iotools.cloud/tool/ini-to-yaml-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioIniSource":{"type":"string","description":"INI Input"},"ioTypeCoercion":{"type":"boolean","description":"Type coercion (convert booleans, numbers, null)"},"ioStripComments":{"type":"boolean","description":"Strip inline comments (after ; or #)"},"ioDuplicateKeys":{"enum":["last","array"],"description":"Duplicate keys"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutputYaml":{"type":"string","description":"YAML Output"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/integer-base-converter":{"post":{"operationId":"run_integer_base_converter","summary":"Integer Base Converter","tags":["Converters"],"description":"Convert an integer between any number bases from 2 to 36 — binary, octal, decimal, hexadecimal or any custom base. Handles negative numbers and arbitrarily large integers, and shows the value in all four common bases at once.\n\n[Try Integer Base Converter in your browser →](https://iotools.cloud/tool/integer-base-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputNumber":{"type":"string","description":"Number"},"ioFromBase":{"type":"number","description":"From base","minimum":2,"maximum":36},"ioToBase":{"type":"number","description":"To base","minimum":2,"maximum":36}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Converted value"},"ioTable":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ipv4-converter":{"post":{"operationId":"run_ipv4_converter","summary":"IPv4 Address Converter","tags":["Converters"],"description":"Convert an IPv4 address between dotted-decimal, integer, hexadecimal, octal and binary. Enter any one format — 192.168.1.1, 3232235777, 0xC0A80101 or a 32-bit binary string — and see every other representation at once.\n\n[Try IPv4 Address Converter in your browser →](https://iotools.cloud/tool/ipv4-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioAddress":{"type":"string","description":"IPv4 Address"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Representations"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ipv4-range-expander":{"post":{"operationId":"run_ipv4_range_expander","summary":"IPv4 Range Expander","tags":["Converters"],"description":"Expand an IPv4 range into the full list of individual addresses. Accepts CIDR notation (192.168.1.0/28) or a start-end range (192.168.1.1-192.168.1.10) and returns every address, one per line, with a total count.\n\n[Try IPv4 Range Expander in your browser →](https://iotools.cloud/tool/ipv4-range-expander/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInput":{"type":"string","description":"IP Range"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Expanded Addresses"},"ioCount":{"type":"string","description":"Total"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/range-list-tool":{"post":{"operationId":"run_range_list_tool","summary":"Range List Tool","tags":["Converters"],"description":"Expand compact number ranges (10-12, 8, 20) into a full sorted list, or collapse a list of numbers back into compact ranges. Automatically sorts and deduplicates in both directions.\n\n[Try Range List Tool in your browser →](https://iotools.cloud/tool/range-list-tool/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMode":{"enum":["expand","collapse"],"description":"Mode"},"ioInput":{"type":"string","description":"Input"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Result"},"ioCount":{"type":"string","description":"Total"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ipv4-to-ipv6-converter":{"post":{"operationId":"run_ipv4_to_ipv6_converter","summary":"IPv4 to IPv6 Converter","tags":["Converters"],"description":"Convert an IPv4 address to its IPv6 representations: the IPv4-mapped address (::ffff:a.b.c.d and the ::ffff:HHHH:HHHH hex form), the derived 6to4 prefix (2002:HHHH:HHHH::/48), and the deprecated IPv4-compatible form.\n\n[Try IPv4 to IPv6 Converter in your browser →](https://iotools.cloud/tool/ipv4-to-ipv6-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioIpv4":{"type":"string","description":"IPv4 Address"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"IPv6 Representations"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ipv6-expander":{"post":{"operationId":"run_ipv6_expander","summary":"IPv6 Expander & Compressor","tags":["Converters"],"description":"Expand a shorthand IPv6 address (with '::') into its full 8-group form, and compress any IPv6 address to its RFC 5952 canonical form. Paste either form — 2001:db8::1 or 2001:0db8:0000:0000:0000:0000:0000:0001 — and get both representations at once. Handles CIDR suffixes and embedded IPv4 tails.\n\n[Try IPv6 Expander & Compressor in your browser →](https://iotools.cloud/tool/ipv6-expander/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioAddress":{"type":"string","description":"IPv6 Address"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioExpanded":{"type":"string","description":"Expanded (full 8 groups)"},"ioCompressed":{"type":"string","description":"Compressed (RFC 5952 canonical)"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/json-schema-generator":{"post":{"operationId":"run_json_schema_generator","summary":"JSON Schema Generator","tags":["Converters"],"description":"Infer a JSON Schema (Draft-07) from example JSON data — objects get properties and required keys, arrays get a merged (or anyOf) item schema, and numbers are typed as integer or number based on the sample. Runs entirely in your browser.\n\n[Try JSON Schema Generator in your browser →](https://iotools.cloud/tool/json-schema-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioJsonInput":{"type":"string","description":"Example JSON data"},"ioSchemaTitle":{"type":"string","description":"Schema title (optional)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Result"},"ioSchema":{"type":"string","description":"Generated JSON Schema"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/json-to-graphql-types-generator":{"post":{"operationId":"run_json_to_graphql_types_generator","summary":"JSON to GraphQL Types Generator","tags":["Converters"],"description":"Turn sample JSON into GraphQL SDL type definitions. Infers String, Int, Float, Boolean and ID scalars, generates a named type for every nested object, wraps arrays in list types, and marks fields non-null (!) unless they are null or missing in the samples. Runs entirely in your browser.\n\n[Try JSON to GraphQL Types Generator in your browser →](https://iotools.cloud/tool/json-to-graphql-types-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioJsonInput":{"type":"string","description":"JSON Input"},"ioTypeName":{"type":"string","description":"Root Type Name"},"ioNullability":{"enum":["strict","nullable"],"description":"Nullability"},"ioIdDetection":{"enum":["auto","off"],"description":"ID detection"},"ioIncludeRootQuery":{"type":"boolean","description":"Include a root Query type"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"GraphQL SDL"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/json-to-html-table":{"post":{"operationId":"run_json_to_html_table","summary":"JSON to HTML Table","tags":["Converters"],"description":"Convert a JSON array of objects (or a single object) into a clean, ready-to-paste HTML &lt;table>. Headers are the union of all keys, values are HTML-escaped, nested objects flatten or stringify, and you can add a CSS class or minify the output.\n\n[Try JSON to HTML Table in your browser →](https://iotools.cloud/tool/json-to-html-table/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioJsonInput":{"type":"string","description":"JSON input"},"ioNestedHandling":{"enum":["stringify","flatten"],"description":"Nested objects"},"ioTableClass":{"type":"string","description":"Table CSS class"},"ioMinify":{"type":"boolean","description":"Minify HTML (single line, no indentation)"},"ioIncludeNull":{"type":"boolean","description":"Show JSON null as an italic null"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"HTML source"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/json-to-php-array-converter":{"post":{"operationId":"run_json_to_php_array_converter","summary":"JSON to PHP Array Converter","tags":["Converters"],"description":"Convert JSON into a ready-to-paste PHP array literal — objects become 'key' => value associative arrays, arrays become list arrays, with short [] or legacy array() syntax, your choice of indentation, and an optional $variable / &lt;?php wrapper. Runs entirely in your browser.\n\n[Try JSON to PHP Array Converter in your browser →](https://iotools.cloud/tool/json-to-php-array-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputJson":{"type":"string","description":"JSON input"},"ioArrayStyle":{"enum":["short","long"],"description":"Array syntax"},"ioIndentation":{"enum":["2","4","tab"],"description":"Indentation"},"ioWrapper":{"enum":["none","assignment","php"],"description":"Output wrapper"},"ioVarName":{"type":"string","description":"Variable name"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutputPhp":{"type":"string","description":"PHP array"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/json-to-toml-converter":{"post":{"operationId":"run_json_to_toml_converter","summary":"JSON to TOML Converter","tags":["Converters"],"description":"Convert JSON to TOML. Handles nested objects (TOML tables), arrays of objects (TOML array-of-tables), and omits JSON null values (TOML has no null). Runs entirely in your browser.\n\n[Try JSON to TOML Converter in your browser →](https://iotools.cloud/tool/json-to-toml-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioJsonSource":{"type":"string","description":"JSON input"}},"required":["ioJsonSource"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutputToml":{"type":"string","description":"TOML output"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/toml-to-json-converter":{"post":{"operationId":"run_toml_to_json_converter","summary":"TOML to JSON Converter","tags":["Converters"],"description":"Convert TOML to JSON. Handles TOML tables, arrays, array-of-tables, inline tables, and native TOML dates/datetimes (converted to ISO 8601 strings). Runs entirely in your browser.\n\n[Try TOML to JSON Converter in your browser →](https://iotools.cloud/tool/toml-to-json-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioTomlSource":{"type":"string","description":"TOML input"},"ioIndent":{"enum":["2","4","tab","minified"],"description":"Indent"}},"required":["ioTomlSource"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutputJson":{"type":"string","description":"JSON output"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/toml-to-yaml-converter":{"post":{"operationId":"run_toml_to_yaml_converter","summary":"TOML to YAML Converter","tags":["Converters"],"description":"Convert TOML to YAML. Handles nested tables, arrays of tables, and TOML's typed dates/datetimes (rendered as YAML timestamp scalars). Runs entirely in your browser.\n\n[Try TOML to YAML Converter in your browser →](https://iotools.cloud/tool/toml-to-yaml-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioTomlSource":{"type":"string","description":"TOML input"}},"required":["ioTomlSource"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutputYaml":{"type":"string","description":"YAML output"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/json-to-typescript-converter":{"post":{"operationId":"run_json_to_typescript_converter","summary":"JSON to TypeScript Converter","tags":["Converters"],"description":"Convert a JSON sample into TypeScript interfaces or type aliases. Infers primitive, array, and nested-object types, merges arrays of objects into one interface with optional keys, and lets you name the root type.\n\n[Try JSON to TypeScript Converter in your browser →](https://iotools.cloud/tool/json-to-typescript-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioJsonInput":{"type":"string","description":"JSON input"},"ioRootName":{"type":"string","description":"Root type name"},"ioExportStyle":{"enum":["interface","type","class"],"description":"Output style"},"ioNullType":{"enum":["null","undefined"],"description":"Null values become"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"TypeScript output"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/json-to-xml":{"post":{"operationId":"run_json_to_xml","summary":"JSON to XML Converter","tags":["Converters"],"description":"Convert JSON into clean XML — object keys become element tags, arrays repeat their key as sibling elements, and every value is XML-escaped. Configure the root and array-item element names, pretty-print or minify, choose how nulls are handled, and toggle the XML declaration. Runs entirely in your browser.\n\n[Try JSON to XML Converter in your browser →](https://iotools.cloud/tool/json-to-xml/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputJson":{"type":"string","description":"JSON input"},"ioRootElement":{"type":"string","description":"Root element name"},"ioArrayItemElement":{"type":"string","description":"Array item element name"},"ioIndent":{"enum":["2","4","tab","minified"],"description":"Indentation"},"ioNullHandling":{"enum":["empty","omit","xsi-nil"],"description":"Null handling"},"ioXmlDeclaration":{"type":"boolean","description":"Include XML declaration (&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?>)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutputXml":{"type":"string","description":"XML output"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/json-to-zod-schema-generator":{"post":{"operationId":"run_json_to_zod_schema_generator","summary":"JSON to Zod Schema Generator","tags":["Converters"],"description":"Turn a JSON sample into a ready-to-use Zod schema. Infers primitives, arrays, unions, and nested objects, detects string formats (email, URL, UUID, date-time), marks missing keys optional and mixed-null keys nullable, and names the root schema.\n\n[Try JSON to Zod Schema Generator in your browser →](https://iotools.cloud/tool/json-to-zod-schema-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioJsonInput":{"type":"string","description":"JSON input"},"ioSchemaName":{"type":"string","description":"Schema name"},"ioStrictObjects":{"enum":["strict","passthrough"],"description":"Unknown keys"},"ioModuleSyntax":{"enum":["esm","cjs"],"description":"Module syntax"},"ioIncludeImport":{"type":"boolean","description":"Include import statement"},"ioInferType":{"type":"boolean","description":"Add z.infer type alias"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Zod schema"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/lab-to-rgb-converter":{"post":{"operationId":"run_lab_to_rgb_converter","summary":"LAB to RGB Converter","tags":["Converters"],"description":"Convert a CIE L*a*b* color to sRGB and a hex code, with a per-channel breakdown, a live color swatch, and an sRGB gamut check. Uses the standard D65 white point.\n\n[Try LAB to RGB Converter in your browser →](https://iotools.cloud/tool/lab-to-rgb-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioLabL":{"type":"number","description":"L* (Lightness)","minimum":0,"maximum":100},"ioLabA":{"type":"number","description":"a* (Green - Red)","minimum":-128,"maximum":127},"ioLabB":{"type":"number","description":"b* (Blue - Yellow)","minimum":-128,"maximum":127}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioRgb":{"type":"string","description":"RGB"},"ioHex":{"type":"string","description":"HEX"},"ioColorTable":{"type":"string","description":"Color Values"},"ioSwatchHtml":{"type":"string","description":"Swatch HTML"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/json-to-csv-converter":{"post":{"operationId":"run_json_to_csv_converter","summary":"JSON to CSV Converter","tags":["Converters"],"description":"Convert a JSON array of objects into CSV. Nested objects flatten to dot-notation columns, headers are the union of every key, and fields are quoted per RFC 4180 with a comma, semicolon or tab delimiter.\n\n[Try JSON to CSV Converter in your browser →](https://iotools.cloud/tool/json-to-csv-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioJsonSource":{"type":"string","description":"JSON input"},"ioDelimiter":{"enum":[",",";","tab"],"description":"Delimiter"},"ioIncludeHeaders":{"type":"boolean","description":"Include header row"},"ioFlatten":{"type":"boolean","description":"Flatten nested objects"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCsv":{"type":"string","description":"CSV output"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/json-to-yaml-converter":{"post":{"operationId":"run_json_to_yaml_converter","summary":"JSON to YAML Converter","tags":["Converters"],"description":"Convert JSON to clean block-style YAML. Handles nested objects, arrays and multi-line strings, tolerates JSON5-style comments and trailing commas, and runs entirely in your browser.\n\n[Try JSON to YAML Converter in your browser →](https://iotools.cloud/tool/json-to-yaml-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioJsonSource":{"type":"string","description":"JSON input"}},"required":["ioJsonSource"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutputYaml":{"type":"string","description":"YAML output"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/length-converter":{"post":{"operationId":"run_length_converter","summary":"Length Converter","tags":["Converters"],"description":"Convert length and distance between meters, kilometers, miles, feet, inches, yards, nautical miles, light-years, and 23 other units. Enter one value and pick its unit, then either see the equivalent in every unit at once or pick a single target unit.\n\n[Try Length Converter in your browser →](https://iotools.cloud/tool/length-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioValue":{"type":"number","description":"Amount"},"ioFromUnit":{"enum":["meter","kilometer","centimeter","millimeter","micrometer","nanometer","picometer","femtometer","decimeter","decameter","hectometer","mile","yard","foot","inch","nautical_mile","light_year","astronomical_unit","parsec","angstrom","fathom","chain","rod","league","furlong","mile_scandinavian","league_nautical","hand","cubit","pica","point","mil"],"description":"Convert from"},"ioToUnit":{"enum":["all","meter","kilometer","centimeter","millimeter","micrometer","nanometer","picometer","femtometer","decimeter","decameter","hectometer","mile","yard","foot","inch","nautical_mile","light_year","astronomical_unit","parsec","angstrom","fathom","chain","rod","league","furlong","mile_scandinavian","league_nautical","hand","cubit","pica","point","mil"],"description":"Convert to"},"ioPrecision":{"enum":["0","2","4","6","8","10"],"description":"Decimal precision"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Result"},"ioTable":{"type":"string","description":"Converted to every unit"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/letter-to-number-converter":{"post":{"operationId":"run_letter_to_number_converter","summary":"Letter to Number Converter","tags":["Converters"],"description":"Convert letters to numbers and back using A1Z26, A0Z25, ASCII, hexadecimal, binary or tap (knock) code — a quick decoder for puzzles, ciphers and escape rooms.\n\n[Try Letter to Number Converter in your browser →](https://iotools.cloud/tool/letter-to-number-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioText":{"type":"string","description":"Input text"},"ioCodeType":{"enum":["a1z26","a0z25","ascii","hex_ascii","binary_ascii","tap_code"],"description":"Code type"},"ioDirection":{"enum":["text_to_number","number_to_text"],"description":"Direction"},"ioSeparator":{"enum":["space","comma","dash","none"],"description":"Output separator"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/leet-speak-converter":{"post":{"operationId":"run_leet_speak_converter","summary":"Leet Speak Converter","tags":["Converters"],"description":"Convert text to leet speak (1337) and decode leet back to plain text. Choose basic (numbers only), medium or extreme substitution levels, with optional randomized character variants and mixed casing. Runs entirely in your browser.\n\n[Try Leet Speak Converter in your browser →](https://iotools.cloud/tool/leet-speak-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Input Text"},"ioMode":{"enum":["encode","decode"],"description":"Mode"},"ioLeetLevel":{"enum":["basic","medium","extreme"],"description":"Leet Level"},"ioRandomizeVariants":{"type":"boolean","description":"Randomize character variants"},"ioRandomCase":{"type":"boolean","description":"Random uppercase"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/list-converter":{"post":{"operationId":"run_list_converter","summary":"List Converter","tags":["Converters"],"description":"Convert a list between formats — newline, comma, semicolon, tab, pipe or space separated, JSON array, HTML/Markdown/numbered lists, or a SQL IN clause. Optionally trim, drop empty lines, remove duplicates and sort.\n\n[Try List Converter in your browser →](https://iotools.cloud/tool/list-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputList":{"type":"string","description":"Input List"},"ioInputFormat":{"enum":["newline","comma","semicolon","tab","pipe","space"],"description":"Input Format"},"ioOutputFormat":{"enum":["newline","comma","semicolon","tab","pipe","space","json","html-ul","html-ol","markdown","numbered","sql"],"description":"Output Format"},"ioTrimItems":{"type":"boolean","description":"Trim whitespace from each item"},"ioRemoveEmpty":{"type":"boolean","description":"Remove empty items"},"ioRemoveDuplicates":{"type":"boolean","description":"Remove duplicate items"},"ioSortItems":{"type":"boolean","description":"Sort items alphabetically"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutputList":{"type":"string","description":"Converted List"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/luminance-illuminance-converter":{"post":{"operationId":"run_luminance_illuminance_converter","summary":"Luminance & Illuminance Converter","tags":["Converters"],"description":"Convert illuminance between lux, foot-candles, phot, millilux, and nox — or luminance between cd/m² (nits), foot-lamberts, stilb, lambert, and cd/ft². Enter one value, pick its unit, and see every equivalent in that family at once.\n\n[Try Luminance & Illuminance Converter in your browser →](https://iotools.cloud/tool/luminance-illuminance-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioQuantity":{"enum":["illuminance","luminance"],"description":"Quantity"},"ioValue":{"type":"number","description":"Amount"},"ioIlluminanceUnit":{"enum":["lux","footcandle","phot","millilux","nox"],"description":"Unit"},"ioLuminanceUnit":{"enum":["cdm2","footlambert","stilb","lambert","cdft2"],"description":"Unit"},"ioPrecision":{"enum":["0","2","4","6","8","10"],"description":"Decimal precision"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioTable":{"type":"string","description":"Converted to every unit"},"ioReference":{"type":"string","description":"Typical real-world values"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/markdown-to-slack-converter":{"post":{"operationId":"run_markdown_to_slack_converter","summary":"Markdown to Slack Converter","tags":["Converters"],"description":"Convert Markdown to Slack mrkdwn and back. Rewrites bold (**text** ↔ *text*), italics, strikethrough, links (&lt;url|text> ↔ [text](url)), headings and bullet lists between the two dialects, leaving inline and fenced code untouched. Runs entirely in your browser.\n\n[Try Markdown to Slack Converter in your browser →](https://iotools.cloud/tool/markdown-to-slack-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMarkdownInput":{"type":"string","description":"Input"},"ioDirection":{"enum":["md-to-slack","slack-to-md"],"description":"Direction"},"ioHeadingStyle":{"enum":["bold","plain","keep"],"description":"Heading style"},"ioBulletChar":{"enum":["•","-","·"],"description":"Bullet character"},"ioConvertLinks":{"type":"boolean","description":"Convert links between [text](url) and &lt;url|text>"},"ioStripUnsupported":{"type":"boolean","description":"Strip unsupported Markdown (images, HR, tables)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutputText":{"type":"string","description":"Output"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/mjml-to-responsive-email-html-converter":{"post":{"operationId":"run_mjml_to_responsive_email_html_converter","summary":"MJML to Responsive Email HTML Converter","tags":["Converters"],"description":"Compile MJML markup into production-ready, responsive HTML email. Paste an MJML document and get clean HTML with Outlook (MSO) conditionals, inline styles and media queries — choose beautified, minified or raw output and a validation level. Runs entirely in your browser.\n\n[Try MJML to Responsive Email HTML Converter in your browser →](https://iotools.cloud/tool/mjml-to-responsive-email-html-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMjmlInput":{"type":"string","description":"MJML Source"},"ioOutputStyle":{"enum":["beautify","minify","raw"],"description":"Output Style"},"ioValidationLevel":{"enum":["soft","strict","skip"],"description":"Validation"},"ioKeepComments":{"type":"boolean","description":"Keep HTML comments"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioHtml":{"type":"string","description":"Responsive Email HTML"},"ioMessages":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/morse-code-translator":{"post":{"operationId":"run_morse_code_translator","summary":"Morse Code Translator","tags":["Converters"],"description":"Translate text to Morse code and Morse code back to text. Supports the International (ITU) Morse alphabet: letters A-Z, digits 0-9, and common punctuation. Words are separated by a slash, letters by a space.\n\n[Try Morse Code Translator in your browser →](https://iotools.cloud/tool/morse-code-translator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMorseMode":{"enum":["text-to-morse","morse-to-text"],"description":"Direction"},"ioInputText":{"type":"string","description":"Input"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutputText":{"type":"string","description":"Output"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/msgpack-to-json-converter":{"post":{"operationId":"run_msgpack_to_json_converter","summary":"MessagePack to JSON Converter","tags":["Converters"],"description":"Decode MessagePack binary data (hex or Base64) to readable JSON, or encode JSON to compact MessagePack bytes. Shows the size saving over JSON. Runs entirely in your browser.\n\n[Try MessagePack to JSON Converter in your browser →](https://iotools.cloud/tool/msgpack-to-json-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMode":{"enum":["decode","encode"],"description":"Mode"},"ioInputFormat":{"enum":["hex","base64"],"description":"Input Format"},"ioInput":{"type":"string","description":"Input"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutputFormat":{"enum":["hex","base64"],"description":"Output Format"},"ioOutput":{"type":"string","description":"Result"},"ioStats":{"type":"string","description":"Size Comparison"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/musical-interval-converter":{"post":{"operationId":"run_musical_interval_converter","summary":"Musical Interval Converter","tags":["Converters"],"description":"Convert between semitones, cents and frequency ratio for any musical interval, and name the interval (Perfect 5th, Major 3rd…). Shows an equal-temperament vs just-intonation comparison and a detune (cents-to-frequency) calculator.\n\n[Try Musical Interval Converter in your browser →](https://iotools.cloud/tool/musical-interval-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputType":{"enum":["semitones","cents","ratio"],"description":"I'm entering"},"ioValue":{"type":"number","description":"Value"},"ioPrecision":{"enum":["2","4","6","8"],"description":"Decimal precision"},"ioBaseFreq":{"type":"number","description":"Base frequency (Hz)"},"ioDetuneCents":{"type":"number","description":"Detune (cents)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSemitones":{"type":"string","description":"Semitones"},"ioCents":{"type":"string","description":"Cents"},"ioRatio":{"type":"string","description":"Frequency ratio"},"ioIntervalName":{"type":"string","description":"Interval name"},"ioResultFreq":{"type":"string","description":"Detuned frequency (Hz)"},"ioTuningTable":{"type":"string"},"ioReferenceChart":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/musical-note-frequency-generator":{"post":{"operationId":"run_musical_note_frequency_generator","summary":"Musical Note Frequency Generator","tags":["Converters"],"description":"Convert between musical note names (A4, C#3, Bb2...) and their frequency in Hz, using 12-tone equal temperament. Get the MIDI note number, wavelength in air, cents deviation for off-pitch frequencies, and a full reference table for the surrounding octave. Supports any A4 tuning reference (440 Hz standard, 432, 415 Baroque, 444, or custom).\n\n[Try Musical Note Frequency Generator in your browser →](https://iotools.cloud/tool/musical-note-frequency-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMode":{"enum":["note","freq"],"description":"Convert"},"ioRefHz":{"type":"number","description":"A4 Reference (Hz)","minimum":100,"maximum":1000},"ioNoteName":{"type":"string","description":"Note"},"ioInputFreq":{"type":"number","description":"Frequency (Hz)","minimum":8,"maximum":20000}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResultNoteName":{"type":"string","description":"Note"},"ioResultFrequency":{"type":"string","description":"Frequency"},"ioMidiNote":{"type":"string","description":"MIDI Note"},"ioWavelength":{"type":"string","description":"Wavelength (air, 20°C)"},"ioCentsOffset":{"type":"string","description":"Cents Offset"},"ioOctaveTable":{"type":"string","description":"Octave Reference"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/nato-phonetic-alphabet":{"post":{"operationId":"run_nato_phonetic_alphabet","summary":"NATO Phonetic Alphabet Converter","tags":["Converters"],"description":"Convert text into the NATO (ICAO) phonetic alphabet — each letter becomes its code word (A=Alpha, B=Bravo…) and each digit its number word. Spaces are marked [space] and other characters are bracketed.\n\n[Try NATO Phonetic Alphabet Converter in your browser →](https://iotools.cloud/tool/nato-phonetic-alphabet/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Text to Convert"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutputPhonetic":{"type":"string","description":"NATO Phonetic Alphabet"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/network-speed-unit-converter":{"post":{"operationId":"run_network_speed_unit_converter","summary":"Network Speed Unit Converter","tags":["Converters"],"description":"Convert network and data-transfer speeds between bps, Kbps, Mbps, Gbps, Tbps and their byte-rate equivalents (B/s, KB/s, MB/s, GB/s, TB/s, plus binary KiB/MiB/GiB/TiB per second). Enter one value, pick its unit, and see the equivalent in every unit at once.\n\n[Try Network Speed Unit Converter in your browser →](https://iotools.cloud/tool/network-speed-unit-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioValue":{"type":"number","description":"Amount"},"ioFromUnit":{"enum":["bit_per_second","kilobit_per_second","megabit_per_second","gigabit_per_second","terabit_per_second","byte_per_second","kilobyte_per_second","megabyte_per_second","gigabyte_per_second","terabyte_per_second","kibibyte_per_second","mebibyte_per_second","gibibyte_per_second","tebibyte_per_second"],"description":"Unit"},"ioPrecision":{"enum":["0","2","4","6","8","10"],"description":"Decimal precision"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioTable":{"type":"string","description":"Converted to every unit"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/number-notation-converter":{"post":{"operationId":"run_number_notation_converter","summary":"Number Notation Converter","tags":["Converters"],"description":"Convert a number between US, European, Swiss, Indian (lakh/crore), ISO space, scientific, engineering and e-notation formats, plus English and Indian spelled-out word forms. Auto-detects the input's locale format.\n\n[Try Number Notation Converter in your browser →](https://iotools.cloud/tool/number-notation-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputNumber":{"type":"string","description":"Number"},"ioDecimals":{"enum":["auto","0","2","4","6","8"],"description":"Fraction Digits"},"ioInputLocale":{"enum":["auto","us","eu","ch","in"],"description":"Input Format"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioUsNotation":{"type":"string","description":"US / UK"},"ioEuropeanNotation":{"type":"string","description":"European"},"ioSwissNotation":{"type":"string","description":"Swiss"},"ioIndianNotation":{"type":"string","description":"Indian (Lakh/Crore)"},"ioSpaceNotation":{"type":"string","description":"ISO / Space"},"ioScientificNotation":{"type":"string","description":"Scientific"},"ioEngineeringNotation":{"type":"string","description":"Engineering"},"ioENotation":{"type":"string","description":"E-notation"},"ioPlainDigits":{"type":"string","description":"Plain digits"},"ioWordsEnglish":{"type":"string","description":"Words (English)"},"ioWordsIndian":{"type":"string","description":"Words (Indian)"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/number-to-words":{"post":{"operationId":"run_number_to_words","summary":"Number to Words Converter","tags":["Converters"],"description":"Convert a number into its English word form — cardinal (one hundred one), ordinal (one hundred first), or currency (one hundred dollars and fifty cents). Handles negatives, decimals, and numbers into the decillions without precision loss.\n\n[Try Number to Words Converter in your browser →](https://iotools.cloud/tool/number-to-words/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioNumber":{"type":"string","description":"Number"},"ioFormat":{"enum":["cardinal","ordinal","currency"],"description":"Format"},"ioCurrency":{"enum":["usd","eur","gbp"],"description":"Currency"},"ioCapitalize":{"type":"boolean","description":"Capitalize first letter"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutputWords":{"type":"string","description":"Number in Words"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/openapi-v2-to-v3-converter":{"post":{"operationId":"run_openapi_v2_to_v3_converter","summary":"OpenAPI v2 to v3 Converter","tags":["Converters"],"description":"Convert a Swagger 2.0 (OpenAPI v2) spec into OpenAPI 3.x — host/basePath/schemes become servers, definitions become components.schemas with every $ref rewritten, body/formData parameters become requestBody, and produces/consumes become per-response/per-request content maps. Accepts and emits YAML or JSON, and runs entirely in your browser.\n\n[Try OpenAPI v2 to v3 Converter in your browser →](https://iotools.cloud/tool/openapi-v2-to-v3-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSwaggerInput":{"type":"string","description":"Swagger 2.0 Spec"},"ioOutputFormat":{"enum":["same","yaml","json"],"description":"Output Format"},"ioPatchSpec":{"type":"boolean","description":"Patch missing required fields (e.g. title, version, response descriptions)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string"},"ioIssues":{"type":"string"},"ioConvertedOutput":{"type":"string","description":"OpenAPI 3.0.3 Spec"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/paper-size-converter":{"post":{"operationId":"run_paper_size_converter","summary":"Paper Size Converter","tags":["Converters"],"description":"Look up a standard paper size (ISO 216 A0-A10 or US Letter/Legal/Tabloid) and convert its dimensions to millimeters, centimeters, inches, points, and pixels at a chosen DPI.\n\n[Try Paper Size Converter in your browser →](https://iotools.cloud/tool/paper-size-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioPaperSize":{"enum":["a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","a10","letter","legal","tabloid"],"description":"Paper Size"},"ioOrientation":{"enum":["portrait","landscape"],"description":"Orientation"},"ioDpi":{"enum":["72","96","150","300"],"description":"DPI (for pixel dimensions)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResultTable":{"type":"string","description":"Dimensions in every unit"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/phone-number-parser-and-formatter":{"post":{"operationId":"run_phone_number_parser_and_formatter","summary":"Phone Number Parser & Formatter","tags":["Converters"],"description":"Parse a single phone number and format it as E.164, national, international and RFC 3966 (tel:) forms. Detects the country, calling code and line type (mobile, fixed line, toll free, VoIP...) from a leading + or a chosen default country.\n\n[Try Phone Number Parser & Formatter in your browser →](https://iotools.cloud/tool/phone-number-parser-and-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioPhoneInput":{"type":"string","description":"Phone Number"},"ioCountryCode":{"enum":["US","GB","CA","AU","DE","FR","IN","JP","CN","BR","MX","IT","ES","NL","KR","RU","ID","TR","SA","ZA","NG","AR","CO","PH","VN","TH","EG","PK","BD","PL","SE","NO","DK","FI","CH","AT","BE","PT","IE","NZ","SG","MY","HK","TW","IL","AE"],"description":"Default Country"}},"required":["ioPhoneInput"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResultTable":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/php-array-to-json":{"post":{"operationId":"run_php_array_to_json","summary":"PHP Array to JSON Converter","tags":["Converters"],"description":"Convert a PHP array literal (array() or [] syntax with => keys, nested arrays, and PHP scalar types) into valid JSON. Choose 2/4-space, tab, or minified output. Runs entirely in your browser.\n\n[Try PHP Array to JSON Converter in your browser →](https://iotools.cloud/tool/php-array-to-json/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputPhp":{"type":"string","description":"PHP Array"},"ioIndentation":{"enum":["2","4","tab","minified"],"description":"Indentation"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutputJson":{"type":"string","description":"JSON Output"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/php-deserializer":{"post":{"operationId":"run_php_deserializer","summary":"PHP Deserializer","tags":["Converters"],"description":"Deserialize PHP's serialize() output into readable JSON. Paste a serialized PHP string or upload a file to unserialize arrays, objects, and scalars.\n\n[Try PHP Deserializer in your browser →](https://iotools.cloud/tool/php-deserializer/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSerializedPhpData":{"type":"string","description":"Serialized PHP Data"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResultJson":{"type":"string","description":"Result JSON"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/pig-latin-translator":{"post":{"operationId":"run_pig_latin_translator","summary":"Pig Latin Translator","tags":["Converters"],"description":"Translate English text into Pig Latin. Consonant-starting words move their leading consonant cluster to the end plus \"ay\"; vowel-starting words add \"way\". Capitalization is preserved and punctuation passes through. Runs entirely in your browser.\n\n[Try Pig Latin Translator in your browser →](https://iotools.cloud/tool/pig-latin-translator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Input Text"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutputText":{"type":"string","description":"Pig Latin Output"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/pixel-rem-em-converter":{"post":{"operationId":"run_pixel_rem_em_converter","summary":"Pixel, REM & EM Converter","tags":["Converters"],"description":"Convert between CSS px, rem, and em units given a root font-size (for rem) and a parent font-size (for em) — and see all three side by side to understand how rem and em diverge.\n\n[Try Pixel, REM & EM Converter in your browser →](https://iotools.cloud/tool/pixel-rem-em-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioValue":{"type":"number","description":"Value"},"ioFromUnit":{"enum":["px","rem","em"],"description":"Unit"},"ioRootFontSize":{"type":"number","description":"Root font-size (px)","minimum":1},"ioParentFontSize":{"type":"number","description":"Parent font-size (px)","minimum":1}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioTable":{"type":"string","description":"Equivalent values"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/playfair-cipher":{"post":{"operationId":"run_playfair_cipher","summary":"Playfair Cipher","tags":["Converters"],"description":"Encode and decode text using the classic Playfair cipher — a 5x5 keyword grid that substitutes letter pairs (digraphs) instead of single letters. Supports the standard I/J-shared grid or an Omit-Q variant, with a configurable filler letter.\n\n[Try Playfair Cipher in your browser →](https://iotools.cloud/tool/playfair-cipher/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMode":{"enum":["encode","decode"],"description":"Mode"},"ioInputText":{"type":"string","description":"Input Text"},"ioKeyword":{"type":"string","description":"Keyword"},"ioMatrixMode":{"enum":["ij","omitq"],"description":"Matrix Variant"},"ioFiller":{"enum":["X","Q","Z"],"description":"Filler Letter"}},"required":["ioKeyword"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/print-typography-units-converter":{"post":{"operationId":"run_print_typography_units_converter","summary":"Print Typography Units Converter","tags":["Converters"],"description":"Convert between print typography units — points, picas, inches, millimeters, and centimeters — using exact print measurement ratios (1in = 72pt = 6pc = 25.4mm = 2.54cm).\n\n[Try Print Typography Units Converter in your browser →](https://iotools.cloud/tool/print-typography-units-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioValue":{"type":"number","description":"Value"},"ioFromUnit":{"enum":["pt","pica","inch","mm","cm"],"description":"Unit"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioTable":{"type":"string","description":"Equivalent values"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/protobuf-text-json-converter":{"post":{"operationId":"run_protobuf_text_json_converter","summary":"Protobuf Text ↔ JSON Converter","tags":["Converters"],"description":"Convert Protocol Buffers text format (prototext) to JSON and back. Schema-less structural conversion: nested messages become objects and repeated fields become arrays. Pick a direction and indentation.\n\n[Try Protobuf Text ↔ JSON Converter in your browser →](https://iotools.cloud/tool/protobuf-text-json-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Input"},"ioConvertMode":{"enum":["proto-to-json","json-to-proto"],"description":"Direction"},"ioIndentation":{"enum":["2","4"],"description":"Indentation"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/punycode-converter":{"post":{"operationId":"run_punycode_converter","summary":"Punycode Converter","tags":["Converters"],"description":"Convert internationalized domain names (IDN) to and from Punycode ASCII form (xn--) per RFC 3492/RFC 5891. Encode Unicode domains like münchen.de to xn--mnchen-3ya.de, or decode Punycode back to Unicode — ASCII labels pass through unchanged.\n\n[Try Punycode Converter in your browser →](https://iotools.cloud/tool/punycode-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Domain or Text"},"ioMode":{"enum":["encode","decode"],"description":"Mode"},"ioFullDomain":{"type":"boolean","description":"Process full domain (split by dots)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Result"},"ioBreakdown":{"type":"string","description":"Per-label breakdown"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/string-obfuscator":{"post":{"operationId":"run_string_obfuscator","summary":"String Obfuscator","tags":["Converters"],"description":"Mask the middle of a string with asterisks, keeping a configurable number of leading/trailing characters, spaces, and chosen characters visible. Useful for partially hiding emails, card numbers, or IDs in screenshots and docs.\n\n[Try String Obfuscator in your browser →](https://iotools.cloud/tool/string-obfuscator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioStringToObfuscate":{"type":"string","description":"String to obfuscate"},"ioKeepFirst":{"type":"number","description":"Keep first","minimum":0,"maximum":50},"ioKeepLast":{"type":"number","description":"Keep last","minimum":0,"maximum":50},"ioKeepSpaces":{"type":"boolean","description":"Keep spaces"},"ioKeepCharacters":{"type":"string","description":"Keep characters"}},"required":["ioStringToObfuscate"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioObfuscatedString":{"type":"string","description":"Obfuscated String"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/power-converter":{"post":{"operationId":"run_power_converter","summary":"Power Converter","tags":["Converters"],"description":"Convert power between watts, kilowatts, horsepower, metric horsepower, BTU per hour, and 5 other units. Enter one value and pick its unit, then either see the equivalent in every unit at once or pick a single target unit.\n\n[Try Power Converter in your browser →](https://iotools.cloud/tool/power-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioValue":{"type":"number","description":"Amount"},"ioFromUnit":{"enum":["watt","milliwatt","kilowatt","megawatt","gigawatt","horsepower","metric_horsepower","kilocalories_per_hour","british_thermal_units_per_hour","foot_pounds_per_second"],"description":"Convert from"},"ioToUnit":{"enum":["all","watt","milliwatt","kilowatt","megawatt","gigawatt","horsepower","metric_horsepower","kilocalories_per_hour","british_thermal_units_per_hour","foot_pounds_per_second"],"description":"Convert to"},"ioPrecision":{"enum":["0","2","4","6","8","10"],"description":"Decimal precision"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Result"},"ioTable":{"type":"string","description":"Converted to every unit"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/pressure-converter":{"post":{"operationId":"run_pressure_converter","summary":"Pressure Converter","tags":["Converters"],"description":"Convert pressure between pascals, bar, atmospheres, PSI, torr/mmHg, inches of mercury, and 6 other units. Enter one value and pick its unit, then either see the equivalent in every unit at once or pick a single target unit.\n\n[Try Pressure Converter in your browser →](https://iotools.cloud/tool/pressure-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioValue":{"type":"number","description":"Amount"},"ioFromUnit":{"enum":["pascal","kilopascal","megapascal","bar","millibar","atmosphere","tech_atmosphere","psi","ksi","torr","inhg","cmh2o"],"description":"Convert from"},"ioToUnit":{"enum":["all","pascal","kilopascal","megapascal","bar","millibar","atmosphere","tech_atmosphere","psi","ksi","torr","inhg","cmh2o"],"description":"Convert to"},"ioPrecision":{"enum":["0","2","4","6","8","10"],"description":"Decimal precision"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Result"},"ioTable":{"type":"string","description":"Converted to every unit"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/markdown-to-html":{"post":{"operationId":"run_markdown_to_html","summary":"Markdown to HTML Converter","tags":["Converters"],"description":"Convert Markdown (CommonMark / GitHub-Flavored) to clean HTML — headings, lists, tables, code blocks, links and more. Preview it live and copy the source.\n\n[Try Markdown to HTML Converter in your browser →](https://iotools.cloud/tool/markdown-to-html/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMarkdown":{"type":"string","description":"Markdown"},"ioGfm":{"type":"boolean","description":"GitHub-Flavored Markdown (tables, ~~strikethrough~~, autolinks)"},"ioBreaks":{"type":"boolean","description":"Convert single line breaks to &lt;br> (GitHub comment style)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioHtml":{"type":"string","description":"HTML source"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/speed-converter":{"post":{"operationId":"run_speed_converter","summary":"Speed Converter","tags":["Converters"],"description":"Convert speed between meters per second, kilometers per hour, miles per hour, knots, feet per second, and 7 other units. Enter one value and pick its unit, then either see the equivalent in every unit at once or pick a single target unit.\n\n[Try Speed Converter in your browser →](https://iotools.cloud/tool/speed-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioValue":{"type":"number","description":"Amount"},"ioFromUnit":{"enum":["meter_per_second","kilometer_per_hour","mile_per_hour","foot_per_second","knot","kilometer_per_minute","centimeter_per_second","millimeter_per_second","mile_per_minute","inch_per_second","micrometer_per_second","nanometer_per_second"],"description":"Convert from"},"ioToUnit":{"enum":["all","meter_per_second","kilometer_per_hour","mile_per_hour","foot_per_second","knot","kilometer_per_minute","centimeter_per_second","millimeter_per_second","mile_per_minute","inch_per_second","micrometer_per_second","nanometer_per_second"],"description":"Convert to"},"ioPrecision":{"enum":["0","2","4","6","8","10"],"description":"Decimal precision"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Result"},"ioTable":{"type":"string","description":"Converted to every unit"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/text-to-hex":{"post":{"operationId":"run_text_to_hex","summary":"Text to Hex Converter","tags":["Converters"],"description":"Convert text to its hexadecimal byte representation (UTF-8), with your choice of separator and upper- or lower-case output.\n\n[Try Text to Hex Converter in your browser →](https://iotools.cloud/tool/text-to-hex/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Text"},"ioDelimiter":{"enum":["space","none","comma","dash","0x","\\x"],"description":"Byte separator"},"ioCase":{"enum":["uppercase","lowercase"],"description":"Letter case"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Hexadecimal"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/regex-converter":{"post":{"operationId":"run_regex_converter","summary":"Regex Converter","tags":["Converters"],"description":"Convert a regular expression's syntax between PCRE (PHP), JavaScript, Python re, Go regexp (RE2), Java, and Ruby — named groups, backreferences, lookbehind, atomic groups, possessive quantifiers, inline flags and more — plus convert the flags string between each flavor's notation. Flags per pair, notes explain every change or incompatibility.\n\n[Try Regex Converter in your browser →](https://iotools.cloud/tool/regex-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioRegexPattern":{"type":"string","description":"Regex Pattern"},"ioFlags":{"type":"string","description":"Flags"},"ioSourceFlavor":{"enum":["pcre","javascript","python","go","java","ruby"],"description":"Source Flavor"},"ioTargetFlavor":{"enum":["pcre","javascript","python","go","java","ruby"],"description":"Target Flavor"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioConvertedRegex":{"type":"string","description":"Converted Regex"},"ioConvertedFlags":{"type":"string","description":"Converted Flags"},"ioConversionNotes":{"type":"string","description":"Conversion Notes"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/rgb-to-cmyk":{"post":{"operationId":"run_rgb_to_cmyk","summary":"RGB to CMYK Converter","tags":["Converters"],"description":"Convert an sRGB color (Red, Green, Blue 0-255) to CMYK print percentages (Cyan, Magenta, Yellow, Key/Black 0-100%), with a hex code, a per-channel breakdown and a live color swatch.\n\n[Try RGB to CMYK Converter in your browser →](https://iotools.cloud/tool/rgb-to-cmyk/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioRgbR":{"type":"number","description":"R (Red)","minimum":0,"maximum":255},"ioRgbG":{"type":"number","description":"G (Green)","minimum":0,"maximum":255},"ioRgbB":{"type":"number","description":"B (Blue)","minimum":0,"maximum":255}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCmyk":{"type":"string","description":"CMYK"},"ioHex":{"type":"string","description":"HEX"},"ioColorTable":{"type":"string","description":"Color Values"},"ioSwatchHtml":{"type":"string","description":"Swatch HTML"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/rot13":{"post":{"operationId":"run_rot13","summary":"ROT13 Encoder / Decoder","tags":["Converters"],"description":"Encode or decode text with ROT13, the fixed-shift-13 Caesar cipher. ROT13 is its own inverse, so the same action encodes and decodes; non-letters pass through unchanged.\n\n[Try ROT13 Encoder / Decoder in your browser →](https://iotools.cloud/tool/rot13/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Input Text"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutputText":{"type":"string","description":"ROT13 Output"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/scientific-notation-converter":{"post":{"operationId":"run_scientific_notation_converter","summary":"Scientific Notation Converter","tags":["Converters"],"description":"Convert numbers between standard decimal, scientific (a × 10ⁿ), engineering and e-notation. Works both ways — paste any of these forms and get all four back. Handles very large and very small numbers exactly.\n\n[Try Scientific Notation Converter in your browser →](https://iotools.cloud/tool/scientific-notation-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputNumber":{"type":"string","description":"Number"},"ioSigFigs":{"enum":["auto","1","2","3","4","5","6","7","8","9","10","12","15"],"description":"Significant Figures"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioStandard":{"type":"string","description":"Standard notation"},"ioScientific":{"type":"string","description":"Scientific notation"},"ioEngineering":{"type":"string","description":"Engineering notation"},"ioENotation":{"type":"string","description":"E-notation"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/rgba-to-hex-converter":{"post":{"operationId":"run_rgba_to_hex_converter","summary":"RGBA to HEX Converter","tags":["Converters"],"description":"Convert a CSS rgba()/rgb() color to a HEX code — 6-digit when opaque, 8-digit (#RRGGBBAA) when it has transparency — with a full breakdown of red, green, blue, alpha and HSLA.\n\n[Try RGBA to HEX Converter in your browser →](https://iotools.cloud/tool/rgba-to-hex-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioRgba":{"type":"string","description":"RGBA Color"},"ioAlphaOverride":{"type":"number","description":"Alpha Override","minimum":0,"maximum":1}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioHex":{"type":"string","description":"HEX"},"ioColorTable":{"type":"string","description":"Color Values"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/roman-numeral-converter":{"post":{"operationId":"run_roman_numeral_converter","summary":"Roman Numeral Converter","tags":["Converters"],"description":"Convert a number (1–3999) to Roman numerals, or a Roman numeral back to a number. Shows the result plus a breakdown of how the numeral decomposes.\n\n[Try Roman Numeral Converter in your browser →](https://iotools.cloud/tool/roman-numeral-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMode":{"enum":["to-roman","to-number"],"description":"Direction"},"ioNumber":{"type":"number","description":"Number","minimum":1,"maximum":3999},"ioRoman":{"type":"string","description":"Roman numeral"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Result"},"ioBreakdown":{"type":"string","description":"Breakdown"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/sql-escape":{"post":{"operationId":"run_sql_escape","summary":"SQL Escape","tags":["Converters"],"description":"Escape or unescape a string for safe inclusion in a SQL string literal — doubles single quotes for standard/ANSI SQL, PostgreSQL, SQL Server and SQLite, or applies MySQL's traditional backslash-escaping (backslashes, quotes, newlines, NUL, Ctrl-Z) for MySQL. Also builds a ready-to-paste quoted snippet. For ad-hoc/manual SQL only — always use parameterized queries (prepared statements) in application code instead of string concatenation.\n\n[Try SQL Escape in your browser →](https://iotools.cloud/tool/sql-escape/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Input Text"},"ioDialect":{"enum":["ansi","mysql","postgresql","sqlserver","sqlite"],"description":"SQL Dialect"},"ioMode":{"enum":["escape","unescape"],"description":"Mode"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutputText":{"type":"string","description":"Escaped Result"},"ioSnippet":{"type":"string","description":"SQL Snippet"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/svg-to-base64-encode":{"post":{"operationId":"run_svg_to_base64_encode","summary":"SVG to Base64 Encode","tags":["Converters"],"description":"Encode SVG markup to Base64 and get the ready-to-use data URI, HTML &lt;img> tag and CSS background-image rule — so you can inline an icon without a separate HTTP request.\n\n[Try SVG to Base64 Encode in your browser →](https://iotools.cloud/tool/svg-to-base64-encode/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSvg":{"type":"string","description":"SVG markup"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioBase64":{"type":"string","description":"Base64 string"},"ioDataUri":{"type":"string","description":"Data URI"},"ioHtmlImage":{"type":"string","description":"HTML image"},"ioCssBackground":{"type":"string","description":"CSS background"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/temperature-converter":{"post":{"operationId":"run_temperature_converter","summary":"Temperature Converter","tags":["Converters"],"description":"Convert a temperature between Celsius, Fahrenheit, Kelvin, Rankine, Delisle, Newton, Réaumur, Rømer and Planck. Enter one value and pick its scale, then either see the equivalent on every scale at once or pick a single target scale.\n\n[Try Temperature Converter in your browser →](https://iotools.cloud/tool/temperature-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioValue":{"type":"number","description":"Temperature"},"ioFromUnit":{"enum":["C","F","K","R","De","N","Re","Ro","P"],"description":"Convert from"},"ioToUnit":{"enum":["all","C","F","K","R","De","N","Re","Ro","P"],"description":"Convert to"},"ioPrecision":{"enum":["0","2","4","6","8","10"],"description":"Decimal precision"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Result"},"ioTable":{"type":"string","description":"Converted to every unit"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/text-to-base64-encode":{"post":{"operationId":"run_text_to_base64_encode","summary":"Text to Base64 Encode","tags":["Converters"],"description":"Encode text to a Base64 string. Handles any UTF-8 content — URLs, CSS, HTML, XML, JavaScript, accented characters and emoji — and runs entirely in your browser.\n\n[Try Text to Base64 Encode in your browser →](https://iotools.cloud/tool/text-to-base64-encode/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Text to encode"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioBase64Output":{"type":"string","description":"Base64 output"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/text-to-handwriting-converter":{"post":{"operationId":"run_text_to_handwriting_converter","summary":"Text to Handwriting Converter","tags":["Converters"],"description":"Convert typed text into realistic handwriting on ruled, grid or blank paper — pick the ink colour, size and messiness, then download the result as an SVG image.\n\n[Try Text to Handwriting Converter in your browser →](https://iotools.cloud/tool/text-to-handwriting-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioText":{"type":"string","description":"Your text"},"ioPaperStyle":{"enum":["ruled","college","blank","grid","dotted"],"description":"Paper style"},"ioFont":{"enum":["casual","cursive","neat","marker"],"description":"Handwriting style"},"ioInkColor":{"type":"string","description":"Ink colour"},"ioFontSize":{"type":"number","description":"Font size (px)","minimum":12,"maximum":48},"ioJitter":{"type":"number","description":"Messiness","minimum":0,"maximum":10}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSvg":{"type":"string","description":"SVG source"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/timezone-converter":{"post":{"operationId":"run_timezone_converter","summary":"Timezone Converter","tags":["Converters"],"description":"Convert a date and time between timezone abbreviations like EST, PST, GMT, IST, JST and more. Leave the date/time blank to convert the current moment.\n\n[Try Timezone Converter in your browser →](https://iotools.cloud/tool/timezone-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSourceDate":{"type":"string","description":"Date"},"ioSourceTime":{"type":"string","description":"Time"},"ioFromZone":{"enum":["NUT","SST","CKT","HAST","TAHT","MART","MIT","AKST","GAMT","GIT","HADT","AKDT","PST","MST","PDT","CST","EAST","GALT","MDT","CDT","COT","EASST","ECT","EST","PET","AST","BOT","CLT","COST","EDT","FKT","GYT","PYT","VET","NST","NT","ADT","ART","BRT","CLST","FKST","GFT","PMST","PYST","ROTT","SRT","UYT","WGT","NDT","FNT","PMDT","UYST","WGST","CVT","EGT","EGST","GMT","SLST","UTC","WET","BST","CET","WAT","WEST","CAT","CEST","EET","SAST","WAST","EAT","EEST","FET","IDT","MSK","SYOT","TRT","IRST","AZT","GET","GST","MUT","RET","SAMT","SCT","VOLT","IRDT","HMT","MAWT","MVT","ORAT","PKT","TFT","TJT","TMT","UZT","YEKT","IST","NPT","BDT","BIOT","BTT","IOT","KGT","OMST","VOST","CCT","MMT","CXT","DAVT","HOVT","ICT","KRAT","THA","WIB","AWST","CHOT","CIT","CT","HKT","HOVST","IRKT","MYT","PHT","SGT","ULAT","WITA","AWDT","CHOST","EIT","JST","KST","PWT","TLT","ULAST","WIT","YAKT","ACST","AEST","CHST","CHUT","DDUT","PGT","VLAT","ACDT","LHST","AEDT","KOST","LHDT","MAGT","MIST","NCT","NFT","PONT","SAKT","SBT","SRET","VUT","BIT","FJT","GILT","MHT","NZST","PETT","TVT","WAKT","WFT","CHAST","CIST","NZDT","PHOT","TKT","TOT","WST","CHADT","LINT"],"description":"Convert from"},"ioToZone":{"enum":["NUT","SST","CKT","HAST","TAHT","MART","MIT","AKST","GAMT","GIT","HADT","AKDT","PST","MST","PDT","CST","EAST","GALT","MDT","CDT","COT","EASST","ECT","EST","PET","AST","BOT","CLT","COST","EDT","FKT","GYT","PYT","VET","NST","NT","ADT","ART","BRT","CLST","FKST","GFT","PMST","PYST","ROTT","SRT","UYT","WGT","NDT","FNT","PMDT","UYST","WGST","CVT","EGT","EGST","GMT","SLST","UTC","WET","BST","CET","WAT","WEST","CAT","CEST","EET","SAST","WAST","EAT","EEST","FET","IDT","MSK","SYOT","TRT","IRST","AZT","GET","GST","MUT","RET","SAMT","SCT","VOLT","IRDT","HMT","MAWT","MVT","ORAT","PKT","TFT","TJT","TMT","UZT","YEKT","IST","NPT","BDT","BIOT","BTT","IOT","KGT","OMST","VOST","CCT","MMT","CXT","DAVT","HOVT","ICT","KRAT","THA","WIB","AWST","CHOT","CIT","CT","HKT","HOVST","IRKT","MYT","PHT","SGT","ULAT","WITA","AWDT","CHOST","EIT","JST","KST","PWT","TLT","ULAST","WIT","YAKT","ACST","AEST","CHST","CHUT","DDUT","PGT","VLAT","ACDT","LHST","AEDT","KOST","LHDT","MAGT","MIST","NCT","NFT","PONT","SAKT","SBT","SRET","VUT","BIT","FJT","GILT","MHT","NZST","PETT","TVT","WAKT","WFT","CHAST","CIST","NZDT","PHOT","TKT","TOT","WST","CHADT","LINT"],"description":"Convert to"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSourceDateTime":{"type":"string","description":"Source time"},"ioConvertedDateTime":{"type":"string","description":"Converted time"},"ioDifference":{"type":"string","description":"Time difference"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/torque-converter":{"post":{"operationId":"run_torque_converter","summary":"Torque Converter","tags":["Converters"],"description":"Convert torque between newton-meters, pound-force feet, kilogram-force meters, ounce-force inches, and 6 other units at once. Enter one value, pick its unit, and see the equivalent in every unit.\n\n[Try Torque Converter in your browser →](https://iotools.cloud/tool/torque-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioValue":{"type":"number","description":"Amount"},"ioFromUnit":{"enum":["nm","knm","ncm","dyncm","kgfm","kgfcm","lbfft","lbfin","ozfft","ozfin"],"description":"Unit"},"ioPrecision":{"enum":["0","2","4","6","8","10"],"description":"Decimal precision"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioTable":{"type":"string","description":"Converted to every unit"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/unicode-to-html-entities":{"post":{"operationId":"run_unicode_to_html_entities","summary":"Unicode to HTML Entities Converter","tags":["Converters"],"description":"Convert Unicode text to HTML entities and back. Encode to named (&copy;), decimal (&#169;) or hexadecimal (&#xa9;) entities, encode all characters or only special/non-ASCII ones, and decode any entity type back to plain text — with a per-character reference table.\n\n[Try Unicode to HTML Entities Converter in your browser →](https://iotools.cloud/tool/unicode-to-html-entities/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Input Text"},"ioMode":{"enum":["encode","decode"],"description":"Mode"},"ioFormat":{"enum":["named","decimal","hex"],"description":"Entity Format"},"ioEncodeAll":{"type":"boolean","description":"Encode all characters (not just special / non-ASCII)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Result"},"ioCharInfo":{"type":"string","description":"Character Reference"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/unix-timestamp-converter":{"post":{"operationId":"run_unix_timestamp_converter","summary":"Unix Timestamp Converter","tags":["Converters"],"description":"Convert a Unix epoch timestamp (seconds or milliseconds, auto-detected) into a human-readable UTC date, ISO 8601, RFC 7231 and a named timezone — and convert a date/time back into a Unix timestamp. Leave the input blank to read the current time.\n\n[Try Unix Timestamp Converter in your browser →](https://iotools.cloud/tool/unix-timestamp-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioDirection":{"enum":["to-date","to-timestamp"],"description":"Conversion"},"ioTimestamp":{"type":"string","description":"Unix timestamp"},"ioUnit":{"enum":["auto","seconds","milliseconds"],"description":"Interpret as"},"ioTimezone":{"enum":["UTC","America/Los_Angeles","America/Denver","America/Chicago","America/New_York","America/Sao_Paulo","Europe/London","Europe/Paris","Europe/Berlin","Asia/Dubai","Asia/Kolkata","Asia/Singapore","Asia/Shanghai","Asia/Tokyo","Australia/Sydney","Pacific/Auckland"],"description":"Show time in"},"ioDateTime":{"type":"string","description":"Date & time"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/unit-converter":{"post":{"operationId":"run_unit_converter","summary":"Unit Converter","tags":["Converters"],"description":"Convert between units of length, mass/weight, temperature, volume, area, speed, data storage, and pressure. Pick a category, choose the units, and get an instant result — or switch on 'Show all units' to see every unit in that category at once.\n\n[Try Unit Converter in your browser →](https://iotools.cloud/tool/unit-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCategory":{"enum":["length","mass","temperature","volume","area","speed","data","pressure"],"description":"Category"},"ioValue":{"type":"number","description":"Amount"},"ioLengthFrom":{"enum":["meter","kilometer","centimeter","millimeter","micrometer","nanometer","picometer","femtometer","decimeter","decameter","hectometer","mile","yard","foot","inch","nautical_mile","light_year","astronomical_unit","parsec","angstrom","fathom","chain","rod","league","furlong","mile_scandinavian","league_nautical","hand","cubit","pica","point","mil"],"description":"Convert from"},"ioLengthTo":{"enum":["meter","kilometer","centimeter","millimeter","micrometer","nanometer","picometer","femtometer","decimeter","decameter","hectometer","mile","yard","foot","inch","nautical_mile","light_year","astronomical_unit","parsec","angstrom","fathom","chain","rod","league","furlong","mile_scandinavian","league_nautical","hand","cubit","pica","point","mil"],"description":"Convert to"},"ioMassFrom":{"enum":["kilogram","gram","milligram","microgram","tonne","pound","ounce","stone","ton","metric_ton","carat","atomic_mass_unit","long_ton","short_hundredweight","long_hundredweight","pennyweight","grain"],"description":"Convert from"},"ioMassTo":{"enum":["kilogram","gram","milligram","microgram","tonne","pound","ounce","stone","ton","metric_ton","carat","atomic_mass_unit","long_ton","short_hundredweight","long_hundredweight","pennyweight","grain"],"description":"Convert to"},"ioTemperatureFrom":{"enum":["C","F","K","R","De","N","Re","Ro","P"],"description":"Convert from"},"ioTemperatureTo":{"enum":["C","F","K","R","De","N","Re","Ro","P"],"description":"Convert to"},"ioVolumeFrom":{"enum":["milliliter","liter","cubic_centimeter","cubic_meter","us_teaspoon","us_tablespoon","us_fluid_ounce","us_cup","us_pint","us_quart","us_gallon","imp_fluid_ounce","imp_pint","imp_gallon","cubic_inch","cubic_foot"],"description":"Convert from"},"ioVolumeTo":{"enum":["milliliter","liter","cubic_centimeter","cubic_meter","us_teaspoon","us_tablespoon","us_fluid_ounce","us_cup","us_pint","us_quart","us_gallon","imp_fluid_ounce","imp_pint","imp_gallon","cubic_inch","cubic_foot"],"description":"Convert to"},"ioAreaFrom":{"enum":["square_meter","square_kilometer","square_centimeter","square_millimeter","square_decimeter","square_dekameter","square_hectometer","hectare","acre","square_foot","square_yard","square_mile","square_inch","square_micrometer","square_nanometer"],"description":"Convert from"},"ioAreaTo":{"enum":["square_meter","square_kilometer","square_centimeter","square_millimeter","square_decimeter","square_dekameter","square_hectometer","hectare","acre","square_foot","square_yard","square_mile","square_inch","square_micrometer","square_nanometer"],"description":"Convert to"},"ioSpeedFrom":{"enum":["meter_per_second","kilometer_per_hour","mile_per_hour","foot_per_second","knot","kilometer_per_minute","centimeter_per_second","millimeter_per_second","mile_per_minute","inch_per_second","micrometer_per_second","nanometer_per_second"],"description":"Convert from"},"ioSpeedTo":{"enum":["meter_per_second","kilometer_per_hour","mile_per_hour","foot_per_second","knot","kilometer_per_minute","centimeter_per_second","millimeter_per_second","mile_per_minute","inch_per_second","micrometer_per_second","nanometer_per_second"],"description":"Convert to"},"ioDataFrom":{"enum":["bit","nibble","byte","kb","mb","gb","tb","pb","eb","kib","mib","gib","tib","pib","eib"],"description":"Convert from"},"ioDataTo":{"enum":["bit","nibble","byte","kb","mb","gb","tb","pb","eb","kib","mib","gib","tib","pib","eib"],"description":"Convert to"},"ioPressureFrom":{"enum":["pascal","kilopascal","megapascal","bar","millibar","atmosphere","tech_atmosphere","psi","ksi","torr","inhg","cmh2o"],"description":"Convert from"},"ioPressureTo":{"enum":["pascal","kilopascal","megapascal","bar","millibar","atmosphere","tech_atmosphere","psi","ksi","torr","inhg","cmh2o"],"description":"Convert to"},"ioShowAll":{"type":"boolean","description":"Show all units"},"ioPrecision":{"enum":["0","2","4","6","8","10"],"description":"Decimal precision"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Result"},"ioTable":{"type":"string","description":"Converted to every unit"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/upside-down-text":{"post":{"operationId":"run_upside_down_text","summary":"Upside Down Text Generator","tags":["Converters"],"description":"Flip text upside down into ˙ǝpoɔᴉun-style rotated characters you can paste anywhere. Each letter, digit and symbol becomes its 180°-rotated look-alike and the string is reversed so it reads correctly when flipped. Runs entirely in your browser.\n\n[Try Upside Down Text Generator in your browser →](https://iotools.cloud/tool/upside-down-text/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Input Text"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Upside Down Text"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/url-encoder-decoder":{"post":{"operationId":"run_url_encoder_decoder","summary":"URL Encoder / Decoder","tags":["Converters"],"description":"Encode text into a URL-safe percent-encoded string, or decode a percent-encoded URL back to plain text. Supports component (encodeURIComponent), full-URI (encodeURI), and form-urlencoded (+ for space) schemes.\n\n[Try URL Encoder / Decoder in your browser →](https://iotools.cloud/tool/url-encoder-decoder/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Input Text"},"ioMode":{"enum":["encode","decode"],"description":"Mode"},"ioScheme":{"enum":["component","uri","form"],"description":"Encoding Scheme"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/vcf-vcard-to-json-converter":{"post":{"operationId":"run_vcf_vcard_to_json_converter","summary":"VCF (vCard) to JSON Converter","tags":["Converters"],"description":"Parse .vcf vCard files (versions 3.0 and 4.0) into structured JSON — split names and addresses into fields, parse dates to ISO 8601, group contact methods by type, and handle multiple vCards in one file.\n\n[Try VCF (vCard) to JSON Converter in your browser →](https://iotools.cloud/tool/vcf-vcard-to-json-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioVcfSource":{"type":"string","description":"vCard Source"},"ioPrettyPrint":{"type":"boolean","description":"Pretty-print JSON output"},"ioFlatArray":{"type":"boolean","description":"Output flat array of contacts (skip wrapper object)"},"ioStructuredN":{"type":"boolean","description":"Split N (Name) into family/given/additional/prefix/suffix"},"ioStructuredAdr":{"type":"boolean","description":"Split ADR (Address) into pobox/extended/street/locality/region/postalCode/country"},"ioParseDates":{"type":"boolean","description":"Parse BDAY/ANNIVERSARY/REV into ISO 8601"},"ioGroupByType":{"type":"boolean","description":"Group EMAIL/TEL/ADR/URL by TYPE parameter"},"ioIncludePhoto":{"type":"boolean","description":"Include PHOTO/LOGO base64 data (large output)"},"ioIncludeRaw":{"type":"boolean","description":"Include raw property values alongside parsed values"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioJsonOutput":{"type":"string","description":"JSON Output"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/vigenere-cipher":{"post":{"operationId":"run_vigenere_cipher","summary":"Vigenère Cipher","tags":["Converters"],"description":"Encode and decode text with the Vigenère cipher — a keyword-driven polyalphabetic cipher. Supports the classic repeating-key mode and the text auto-key variant; non-letters pass through and letter case is preserved.\n\n[Try Vigenère Cipher in your browser →](https://iotools.cloud/tool/vigenere-cipher/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Input Text"},"ioKey":{"type":"string","description":"Keyword"},"ioMode":{"enum":["encode","decode"],"description":"Mode"},"ioAutoKey":{"type":"boolean","description":"Auto-key (extend the key with the plaintext)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Result"},"ioFrequency":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/voltage-converter":{"post":{"operationId":"run_voltage_converter","summary":"Voltage Converter","tags":["Converters"],"description":"Convert voltage between volts, millivolts, microvolts, kilovolts, megavolts, gigavolts, statvolts, and abvolts at once. Enter one value, pick its unit, and see the equivalent in all 10 units.\n\n[Try Voltage Converter in your browser →](https://iotools.cloud/tool/voltage-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioValue":{"type":"number","description":"Amount"},"ioFromUnit":{"enum":["volt","millivolt","microvolt","nanovolt","picovolt","kilovolt","megavolt","gigavolt","statvolt","abvolt"],"description":"Unit"},"ioPrecision":{"enum":["0","2","4","6","8","10"],"description":"Decimal precision"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioTable":{"type":"string","description":"Converted to every unit"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/xml-to-json-converter":{"post":{"operationId":"run_xml_to_json_converter","summary":"XML to JSON Converter","tags":["Converters"],"description":"Convert XML to JSON. Element names become object keys, attributes get a configurable prefix (@, _, or none), text content gets a configurable key name, and repeated sibling elements become a JSON array automatically — with an option to force every element into an array so the shape never depends on how many times it repeats. Runs entirely in your browser.\n\n[Try XML to JSON Converter in your browser →](https://iotools.cloud/tool/xml-to-json-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioXmlSource":{"type":"string","description":"XML input"},"ioAttributePrefix":{"enum":["@","_",""],"description":"Attribute prefix"},"ioTextKey":{"enum":["#text","_text","text"],"description":"Text content key"},"ioTrimText":{"type":"boolean","description":"Trim whitespace in text content"},"ioForceArrays":{"type":"boolean","description":"Always represent child elements as arrays"},"ioIndent":{"enum":["2","4","tab","minified"],"description":"Indent"}},"required":["ioXmlSource"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutputJson":{"type":"string","description":"JSON output"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/volume-converter":{"post":{"operationId":"run_volume_converter","summary":"Volume Converter","tags":["Converters"],"description":"Convert volume between liters, milliliters, cubic meters, US and Imperial cups/pints/quarts/gallons, and 6 other units. Enter one value and pick its unit, then either see the equivalent in every unit at once or pick a single target unit.\n\n[Try Volume Converter in your browser →](https://iotools.cloud/tool/volume-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioValue":{"type":"number","description":"Amount"},"ioFromUnit":{"enum":["milliliter","liter","cubic_centimeter","cubic_meter","us_teaspoon","us_tablespoon","us_fluid_ounce","us_cup","us_pint","us_quart","us_gallon","imp_fluid_ounce","imp_pint","imp_gallon","cubic_inch","cubic_foot"],"description":"Convert from"},"ioToUnit":{"enum":["all","milliliter","liter","cubic_centimeter","cubic_meter","us_teaspoon","us_tablespoon","us_fluid_ounce","us_cup","us_pint","us_quart","us_gallon","imp_fluid_ounce","imp_pint","imp_gallon","cubic_inch","cubic_foot"],"description":"Convert to"},"ioPrecision":{"enum":["0","2","4","6","8","10"],"description":"Decimal precision"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Result"},"ioTable":{"type":"string","description":"Converted to every unit"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/weight-converter":{"post":{"operationId":"run_weight_converter","summary":"Weight Converter","tags":["Converters"],"description":"Convert weight and mass between kilograms, grams, pounds, ounces, stone, tonnes, carats, and 10 other units. Enter one value and pick its unit, then either see the equivalent in every unit at once or pick a single target unit.\n\n[Try Weight Converter in your browser →](https://iotools.cloud/tool/weight-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioValue":{"type":"number","description":"Amount"},"ioFromUnit":{"enum":["kilogram","gram","milligram","microgram","tonne","pound","ounce","stone","ton","metric_ton","carat","atomic_mass_unit","long_ton","short_hundredweight","long_hundredweight","pennyweight","grain"],"description":"Convert from"},"ioToUnit":{"enum":["all","kilogram","gram","milligram","microgram","tonne","pound","ounce","stone","ton","metric_ton","carat","atomic_mass_unit","long_ton","short_hundredweight","long_hundredweight","pennyweight","grain"],"description":"Convert to"},"ioPrecision":{"enum":["0","2","4","6","8","10"],"description":"Decimal precision"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Result"},"ioTable":{"type":"string","description":"Converted to every unit"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/yaml-to-json-converter":{"post":{"operationId":"run_yaml_to_json_converter","summary":"YAML to JSON Converter","tags":["Converters"],"description":"Convert YAML to formatted JSON. Understands nested mappings, sequences, quoted scalars, block scalars and flow collections, and reports the line number when the YAML is invalid. Runs entirely in your browser.\n\n[Try YAML to JSON Converter in your browser →](https://iotools.cloud/tool/yaml-to-json-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioYamlSource":{"type":"string","description":"YAML input"}},"required":["ioYamlSource"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutputJson":{"type":"string","description":"JSON output"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/yaml-to-toml-converter":{"post":{"operationId":"run_yaml_to_toml_converter","summary":"YAML to TOML Converter","tags":["Converters"],"description":"Convert YAML documents to TOML — parses YAML and re-emits it as TOML 1.0, wrapping root-level arrays in an items table since TOML requires a table at the root.\n\n[Try YAML to TOML Converter in your browser →](https://iotools.cloud/tool/yaml-to-toml-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioYamlSource":{"type":"string","description":"YAML input"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutputToml":{"type":"string","description":"Output TOML"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/yaml-to-xml":{"post":{"operationId":"run_yaml_to_xml","summary":"YAML to XML Converter","tags":["Converters"],"description":"Convert YAML documents to XML with configurable root element name, array handling (repeated elements or indexed), null handling, CDATA wrapping and indentation.\n\n[Try YAML to XML Converter in your browser →](https://iotools.cloud/tool/yaml-to-xml/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioYamlSource":{"type":"string","description":"YAML Input"},"ioRootElement":{"type":"string","description":"Root element name"},"ioArrayHandling":{"enum":["repeated","indexed"],"description":"Array handling"},"ioIndent":{"enum":["2","4","tab"],"description":"Indent"},"ioXmlDeclaration":{"type":"boolean","description":"Include XML declaration"},"ioNullHandling":{"enum":["empty","omit","xsi-nil"],"description":"Null handling"},"ioCdataStrings":{"type":"boolean","description":"Wrap string values in CDATA"},"ioPrettyPrint":{"type":"boolean","description":"Pretty print"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutputXml":{"type":"string","description":"XML Output"},"ioSummary":{"type":"string","description":"Summary"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/text-to-unicode-converter":{"post":{"operationId":"run_text_to_unicode_converter","summary":"Text to Unicode Converter","tags":["Converters"],"description":"Convert text into Unicode escape notation — JavaScript-style \\uXXXX escapes, HTML numeric character entities (&#NNN;), and CSS \\XXXX escapes — all at once, entirely in your browser.\n\n[Try Text to Unicode Converter in your browser →](https://iotools.cloud/tool/text-to-unicode-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioText":{"type":"string","description":"Text"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioUnicodeEscaped":{"type":"string","description":"Unicode Escaped"},"ioHtmlEntities":{"type":"string","description":"HTML Entities"},"ioCssUnicode":{"type":"string","description":"CSS Unicode"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/tab-to-space-converter":{"post":{"operationId":"run_tab_to_space_converter","summary":"Tab to Space Converter","tags":["Converters"],"description":"Replace every tab character in your text with a fixed number of spaces. Runs entirely in your browser.\n\n[Try Tab to Space Converter in your browser →](https://iotools.cloud/tool/tab-to-space-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioOriginalText":{"type":"string","description":"Enter your text here"},"ioTabSize":{"type":"number","description":"Tab Size","minimum":1,"maximum":8}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioUpdatedText":{"type":"string","description":"Converted Text"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/space-to-tab-converter":{"post":{"operationId":"run_space_to_tab_converter","summary":"Space to Tab Converter","tags":["Converters"],"description":"Replace every run of a fixed number of spaces in your text with a tab character. Runs entirely in your browser.\n\n[Try Space to Tab Converter in your browser →](https://iotools.cloud/tool/space-to-tab-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioOriginalText":{"type":"string","description":"Enter your text here"},"ioTabSize":{"type":"number","description":"Tab Size","minimum":1,"maximum":8}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioUpdatedText":{"type":"string","description":"Converted Text"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/sort-list":{"post":{"operationId":"run_sort_list","summary":"Sort List","tags":["Converters"],"description":"Sort the lines of a list alphabetically or numerically, with optional case-sensitivity, leading-number detection, and reverse order. Runs entirely in your browser.\n\n[Try Sort List in your browser →](https://iotools.cloud/tool/sort-list/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioOriginalList":{"type":"string","description":"Original List"},"ioReverseOrder":{"type":"boolean","description":"Reverse Order"},"ioCaseSensitive":{"type":"boolean","description":"Case-sensitive"},"ioDetectNumbers":{"type":"boolean","description":"Detect numbers"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSortedList":{"type":"string","description":"Sorted List"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/reverse-list":{"post":{"operationId":"run_reverse_list","summary":"Reverse List","tags":["Converters"],"description":"Reverse the order of items in a list — one per line, comma-separated, or space-separated. Empty entries are dropped. Runs entirely in your browser.\n\n[Try Reverse List in your browser →](https://iotools.cloud/tool/reverse-list/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioOriginalList":{"type":"string","description":"Original List"},"ioSeparator":{"enum":["\n",","," "],"description":"Separator"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioReversedList":{"type":"string","description":"Reversed List"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/text-to-ascii-binary":{"post":{"operationId":"run_text_to_ascii_binary","summary":"Text to ASCII Binary","tags":["Converters"],"description":"Convert plain text to its binary representation — one zero-padded 8-bit group per byte, space-separated. UTF-8 aware, so non-ASCII characters convert to clean byte groups.\n\n[Try Text to ASCII Binary in your browser →](https://iotools.cloud/tool/text-to-ascii-binary/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Text to convert"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioBinaryOutput":{"type":"string","description":"Binary"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/shoe-clothing-size-converter":{"post":{"operationId":"run_shoe_clothing_size_converter","summary":"Shoe & Clothing Size Converter","tags":["Converters"],"description":"Convert shoe and clothing sizes across US, UK, EU, JP, CN and letter systems. Pick a category (men's/women's/kids' shoes, tops, pants or bras), enter the size you know, and see every regional equivalent instantly.\n\n[Try Shoe & Clothing Size Converter in your browser →](https://iotools.cloud/tool/shoe-clothing-size-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCategory":{"enum":["shoes_men","shoes_women","shoes_kids","tops_men","tops_women","pants_men","pants_women","bras_band","bras_cup"],"description":"Category"},"ioSystem":{"enum":["us","uk","eu","jp","cn","letter"],"description":"Sizing System"},"ioSize":{"type":"string","description":"Your Size"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string"},"ioNote":{"type":"string","description":"Notes"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/small-caps-generator":{"post":{"operationId":"run_small_caps_generator","summary":"Small Caps Generator","tags":["Converters"],"description":"Convert text into small caps (ꜱᴍᴀʟʟ ᴄᴀᴘꜱ) using Unicode look-alike characters you can copy and paste into social media bios, posts and usernames. Every letter maps to its small-capital glyph; digits, spaces and punctuation pass through unchanged. Runs entirely in your browser.\n\n[Try Small Caps Generator in your browser →](https://iotools.cloud/tool/small-caps-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInput":{"type":"string","description":"Text"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Small Caps Text"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/sql-parameterizer":{"post":{"operationId":"run_sql_parameterizer","summary":"SQL Parameterizer","tags":["Converters"],"description":"Convert a SQL query with hardcoded values into a parameterized statement with bind placeholders ($1/$2, ?, or :p1/:p2) plus the extracted values as a JSON array. A deterministic tokenizer skips comments, identifiers, and keywords so only real string and numeric literals are replaced.\n\n[Try SQL Parameterizer in your browser →](https://iotools.cloud/tool/sql-parameterizer/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputSql":{"type":"string","description":"SQL With Hardcoded Values"},"ioPlaceholderStyle":{"enum":["dollar","question","named"],"description":"Placeholder Style"},"ioParamStrings":{"type":"boolean","description":"Parameterize string literals"},"ioParamNumbers":{"type":"boolean","description":"Parameterize numeric literals"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutputSql":{"type":"string","description":"Parameterized SQL"},"ioOutputValues":{"type":"string","description":"Extracted Values (JSON array)"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/svg-to-jsx-converter":{"post":{"operationId":"run_svg_to_jsx_converter","summary":"SVG to JSX Converter","tags":["Converters"],"description":"Convert raw SVG markup into a ready-to-use React component. Renames attributes to their JSX form (class → className, stroke-width → strokeWidth, xlink:href → xlinkHref), turns inline style strings into style objects, and wraps everything in a component with optional TypeScript, forwardRef, size props, and prop spreading.\n\n[Try SVG to JSX Converter in your browser →](https://iotools.cloud/tool/svg-to-jsx-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComponentName":{"type":"string","description":"Component Name"},"ioSvgInput":{"type":"string","description":"SVG Markup"},"ioUseTypeScript":{"type":"boolean","description":"TypeScript (add typed SVGProps)"},"ioUseForwardRef":{"type":"boolean","description":"Wrap in React.forwardRef"},"ioStripSize":{"type":"boolean","description":"Replace width/height with props (scalable icon)"},"ioExpandProps":{"type":"boolean","description":"Spread extra props onto the root &lt;svg>"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCodeOutput":{"type":"string","description":"React Component"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/table-to-markdown-converter":{"post":{"operationId":"run_table_to_markdown_converter","summary":"Table to Markdown Converter","tags":["Converters"],"description":"Convert an HTML table, CSV, or TSV into a GitHub-Flavored Markdown table. Pick the first row as the header, choose column alignment, and toggle padded or compact output. Pipe characters in cells are escaped automatically.\n\n[Try Table to Markdown Converter in your browser →](https://iotools.cloud/tool/table-to-markdown-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputMode":{"enum":["html","csv","tsv"],"description":"Input Format"},"ioInputTable":{"type":"string","description":"Table Input"},"ioFirstRowHeader":{"type":"boolean","description":"First Row as Header"},"ioAlignment":{"enum":["left","center","right"],"description":"Column Alignment"},"ioCompactMode":{"type":"boolean","description":"Compact Mode (No Column Padding)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioMarkdownOutput":{"type":"string","description":"Markdown Output"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/tailwind-classes-to-css":{"post":{"operationId":"run_tailwind_classes_to_css","summary":"Tailwind Classes to CSS","tags":["Converters"],"description":"Convert a list of Tailwind CSS utility classes into the equivalent plain CSS rules. Supports layout, spacing, sizing, color, typography, borders, shadows, transforms, and state/responsive variants (hover, md, dark, etc.).\n\n[Try Tailwind Classes to CSS in your browser →](https://iotools.cloud/tool/tailwind-classes-to-css/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioTailwindInput":{"type":"string","description":"Tailwind Classes"},"ioSelector":{"type":"string","description":"CSS Selector"}},"required":["ioTailwindInput"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCssOutput":{"type":"string","description":"Plain CSS"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/textile-yarn-converter":{"post":{"operationId":"run_textile_yarn_converter","summary":"Textile Yarn Converter","tags":["Converters"],"description":"Convert knitting needle and crochet hook sizes between US, UK/Canada, metric (mm) and Japanese systems, and look up Craft Yarn Council yarn-weight categories with their recommended gauge, needle and hook sizes.\n\n[Try Textile Yarn Converter in your browser →](https://iotools.cloud/tool/textile-yarn-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCategory":{"enum":["knitting-needle","crochet-hook","yarn-weight"],"description":"What to convert"},"ioValue":{"type":"string","description":"Size"},"ioNeedleSystem":{"enum":["metric","us","uk","japanese"],"description":"System"},"ioCrochetSystem":{"enum":["metric","us-letter","uk","japanese"],"description":"System"},"ioYarnLookup":{"enum":["0","1","2","3","4","5","6","7"],"description":"Yarn weight"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Result"},"ioEquivalents":{"type":"string","description":"Equivalents"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/tsv-to-json":{"post":{"operationId":"run_tsv_to_json","summary":"TSV to JSON Converter","tags":["Converters"],"description":"Convert tab-separated values to JSON. Parses quoted fields with embedded tabs and newlines, optionally treats the first row as headers, and infers numbers, booleans and null. Outputs an array of objects or array of arrays, pretty or minified. Runs entirely in your browser.\n\n[Try TSV to JSON Converter in your browser →](https://iotools.cloud/tool/tsv-to-json/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioTsvSource":{"type":"string","description":"TSV input"},"ioFirstRowHeaders":{"type":"boolean","description":"First row contains headers"},"ioTypeInference":{"type":"boolean","description":"Type inference (numbers, booleans, null)"},"ioOutputFormat":{"enum":["objects","arrays"],"description":"Output format"},"ioEmptyValues":{"enum":["null","empty","exclude"],"description":"Empty values as"},"ioIndent":{"enum":["2","4","tab","minified"],"description":"Indent"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutputJson":{"type":"string","description":"JSON output"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/typescript-type-stripper":{"post":{"operationId":"run_typescript_type_stripper","summary":"TypeScript Type Stripper","tags":["Converters"],"description":"Strip TypeScript type annotations from source code and get back plain JavaScript — either keeping modern syntax intact, or downlevel-transpiled to ES2020/ES2017/ES5. Uses the real TypeScript compiler (transpileModule), entirely in your browser.\n\n[Try TypeScript Type Stripper in your browser →](https://iotools.cloud/tool/typescript-type-stripper/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioTsInput":{"type":"string","description":"TypeScript source code"},"ioTarget":{"enum":["strip","es2020","es2017","es5"],"description":"Output target"},"ioJsxMode":{"enum":["preserve","react","none"],"description":"JSX handling"},"ioPreserveJsdoc":{"type":"boolean","description":"Preserve JSDoc comments"},"ioRemoveComments":{"type":"boolean","description":"Remove all comments"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioJsOutput":{"type":"string","description":"Plain JavaScript output"},"ioSummary":{"type":"string","description":"Summary"},"ioDiagnostics":{"type":"string","description":"Diagnostics"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/unified-color-space-converter":{"post":{"operationId":"run_unified_color_space_converter","summary":"Unified Color Space Converter","tags":["Converters"],"description":"Paste one color in any format — HEX, RGB, HSL, HSV/HSB, CMYK, LAB, LCH, XYZ, Oklab, or a CSS name — and instantly see its equivalent in every other color space, with a live swatch and the nearest named color.\n\n[Try Unified Color Space Converter in your browser →](https://iotools.cloud/tool/unified-color-space-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioColorInput":{"type":"string","description":"Color Value"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioDetected":{"type":"string","description":"Detected Format"},"ioHex":{"type":"string","description":"HEX"},"ioRgb":{"type":"string","description":"RGB"},"ioHsl":{"type":"string","description":"HSL"},"ioHsv":{"type":"string","description":"HSV / HSB"},"ioCmyk":{"type":"string","description":"CMYK"},"ioLab":{"type":"string","description":"CIE LAB"},"ioLch":{"type":"string","description":"LCH"},"ioXyz":{"type":"string","description":"CIE XYZ (D65)"},"ioOklab":{"type":"string","description":"Oklab"},"ioNamed":{"type":"string","description":"Nearest CSS Name"},"ioSwatchHtml":{"type":"string","description":"Swatch HTML"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/xml-to-csv-converter":{"post":{"operationId":"run_xml_to_csv_converter","summary":"XML to CSV Converter","tags":["Converters"],"description":"Convert XML with repeating elements into CSV. The repeating row element is auto-detected (or set it yourself), attributes become columns with a configurable prefix, repeated child tags join into one cell, and the header row is the union of every column seen. Runs entirely in your browser.\n\n[Try XML to CSV Converter in your browser →](https://iotools.cloud/tool/xml-to-csv-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioXmlSource":{"type":"string","description":"XML input"},"ioRowElement":{"type":"string","description":"Row element"},"ioDelimiter":{"enum":[",",";","tab","|"],"description":"Delimiter"},"ioLineEnding":{"enum":["lf","crlf"],"description":"Line ending"},"ioIncludeHeaders":{"type":"boolean","description":"Include header row"},"ioIncludeAttributes":{"type":"boolean","description":"Include XML attributes as columns"},"ioAttributePrefix":{"type":"string","description":"Attribute prefix"},"ioTrimText":{"type":"boolean","description":"Trim whitespace in values"}},"required":["ioXmlSource"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Summary"},"ioOutputCsv":{"type":"string","description":"CSV output"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/xml-to-yaml-converter":{"post":{"operationId":"run_xml_to_yaml_converter","summary":"XML to YAML Converter","tags":["Converters"],"description":"Convert XML to YAML. Element names become map keys, attributes get a configurable prefix (or can be dropped entirely), text content gets a configurable key name, and repeated sibling elements become a YAML sequence automatically — with an option to force every element into a sequence so the shape never depends on how many times it repeats. Runs entirely in your browser.\n\n[Try XML to YAML Converter in your browser →](https://iotools.cloud/tool/xml-to-yaml-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioXmlSource":{"type":"string","description":"XML input"},"ioIncludeAttributes":{"type":"boolean","description":"Preserve XML attributes"},"ioAttributePrefix":{"enum":["@","_",""],"description":"Attribute prefix"},"ioTextKey":{"enum":["#text","_text","text"],"description":"Text content key"},"ioStripNamespaces":{"type":"boolean","description":"Strip namespace prefixes"},"ioTrimText":{"type":"boolean","description":"Trim whitespace in text content"},"ioForceArrays":{"type":"boolean","description":"Always represent child elements as arrays"},"ioIndent":{"enum":["2","4"],"description":"Indent"}},"required":["ioXmlSource"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutputYaml":{"type":"string","description":"YAML output"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/access-log-formatter":{"post":{"operationId":"run_access_log_formatter","summary":"Access Log Formatter","tags":["Formatters"],"description":"Parse Apache/Nginx access log lines (Common Log Format or Combined Log Format) into a structured, filterable table — extract the IP, timestamp, method, path, status, bytes, referrer and user-agent from raw log text.\n\n[Try Access Log Formatter in your browser →](https://iotools.cloud/tool/access-log-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioRawLog":{"type":"string","description":"Raw Access Log"},"ioLogFormat":{"enum":["auto","clf","eclf"],"description":"Log Format"},"ioStatusFilter":{"enum":["all","1xx","2xx","3xx","4xx","5xx"],"description":"Status Filter"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Parse Summary"},"ioLogTable":{"type":"string","description":"Parsed Log Entries"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ansi-escape-stripper":{"post":{"operationId":"run_ansi_escape_stripper","summary":"ANSI Escape Stripper","tags":["Formatters"],"description":"Remove ANSI escape codes — terminal color and style codes, cursor-movement sequences, and OSC sequences — from pasted terminal output or CI logs, leaving plain text.\n\n[Try ANSI Escape Stripper in your browser →](https://iotools.cloud/tool/ansi-escape-stripper/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Input Text"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Result"},"ioStats":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ansible-playbook-yaml-formatter":{"post":{"operationId":"run_ansible_playbook_yaml_formatter","summary":"Ansible Playbook YAML Formatter","tags":["Formatters"],"description":"Clean up messy Ansible playbook, role, or task-list YAML by normalizing indentation to a consistent 2- or 4-space step and tidying list-item dashes. Runs entirely in your browser — nothing is uploaded.\n\n[Try Ansible Playbook YAML Formatter in your browser →](https://iotools.cloud/tool/ansible-playbook-yaml-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputYaml":{"type":"string","description":"Ansible Playbook YAML"},"ioIndentSize":{"enum":["2","4"],"description":"Indent Size"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Formatted YAML"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/apache-avro-schema-formatter-validator":{"post":{"operationId":"run_apache_avro_schema_formatter_validator","summary":"Apache Avro Schema Formatter & Validator","tags":["Formatters"],"description":"Validate an Apache Avro schema (JSON) against the Avro specification — missing type/fields/name, unknown types, invalid names, duplicate named types and malformed unions all get a clear message with the exact field path — then pretty-print it with 2 or 4-space indentation. Runs entirely in your browser.\n\n[Try Apache Avro Schema Formatter & Validator in your browser →](https://iotools.cloud/tool/apache-avro-schema-formatter-validator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSchemaInput":{"type":"string","description":"Avro Schema (JSON)"},"ioIndent":{"enum":["2","4"],"description":"Indent"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Validation Result"},"ioOutput":{"type":"string","description":"Formatted Schema"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/apache-httpd-config-formatter":{"post":{"operationId":"run_apache_httpd_config_formatter","summary":"Apache httpd Config Formatter","tags":["Formatters"],"description":"Format and re-indent Apache httpd.conf / VirtualHost configuration text. Nested &lt;Directory>, &lt;Location>, &lt;IfModule> and other blocks get consistent indentation, one directive per line, with comments preserved.\n\n[Try Apache httpd Config Formatter in your browser →](https://iotools.cloud/tool/apache-httpd-config-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputConfig":{"type":"string","description":"Apache Config"},"ioIndentSize":{"enum":["2","4"],"description":"Indent Size"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Formatted Config"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/code-syntax-highlighter":{"post":{"operationId":"run_code_syntax_highlighter","summary":"Code Syntax Highlighter","tags":["Formatters"],"description":"Paste any code snippet and view it instantly with colorized syntax highlighting, then copy or download the result. Supports JavaScript, TypeScript, Python, PHP, HTML, CSS, JSON, YAML, SQL, Bash, Go, Rust, Java, C, C++, C#, Ruby, Swift, Kotlin, Markdown, XML and more.\n\n[Try Code Syntax Highlighter in your browser →](https://iotools.cloud/tool/code-syntax-highlighter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputCode":{"type":"string","description":"Code"},"ioLanguage":{"enum":["javascript","typescript","python","php","html","css","json","yaml","sql","bash","go","rust","java","c","cpp","csharp","ruby","swift","kotlin","markdown","xml","plaintext"],"description":"Language"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutputCode":{"type":"string","description":"Highlighted Code"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/cpp-code-formatter":{"post":{"operationId":"run_cpp_code_formatter","summary":"C++ Code Formatter","tags":["Formatters"],"description":"Re-indent C and C++ source code by tracking brace ({ }) nesting depth — every block gets consistent indentation, with comments and string literals left untouched.\n\n[Try C++ Code Formatter in your browser →](https://iotools.cloud/tool/cpp-code-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputCode":{"type":"string","description":"C / C++ Code"},"ioIndentSize":{"enum":["2","4"],"description":"Indent Size"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Formatted Code"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/css-email-inliner":{"post":{"operationId":"run_css_email_inliner","summary":"CSS Email Inliner","tags":["Formatters"],"description":"Inline CSS &lt;style> block rules into each matching HTML tag's style attribute, for email HTML where most clients strip &lt;style> tags. Supports simple tag, class, ID, and tag+class selectors — no descendant combinators, pseudo-classes, or specificity cascade.\n\n[Try CSS Email Inliner in your browser →](https://iotools.cloud/tool/css-email-inliner/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioHtmlInput":{"type":"string","description":"HTML with &lt;style> Block"},"ioKeepUnsupportedRules":{"type":"boolean","description":"Keep unsupported rules (media queries, pseudo-classes, complex selectors) in a &lt;style> block"},"ioRemoveClassAttrs":{"type":"boolean","description":"Strip class attributes from output"}},"required":["ioHtmlInput"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Inlined HTML"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/css-minifier-beautifier":{"post":{"operationId":"run_css_minifier_beautifier","summary":"CSS Minifier & Beautifier","tags":["Formatters"],"description":"Minify CSS to shrink stylesheet size, or beautify it back into readable, indented code. Strings, url() values and /*! bang comments are preserved, and the spaces inside calc() are never broken.\n\n[Try CSS Minifier & Beautifier in your browser →](https://iotools.cloud/tool/css-minifier-beautifier/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCss":{"type":"string","description":"CSS"},"ioMode":{"enum":["minify","keep-breaks","beautify"],"description":"Format"},"ioIndent":{"enum":["2","4","tab"],"description":"Indentation"},"ioKeepComments":{"type":"boolean","description":"Keep comments when minifying"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/csv-formatter":{"post":{"operationId":"run_csv_formatter","summary":"CSV Formatter","tags":["Formatters"],"description":"Clean up messy CSV data — auto-detect or choose the input delimiter, trim stray whitespace, and re-serialize with a consistent delimiter and RFC 4180 quoting (quote only when needed, or always).\n\n[Try CSV Formatter in your browser →](https://iotools.cloud/tool/csv-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCsvInput":{"type":"string","description":"CSV data"},"ioInputDelimiter":{"enum":["auto",",",";","\t"],"description":"Input delimiter"},"ioOutputDelimiter":{"enum":[",",";","\t"],"description":"Output delimiter"},"ioQuoteStyle":{"enum":["as-needed","always"],"description":"Quote style"},"ioTrimWhitespace":{"type":"boolean","description":"Trim whitespace around fields"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioFormattedCsv":{"type":"string","description":"Formatted CSV"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/dart-code-formatter":{"post":{"operationId":"run_dart_code_formatter","summary":"Dart Code Formatter","tags":["Formatters"],"description":"Format and beautify Dart / Flutter source with dart_style-inspired rules — re-indent by bracket depth, normalize operator spacing, sort & group imports, and add trailing commas to multi-line lists.\n\n[Try Dart Code Formatter in your browser →](https://iotools.cloud/tool/dart-code-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioDartInput":{"type":"string","description":"Dart Code"},"ioIndentSize":{"enum":["2","4","tab"],"description":"Indent Size"},"ioSortImports":{"type":"boolean","description":"Sort and group directives (dart:, package:, relative)"},"ioTrailingCommas":{"type":"boolean","description":"Add trailing commas in multi-line argument / parameter lists"},"ioRemoveBlankLines":{"type":"boolean","description":"Collapse 3+ blank lines into a single blank line"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Formatted Code"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/docker-compose-yaml-formatter":{"post":{"operationId":"run_docker_compose_yaml_formatter","summary":"Docker Compose YAML Formatter","tags":["Formatters"],"description":"Clean up a messy docker-compose.yml by normalizing indentation to a consistent 2- or 4-space step and tidying list-item dashes. Runs entirely in your browser — nothing is uploaded.\n\n[Try Docker Compose YAML Formatter in your browser →](https://iotools.cloud/tool/docker-compose-yaml-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputCompose":{"type":"string","description":"docker-compose.yml"},"ioIndentSize":{"enum":["2","4"],"description":"Indent Size"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Formatted docker-compose.yml"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/elixir-code-formatter":{"post":{"operationId":"run_elixir_code_formatter","summary":"Elixir Code Formatter","tags":["Formatters"],"description":"Format and beautify Elixir source code — operator/comma spacing, do/fn/end block-depth indentation, blank-line normalization around def/defmodule, and optional alphabetical sorting of alias/import/require/use groups, matching mix format conventions. Includes basic bracket and block-balance validation. Runs entirely in your browser.\n\n[Try Elixir Code Formatter in your browser →](https://iotools.cloud/tool/elixir-code-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioElixirInput":{"type":"string","description":"Elixir Source Code"},"ioMaxLineLength":{"type":"number","description":"Max Line Length","minimum":40,"maximum":200},"ioSortAliases":{"type":"boolean","description":"Sort & Group alias / import / require / use blocks"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioValidation":{"type":"string","description":"Validation"},"ioFormattedOutput":{"type":"string","description":"Formatted Elixir Code"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/env-file-parser":{"post":{"operationId":"run_env_file_parser","summary":"Env File Parser","tags":["Formatters"],"description":"Parse a .env (dotenv) file into clean key/value pairs and re-emit it as normalized ENV, a JSON object, or shell export statements — sorted, de-duplicated, with a report of missing '=', duplicate keys and empty values. Optionally mask secret values.\n\n[Try Env File Parser in your browser →](https://iotools.cloud/tool/env-file-parser/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioEnvInput":{"type":"string","description":"ENV Content"},"ioOutputFormat":{"enum":["clean","json","shell"],"description":"Output Format"},"ioMaskValues":{"type":"boolean","description":"Mask Values"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Output"},"ioIssues":{"type":"string","description":"Parse Issues"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/git-log-formatter-prettifier":{"post":{"operationId":"run_git_log_formatter_prettifier","summary":"Git Log Formatter / Prettifier","tags":["Formatters"],"description":"Turn raw `git log` output into a clean Markdown table, bullet list, one-line summary, or JSON. Parses the default commit/Author/Date block format, `--pretty=fuller`, and `--oneline`, with optional date reformatting (ISO, short, RFC 2822).\n\n[Try Git Log Formatter / Prettifier in your browser →](https://iotools.cloud/tool/git-log-formatter-prettifier/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioRawLog":{"type":"string","description":"Git Log Output"},"ioInputFormat":{"enum":["auto","block","oneline"],"description":"Input Format"},"ioDateFormat":{"enum":["original","iso","short","rfc"],"description":"Date Format"},"ioOutputStyle":{"enum":["markdown-table","markdown-list","oneline","json"],"description":"Output Style"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Parse Summary"},"ioFormatted":{"type":"string","description":"Formatted Output"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/go-formatter":{"post":{"operationId":"run_go_formatter","summary":"Go Formatter","tags":["Formatters"],"description":"Format and beautify Go source code — tab indentation derived from brace/paren depth, Go's mandatory same-line brace placement, unambiguous operator/comma spacing, composite-literal colon spacing, and optional stdlib/third-party import sorting — while leaving raw `backtick` strings and comments byte-for-byte untouched.\n\n[Try Go Formatter in your browser →](https://iotools.cloud/tool/go-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioGoInput":{"type":"string","description":"Go Source Code"},"ioSortImports":{"type":"boolean","description":"Sort & group imports (standard library / third-party)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Formatted Go Code"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/har-file-formatter":{"post":{"operationId":"run_har_file_formatter","summary":"HAR File Formatter","tags":["Formatters"],"description":"Parse and filter a HAR (HTTP Archive) file — search by URL, method, status class or content type, and see per-request size and timing in a sortable table.\n\n[Try HAR File Formatter in your browser →](https://iotools.cloud/tool/har-file-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioHarInput":{"type":"string","description":"HAR Content"},"ioFilterSearch":{"type":"string","description":"Search"},"ioFilterMethod":{"enum":["any","GET","POST","PUT","PATCH","DELETE","HEAD","OPTIONS"],"description":"Method"},"ioFilterStatus":{"enum":["any","2xx","3xx","4xx","5xx","failed"],"description":"Status"},"ioFilterType":{"enum":["any","document","xhr","script","stylesheet","image","font","media","other"],"description":"Type"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Summary"},"ioResults":{"type":"string","description":"Requests"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/htaccess-formatter":{"post":{"operationId":"run_htaccess_formatter","summary":".htaccess Formatter","tags":["Formatters"],"description":"Format and re-indent Apache .htaccess files. Nested &lt;IfModule>, &lt;FilesMatch>, &lt;Directory> and other sections get consistent indentation and single-spaced directives, with comments and quoted values preserved.\n\n[Try .htaccess Formatter in your browser →](https://iotools.cloud/tool/htaccess-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputHtaccess":{"type":"string","description":".htaccess Content"},"ioIndentSize":{"enum":["2","4"],"description":"Indent Size"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Formatted .htaccess"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/hjson-formatter-validator":{"post":{"operationId":"run_hjson_formatter_validator","summary":"HJSON Formatter & Validator","tags":["Formatters"],"description":"Convert between HJSON and JSON, and validate as you go. HJSON is a human-friendly superset of JSON — no required quotes on keys, // and # comments, multiline ''' strings and trailing commas are all allowed. Format HJSON into pretty or minified JSON, or the reverse, with adjustable indentation, key sorting and quote style, plus a clear error message (with line/column) on malformed input.\n\n[Try HJSON Formatter & Validator in your browser →](https://iotools.cloud/tool/hjson-formatter-validator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInput":{"type":"string","description":"HJSON or JSON Input"},"ioMode":{"enum":["hjson-to-json","json-to-hjson"],"description":"Convert Direction"},"ioIndent":{"enum":["2","4","tab","0"],"description":"Indent"},"ioSortKeys":{"type":"boolean","description":"Sort object keys alphabetically"},"ioQuoteStyle":{"enum":["min","keys","all"],"description":"Quote Style"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Output"},"ioStatus":{"type":"string","description":"Validation Status"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/html-formatter-beautifier":{"post":{"operationId":"run_html_formatter_beautifier","summary":"HTML Formatter & Beautifier","tags":["Formatters"],"description":"Format and beautify messy or minified HTML — re-indent nested tags by depth, keep attributes intact, and leave &lt;pre>, &lt;script>, &lt;style> and &lt;textarea> contents untouched. Runs entirely in your browser.\n\n[Try HTML Formatter & Beautifier in your browser →](https://iotools.cloud/tool/html-formatter-beautifier/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioHtmlSource":{"type":"string","description":"HTML"},"ioIndentation":{"enum":["  ","    ","\t"],"description":"Indentation"},"ioPreserveNewlines":{"type":"boolean","description":"Preserve existing blank lines"},"ioRemoveComments":{"type":"boolean","description":"Remove HTML comments"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioFormattedHtml":{"type":"string","description":"Formatted HTML"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/html-minifier":{"post":{"operationId":"run_html_minifier","summary":"HTML Minifier","tags":["Formatters"],"description":"Minify HTML by collapsing whitespace, removing comments and optionally minifying inline CSS and JavaScript. Content inside &lt;pre>, &lt;textarea>, &lt;script> and &lt;style> is never mangled, and conditional comments survive.\n\n[Try HTML Minifier in your browser →](https://iotools.cloud/tool/html-minifier/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioHtml":{"type":"string","description":"HTML"},"ioCollapseWhitespace":{"type":"boolean","description":"Collapse whitespace"},"ioRemoveComments":{"type":"boolean","description":"Remove HTML comments"},"ioRemoveAttributeQuotes":{"type":"boolean","description":"Remove quotes around attributes when possible"},"ioMinifyCSS":{"type":"boolean","description":"Minify CSS in &lt;style> and style attributes"},"ioMinifyJS":{"type":"boolean","description":"Minify JavaScript in &lt;script>"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Minified HTML"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ini-formatter":{"post":{"operationId":"run_ini_formatter","summary":"INI Formatter","tags":["Formatters"],"description":"Format and beautify INI / config files. Normalizes [section] headers and key = value spacing, trims trailing whitespace, and puts one blank line between sections. Optionally sorts keys alphabetically within each section. Comments and section order are preserved.\n\n[Try INI Formatter in your browser →](https://iotools.cloud/tool/ini-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputIni":{"type":"string","description":"INI Content"},"ioSortKeys":{"type":"boolean","description":"Sort keys alphabetically within each section"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Formatted INI"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/java-code-formatter":{"post":{"operationId":"run_java_code_formatter","summary":"Java Code Formatter","tags":["Formatters"],"description":"Format and beautify Java source code — re-indent by brace depth, normalize operator spacing, choose K&R or Allman brace style, and sort & group imports (java, javax, third-party, static).\n\n[Try Java Code Formatter in your browser →](https://iotools.cloud/tool/java-code-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioJavaInput":{"type":"string","description":"Java Code"},"ioIndent":{"enum":["2","4","8","tab"],"description":"Indent"},"ioBraceStyle":{"enum":["attach","allman"],"description":"Brace Style"},"ioSortImports":{"type":"boolean","description":"Sort and group imports (java, javax, third-party, static)"},"ioNormalizeBlankLines":{"type":"boolean","description":"Normalize blank lines (collapse long runs of blank lines)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Formatted Code"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/java-properties-file-formatter":{"post":{"operationId":"run_java_properties_file_formatter","summary":"Java .properties File Formatter","tags":["Formatters"],"description":"Format and beautify Java .properties files. Normalizes key=value / key:value / whitespace separators to a consistent one, fixes spacing, joins backslash line continuations, and preserves comments and \\uXXXX escapes. Optionally sort keys, align separators, remove duplicates, or strip comments.\n\n[Try Java .properties File Formatter in your browser →](https://iotools.cloud/tool/java-properties-file-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputProps":{"type":"string","description":".properties Content"},"ioSeparator":{"enum":["equals","colon","preserve"],"description":"Separator"},"ioSpacing":{"enum":["spaced","compact"],"description":"Spacing around separator"},"ioCommentStyle":{"enum":["preserve","hash","bang","strip"],"description":"Comments"},"ioSortKeys":{"type":"boolean","description":"Sort keys alphabetically"},"ioRemoveDuplicateKeys":{"type":"boolean","description":"Remove duplicate keys (keep last occurrence)"},"ioAlignKeys":{"type":"boolean","description":"Align separators into a column"},"ioCollapseBlankLines":{"type":"boolean","description":"Collapse multiple blank lines"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Formatted .properties"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/javascript-code-formatter":{"post":{"operationId":"run_javascript_code_formatter","summary":"JavaScript Code Formatter","tags":["Formatters"],"description":"Format and beautify messy or minified JavaScript — re-indent by brace depth, normalize spacing and quotes, pick 1TBS or Allman braces, and control semicolons and trailing commas. Runs entirely in your browser.\n\n[Try JavaScript Code Formatter in your browser →](https://iotools.cloud/tool/javascript-code-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioJsInput":{"type":"string","description":"JavaScript Code"},"ioIndentStyle":{"enum":["2sp","4sp","tab"],"description":"Indentation"},"ioQuoteStyle":{"enum":["single","double","preserve"],"description":"Quotes"},"ioSemicolons":{"enum":["always","never","preserve"],"description":"Semicolons"},"ioBraceStyle":{"enum":["attach","allman"],"description":"Brace Style"},"ioTrailingComma":{"enum":["none","es5","all"],"description":"Trailing Commas"},"ioPrintWidth":{"type":"number","description":"Print Width","minimum":40,"maximum":200},"ioCollapseBlankLines":{"type":"boolean","description":"Collapse 2+ blank lines into a single blank line"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Formatted Code"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/javascript-escape-unescape":{"post":{"operationId":"run_javascript_escape_unescape","summary":"JavaScript Escape / Unescape","tags":["Formatters"],"description":"Escape a string into a JavaScript string-literal-safe form (backslash-escaping quotes, backslashes, newlines, tabs, and control characters) or unescape JS escape sequences (\\n, \\t, \\xHH, \\uHHHH, \\u{...}) back into plain text.\n\n[Try JavaScript Escape / Unescape in your browser →](https://iotools.cloud/tool/javascript-escape-unescape/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Input Text"},"ioMode":{"enum":["escape","unescape"],"description":"Mode"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/javascript-minifier":{"post":{"operationId":"run_javascript_minifier","summary":"JavaScript Minifier","tags":["Formatters"],"description":"Minify JavaScript by stripping comments and every byte of unnecessary whitespace. Strings, template literals and regular expressions are left byte-identical, and line breaks that Automatic Semicolon Insertion depends on are preserved.\n\n[Try JavaScript Minifier in your browser →](https://iotools.cloud/tool/javascript-minifier/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioJs":{"type":"string","description":"JavaScript"},"ioRemoveComments":{"type":"boolean","description":"Remove comments"},"ioKeepLicense":{"type":"boolean","description":"Keep license comments"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Minified JavaScript"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/json-escape-unescape":{"post":{"operationId":"run_json_escape_unescape","summary":"JSON Escape / Unescape","tags":["Formatters"],"description":"Escape text into a safe JSON string value, or unescape a JSON-escaped string back to raw text. Uses the exact rules of the JSON spec (RFC 8259): quotes, backslashes, and every control character are escaped. Toggle whether the output is wrapped in double quotes as a full JSON string literal.\n\n[Try JSON Escape / Unescape in your browser →](https://iotools.cloud/tool/json-escape-unescape/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Input Text"},"ioMode":{"enum":["escape","unescape"],"description":"Mode"},"ioWrapQuotes":{"type":"boolean","description":"Wrap output in double quotes (full JSON string literal)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/json-flattener":{"post":{"operationId":"run_json_flattener","summary":"JSON Flattener","tags":["Formatters"],"description":"Flatten nested JSON into a single-level object with dot-and-bracket path keys (user.roles[0]), or unflatten flat keys back into nested JSON. Pick the key delimiter and get pretty-printed output.\n\n[Try JSON Flattener in your browser →](https://iotools.cloud/tool/json-flattener/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInput":{"type":"string","description":"JSON input"},"ioMode":{"enum":["flatten","unflatten"],"description":"Mode"},"ioDelimiter":{"enum":[".","_","/"],"description":"Key delimiter"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/json-schema-validator":{"post":{"operationId":"run_json_schema_validator","summary":"JSON Schema Validator","tags":["Formatters"],"description":"Validate a JSON document against a JSON Schema (Draft-07) and get every rule violation listed by its JSON-pointer path — missing required keys, wrong types, out-of-range numbers, failed patterns, enums, $ref definitions and oneOf/anyOf/allOf combinators. Runs entirely in your browser.\n\n[Try JSON Schema Validator in your browser →](https://iotools.cloud/tool/json-schema-validator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioJsonInput":{"type":"string","description":"JSON data"},"ioSchemaInput":{"type":"string","description":"JSON Schema"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Result"},"ioErrors":{"type":"string","description":"Violations"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/graphql-schema-formatter":{"post":{"operationId":"run_graphql_schema_formatter","summary":"GraphQL Schema Formatter","tags":["Formatters"],"description":"Validate and reformat GraphQL SDL (Schema Definition Language) — type, interface, enum, input, scalar, union and directive definitions. Reports the exact syntax error and line/column on invalid schemas, and reprints valid ones with consistent 2- or 4-space indentation, optionally sorting types and fields alphabetically.\n\n[Try GraphQL Schema Formatter in your browser →](https://iotools.cloud/tool/graphql-schema-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioGraphqlInput":{"type":"string","description":"GraphQL Schema (SDL)"},"ioIndentWidth":{"enum":["2","4"],"description":"Indent Width"},"ioSortAlphabetically":{"type":"boolean","description":"Sort Types & Fields Alphabetically"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Formatted Schema"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/toml-formatter":{"post":{"operationId":"run_toml_formatter","summary":"TOML Formatter","tags":["Formatters"],"description":"Pretty-print and reformat TOML with consistent spacing and table syntax. Optionally sort keys alphabetically, and get a clear error with line/column when the TOML is invalid. Runs entirely in your browser.\n\n[Try TOML Formatter in your browser →](https://iotools.cloud/tool/toml-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioTomlInput":{"type":"string","description":"TOML input"},"ioSortKeys":{"type":"boolean","description":"Sort keys alphabetically"}},"required":["ioTomlInput"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioFormattedToml":{"type":"string","description":"Formatted TOML"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/typescript-formatter":{"post":{"operationId":"run_typescript_formatter","summary":"TypeScript Code Formatter","tags":["Formatters"],"description":"Format and beautify TypeScript (.ts/.tsx) source with real Prettier — consistent indentation, quote style, semicolons and trailing commas. Free and private in your browser; also available as a paid API.\n\n[Try TypeScript Code Formatter in your browser →](https://iotools.cloud/tool/typescript-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"TypeScript Code"},"ioIndentWidth":{"enum":["2","4"],"description":"Indent width"},"ioUseTabs":{"type":"boolean","description":"Use tabs instead of spaces"},"ioSemicolons":{"type":"boolean","description":"Add semicolons"},"ioSingleQuote":{"type":"boolean","description":"Use single quotes"},"ioTrailingComma":{"enum":["all","es5","none"],"description":"Trailing commas"},"ioPrintWidth":{"type":"number","description":"Print width","minimum":40,"maximum":200}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Formatted Code"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/julia-code-formatter":{"post":{"operationId":"run_julia_code_formatter","summary":"Julia Code Formatter","tags":["Formatters"],"description":"Format and beautify Julia (.jl) source — re-indent by end-delimited blocks (function, if, for, struct, module), normalize spacing around operators and after commas, and optionally strip comments and collapse blank lines. Runs entirely in your browser.\n\n[Try Julia Code Formatter in your browser →](https://iotools.cloud/tool/julia-code-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioJuliaInput":{"type":"string","description":"Julia Code"},"ioIndentStyle":{"enum":["4","2","tab"],"description":"Indent Style"},"ioSpaceAroundOps":{"type":"boolean","description":"Spaces around binary operators (=, +, -, *, /, ==, ...)"},"ioPreserveComments":{"type":"boolean","description":"Preserve comments"},"ioCollapseBlankLines":{"type":"boolean","description":"Collapse multiple blank lines into one"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Formatted Code"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/kotlin-code-formatter":{"post":{"operationId":"run_kotlin_code_formatter","summary":"Kotlin Code Formatter","tags":["Formatters"],"description":"Format and beautify Kotlin source code — re-indent by brace depth, normalize operator and comma spacing, sort imports, and add trailing commas to multi-line lists. Runs entirely in your browser.\n\n[Try Kotlin Code Formatter in your browser →](https://iotools.cloud/tool/kotlin-code-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioKotlinInput":{"type":"string","description":"Kotlin Code"},"ioIndent":{"enum":["2","4","tab"],"description":"Indent Size"},"ioSortImports":{"type":"boolean","description":"Sort imports alphabetically"},"ioTrailingCommas":{"type":"boolean","description":"Add trailing commas in multi-line lists"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Formatted Code"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/kubernetes-yaml-formatter":{"post":{"operationId":"run_kubernetes_yaml_formatter","summary":"Kubernetes YAML Formatter","tags":["Formatters"],"description":"Clean up and beautify Kubernetes manifests: re-indent to a consistent 2- or 4-space step, optionally reorder keys into the conventional apiVersion → kind → metadata → spec order, and normalize quoting — across multi-document (---) files. Runs entirely in your browser; nothing is uploaded.\n\n[Try Kubernetes YAML Formatter in your browser →](https://iotools.cloud/tool/kubernetes-yaml-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputYaml":{"type":"string","description":"Kubernetes YAML"},"ioIndentSize":{"enum":["2","4"],"description":"Indent Size"},"ioSortKeys":{"type":"boolean","description":"Sort keys (Kubernetes order, then alphabetical)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioFormattedOutput":{"type":"string","description":"Formatted YAML"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/json-formatter":{"post":{"operationId":"run_json_formatter","summary":"JSON Formatter","tags":["Formatters"],"description":"Format, validate and minify JSON instantly. Pretty-print with 2 or 4 spaces or tabs, optionally sort keys alphabetically, and get a clear error message when the JSON is invalid.\n\n[Try JSON Formatter in your browser →](https://iotools.cloud/tool/json-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioJson":{"type":"string","description":"JSON input"},"ioIndent":{"enum":["2","4","tab","min"],"description":"Indentation"},"ioSortKeys":{"type":"boolean","description":"Sort keys alphabetically"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioFormatted":{"type":"string","description":"Formatted JSON"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/jsonnet-formatter-evaluator":{"post":{"operationId":"run_jsonnet_formatter_evaluator","summary":"Jsonnet Formatter & Evaluator","tags":["Formatters"],"description":"Format Jsonnet source with consistent indentation, or evaluate it to JSON — objects with inheritance (self/super), locals, functions, comprehensions, string interpolation, and a substantial subset of the std library. import/importstr are not supported (no filesystem access in-browser). Runs entirely in your browser.\n\n[Try Jsonnet Formatter & Evaluator in your browser →](https://iotools.cloud/tool/jsonnet-formatter-evaluator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioJsonnetInput":{"type":"string","description":"Jsonnet Source"},"ioJsonnetMode":{"enum":["evaluate","format"],"description":"Mode"},"ioJsonnetIndent":{"enum":["2","4","tab","0"],"description":"Indent"},"ioJsonnetSortKeys":{"type":"boolean","description":"Sort object keys alphabetically (evaluate only)"},"ioJsonnetStringOutput":{"type":"boolean","description":"Force string output — top-level result must be a string (evaluate only)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Output"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/json-minifier":{"post":{"operationId":"run_json_minifier","summary":"JSON Minifier","tags":["Formatters"],"description":"Minify JSON instantly — strip every space, tab and line break from a JSON document while keeping it valid and byte-for-byte equivalent. Paste JSON or drop a .json file; invalid JSON is reported with the exact parse error.\n\n[Try JSON Minifier in your browser →](https://iotools.cloud/tool/json-minifier/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioJson":{"type":"string","description":"JSON input"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioMinifiedJson":{"type":"string","description":"Minified JSON"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/line-affixer":{"post":{"operationId":"run_line_affixer","summary":"Line Affixer","tags":["Formatters"],"description":"Add a prefix and/or suffix to every line of text at once. Great for wrapping lines in quotes, building SQL IN-lists, adding bullets, or numbering lines. Use {n} in the prefix or suffix to insert the line number.\n\n[Try Line Affixer in your browser →](https://iotools.cloud/tool/line-affixer/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Original Text"},"ioPrefix":{"type":"string","description":"Prefix"},"ioSuffix":{"type":"string","description":"Suffix"},"ioNumberingFormat":{"enum":["1","0","01","00","001","000"],"description":"Numbering"},"ioTrimLines":{"type":"boolean","description":"Trim each line"},"ioSkipEmptyLines":{"type":"boolean","description":"Skip empty lines"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"New Text"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/lua-code-formatter":{"post":{"operationId":"run_lua_code_formatter","summary":"Lua Code Formatter","tags":["Formatters"],"description":"Format and beautify Lua source code — re-indent by block structure (function/if/for/while/repeat), normalize operator and comma spacing, and choose 2-space, 4-space, or tab indentation. Runs entirely in your browser.\n\n[Try Lua Code Formatter in your browser →](https://iotools.cloud/tool/lua-code-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioLuaInput":{"type":"string","description":"Lua Code"},"ioIndentStyle":{"enum":["2","4","tab"],"description":"Indent Style"},"ioPreserveComments":{"type":"boolean","description":"Preserve comments"},"ioCollapseBlankLines":{"type":"boolean","description":"Collapse multiple blank lines into one"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Formatted Code"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/makefile-formatter":{"post":{"operationId":"run_makefile_formatter","summary":"Makefile Formatter","tags":["Formatters"],"description":"Format and clean up GNU Makefiles. Converts space-indented recipe lines to the tabs Make requires, trims trailing whitespace, collapses extra blank lines, normalizes spacing around assignment operators (= := ?= +=), and optionally aligns consecutive variable assignments. Runs entirely in your browser.\n\n[Try Makefile Formatter in your browser →](https://iotools.cloud/tool/makefile-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMakefileInput":{"type":"string","description":"Makefile"},"ioTabWidth":{"enum":["8","4","2"],"description":"Tab Width"},"ioConvertSpacesToTabs":{"type":"boolean","description":"Convert leading spaces on recipe lines to a tab (required by Make)"},"ioTrimTrailing":{"type":"boolean","description":"Trim trailing whitespace"},"ioNormalizeBlanks":{"type":"boolean","description":"Normalize blank lines (max 2 consecutive)"},"ioCollapseAssignSpacing":{"type":"boolean","description":"Normalize spacing around assignment operators (= := ?= +=)"},"ioAlignAssignments":{"type":"boolean","description":"Align consecutive variable assignments"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioFormattedOutput":{"type":"string","description":"Formatted Makefile"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/markdown-table-formatter":{"post":{"operationId":"run_markdown_table_formatter","summary":"Markdown Table Formatter","tags":["Formatters"],"description":"Clean up and reformat a Markdown table: align columns, pad cells evenly, control the separator style and outer pipes, sort by any column, and export the same data as CSV, HTML or JSON.\n\n[Try Markdown Table Formatter in your browser →](https://iotools.cloud/tool/markdown-table-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputMarkdown":{"type":"string","description":"Markdown table"},"ioColumnAlignment":{"enum":["auto","left","center","right"],"description":"Column alignment"},"ioPadding":{"enum":["spaced","compact"],"description":"Padding"},"ioSeparatorStyle":{"enum":["full","minimal"],"description":"Separator style"},"ioSortByColumn":{"enum":["none","0","1","2","3","4","5","6","7","8","9"],"description":"Sort by column"},"ioTrimContent":{"type":"boolean","description":"Trim cell content"},"ioOuterPipes":{"type":"boolean","description":"Include outer pipes"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioFormattedOutput":{"type":"string","description":"Formatted table"},"ioValidation":{"type":"string","description":"Validation report"},"ioCsvOutput":{"type":"string","description":"CSV"},"ioHtmlOutput":{"type":"string","description":"HTML"},"ioJsonOutput":{"type":"string","description":"JSON"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ndjson-formatter-validator":{"post":{"operationId":"run_ndjson_formatter_validator","summary":"NDJSON Formatter & Validator","tags":["Formatters"],"description":"Validate newline-delimited JSON line-by-line (each bad line flagged, never crashing the rest), pretty-print or minify every record while keeping the NDJSON structure, and convert NDJSON to and from a JSON array. Optionally sort object keys.\n\n[Try NDJSON Formatter & Validator in your browser →](https://iotools.cloud/tool/ndjson-formatter-validator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioNdjsonInput":{"type":"string","description":"NDJSON Input"},"ioMode":{"enum":["validate","format","minify","to-array","from-array"],"description":"Mode"},"ioIndent":{"enum":["2","4","tab"],"description":"Indent"},"ioSkipBlankLines":{"type":"boolean","description":"Skip blank lines"},"ioSortKeys":{"type":"boolean","description":"Sort object keys alphabetically"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioReport":{"type":"string","description":"Report"},"ioOutput":{"type":"string","description":"Output"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/nginx-formatter":{"post":{"operationId":"run_nginx_formatter","summary":"Nginx Config Formatter","tags":["Formatters"],"description":"Format and re-indent nginx configuration files. Nested http, server, location, upstream and other blocks get consistent indentation and one directive per line, with quoted values and comments preserved.\n\n[Try Nginx Config Formatter in your browser →](https://iotools.cloud/tool/nginx-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputConfig":{"type":"string","description":"Nginx Config"},"ioIndentStyle":{"enum":["2","4","tab"],"description":"Indent Style"},"ioBraceStyle":{"enum":["same","next"],"description":"Brace Style"},"ioSemicolonSpacing":{"enum":["none","space"],"description":"Semicolon Spacing"},"ioNormalizeComments":{"type":"boolean","description":"Normalize comments (ensure space after #)"},"ioRemoveBlankLines":{"type":"boolean","description":"Remove extra blank lines"},"ioAlignDirectives":{"type":"boolean","description":"Align directive values"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioFormattedConfig":{"type":"string","description":"Formatted Config"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/openapi-swagger-validator":{"post":{"operationId":"run_openapi_swagger_validator","summary":"OpenAPI / Swagger Validator","tags":["Formatters"],"description":"Validate an OpenAPI 3.x or Swagger 2.0 spec (JSON or YAML) for structural and semantic errors — missing info/paths, invalid HTTP methods, duplicate operationIds, undeclared path parameters, and unresolved local $ref pointers. Every issue is reported with its JSON-pointer path. Runs entirely in your browser.\n\n[Try OpenAPI / Swagger Validator in your browser →](https://iotools.cloud/tool/openapi-swagger-validator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSpecInput":{"type":"string","description":"OpenAPI / Swagger Spec (JSON or YAML)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Result"},"ioIssues":{"type":"string","description":"Issues"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/package-json-formatter-key-sorter":{"post":{"operationId":"run_package_json_formatter_key_sorter","summary":"package.json Formatter & Key Sorter","tags":["Formatters"],"description":"Pretty-print a package.json and reorder its keys into the conventional npm order (name, version, description, ... dependencies, devDependencies, ...). Sorts dependencies, devDependencies, peerDependencies and similar maps alphabetically by package name, and preserves any non-standard fields at the end.\n\n[Try package.json Formatter & Key Sorter in your browser →](https://iotools.cloud/tool/package-json-formatter-key-sorter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioPackageJsonInput":{"type":"string","description":"package.json Input"},"ioIndentStyle":{"enum":["2","4","tab"],"description":"Indent"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioPackageJsonOutput":{"type":"string","description":"Formatted package.json"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/php-code-formatter":{"post":{"operationId":"run_php_code_formatter","summary":"PHP Code Formatter","tags":["Formatters"],"description":"Format and beautify PHP source code - re-indent by brace depth, normalize operator spacing, and choose PSR-12 mixed, K&R, or Allman brace style. Handles variables, string interpolation, heredoc/nowdoc, and -> / :: operators.\n\n[Try PHP Code Formatter in your browser →](https://iotools.cloud/tool/php-code-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioPhpInput":{"type":"string","description":"PHP Code"},"ioIndent":{"enum":["2","4","8","tab"],"description":"Indent"},"ioBraceStyle":{"enum":["mixed","attach","allman"],"description":"Brace Style"},"ioNormalizeBlankLines":{"type":"boolean","description":"Normalize blank lines (collapse long runs of blank lines)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Formatted Code"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/prisma-schema-formatter":{"post":{"operationId":"run_prisma_schema_formatter","summary":"Prisma Schema Formatter","tags":["Formatters"],"description":"Format and beautify Prisma .prisma schema files — re-indent model/enum/datasource/generator blocks and column-align field names, types and attributes, Prisma format's signature look. Preserves // and /// doc comments, handles multi-line attribute values, and can reorder fields alphabetically or by type.\n\n[Try Prisma Schema Formatter in your browser →](https://iotools.cloud/tool/prisma-schema-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioPrismaInput":{"type":"string","description":"Prisma Schema"},"ioSortFields":{"enum":["none","alpha","type-grouped"],"description":"Field Sorting"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Formatted Schema"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/promql-formatter":{"post":{"operationId":"run_promql_formatter","summary":"PromQL Formatter","tags":["Formatters"],"description":"Format and validate PromQL (Prometheus Query Language) expressions — consistent indentation and line-breaking for metric selectors, label matchers, functions, binary/aggregation operators, and by/without/on/group_left clauses. Optionally wraps the result as a Prometheus recording rule. Runs entirely in your browser.\n\n[Try PromQL Formatter in your browser →](https://iotools.cloud/tool/promql-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioPromqlInput":{"type":"string","description":"PromQL Query"},"ioIndentSize":{"enum":["2","4","tab"],"description":"Indent Width"},"ioMaxLineLength":{"type":"number","description":"Max Line Length","minimum":40,"maximum":240},"ioForceMultiline":{"type":"boolean","description":"Always break aggregation, function args, and label matchers onto separate lines"},"ioWrapRecordingRule":{"type":"boolean","description":"Wrap output as a Prometheus recording rule (YAML)"},"ioRecordingRuleName":{"type":"string","description":"Recording rule name"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioValidation":{"type":"string","description":"Validation"},"ioFormattedOutput":{"type":"string","description":"Formatted PromQL"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/protobuf-formatter":{"post":{"operationId":"run_protobuf_formatter","summary":"Protobuf Formatter","tags":["Formatters"],"description":"Format and pretty-print .proto (Protocol Buffers) source — consistent indentation, blank-line spacing between messages/enums/services, aligned enum values, and optional sorting of fields by tag number. Includes basic syntax validation. Runs entirely in your browser.\n\n[Try Protobuf Formatter in your browser →](https://iotools.cloud/tool/protobuf-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioProtobufInput":{"type":"string","description":"Protobuf input"},"ioIndentSize":{"enum":["2","4"],"description":"Indentation"},"ioSortFields":{"type":"boolean","description":"Sort fields by tag number"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioFormattedOutput":{"type":"string","description":"Formatted protobuf"},"ioValidation":{"type":"string","description":"Validation"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/python-code-formatter":{"post":{"operationId":"run_python_code_formatter","summary":"Python Code Formatter","tags":["Formatters"],"description":"Clean up Python source: normalize existing indentation to a consistent width, tidy comma/operator spacing, collapse long blank-line runs, and trim trailing whitespace — without touching triple-quoted strings, f-strings, or comments.\n\n[Try Python Code Formatter in your browser →](https://iotools.cloud/tool/python-code-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioPythonInput":{"type":"string","description":"Python Code"},"ioIndent":{"enum":["2","4","8","tab"],"description":"Indent"},"ioNormalizeSpacing":{"type":"boolean","description":"Normalize comma & operator spacing"},"ioNormalizeBlankLines":{"type":"boolean","description":"Normalize blank lines (collapse long runs of blank lines)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Formatted Code"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/svg-optimizer":{"post":{"operationId":"run_svg_optimizer","summary":"SVG Optimizer","tags":["Formatters"],"description":"Shrink SVG markup with the real SVGO optimizer — strip comments, editor metadata and XML boilerplate, drop redundant/default attribute values, round coordinate precision, minify path data, shorten hex colors, and remove unreferenced IDs. Shows original vs. optimized size and the reduction percentage.\n\n[Try SVG Optimizer in your browser →](https://iotools.cloud/tool/svg-optimizer/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSvgInput":{"type":"string","description":"SVG Code"},"ioPreset":{"enum":["light","moderate","aggressive","custom"],"description":"Preset"},"ioRemoveComments":{"type":"boolean","description":"Remove comments"},"ioRemoveMetadata":{"type":"boolean","description":"Remove editor metadata, title & desc"},"ioMinifyPaths":{"type":"boolean","description":"Minify path data (reduce coordinate precision)"},"ioRemoveDefaults":{"type":"boolean","description":"Remove default/redundant attribute values"},"ioRemoveHidden":{"type":"boolean","description":"Remove hidden/invisible elements"},"ioCollapseGroups":{"type":"boolean","description":"Collapse unnecessary groups"},"ioStylesToAttributes":{"type":"boolean","description":"Convert inline styles to presentation attributes"},"ioRemoveUnusedIds":{"type":"boolean","description":"Remove unreferenced IDs"},"ioRoundCoordinates":{"type":"boolean","description":"Round coordinates"},"ioRemoveEmptyContainers":{"type":"boolean","description":"Remove empty containers"},"ioPrecision":{"type":"number","description":"Coordinate Precision","minimum":0,"maximum":5}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSvgOutput":{"type":"string","description":"Optimized SVG Code"},"ioSizeStats":{"type":"string","description":"Size Comparison"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/reverse-text":{"post":{"operationId":"run_reverse_text","summary":"Reverse Text","tags":["Formatters"],"description":"Reverse text either by characters (flip the entire string) or by words (reverse word order while keeping each word intact). Handles emoji and multi-byte Unicode characters correctly.\n\n[Try Reverse Text in your browser →](https://iotools.cloud/tool/reverse-text/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Input Text"},"ioReverseMode":{"enum":["characters","words"],"description":"Reverse Mode"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutputText":{"type":"string","description":"Reversed Text"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ruby-code-formatter":{"post":{"operationId":"run_ruby_code_formatter","summary":"Ruby Code Formatter","tags":["Formatters"],"description":"Format and beautify Ruby source code — re-indent by block structure (class/module/def/if/unless/case/while/until/do), normalize operator and comma spacing, and choose 2-space, 4-space, or tab indentation. Strings, comments and heredocs are left untouched. Runs entirely in your browser.\n\n[Try Ruby Code Formatter in your browser →](https://iotools.cloud/tool/ruby-code-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioRubyInput":{"type":"string","description":"Ruby Code"},"ioIndentStyle":{"enum":["2","4","tab"],"description":"Indent Style"},"ioNormalizeSpacing":{"type":"boolean","description":"Normalize operator & comma spacing"},"ioCollapseBlankLines":{"type":"boolean","description":"Collapse multiple blank lines into one"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Formatted Code"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/rust-code-formatter":{"post":{"operationId":"run_rust_code_formatter","summary":"Rust Code Formatter","tags":["Formatters"],"description":"Re-indent Rust source code by tracking brace, paren and bracket nesting depth — fn, struct, impl, trait, enum, match arms and closures get consistent indentation, while comments, string and raw-string literals are left untouched.\n\n[Try Rust Code Formatter in your browser →](https://iotools.cloud/tool/rust-code-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioRustInput":{"type":"string","description":"Rust Code"},"ioIndent":{"enum":["2","4","tab"],"description":"Indent Size"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Formatted Code"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/scala-code-formatter":{"post":{"operationId":"run_scala_code_formatter","summary":"Scala Code Formatter","tags":["Formatters"],"description":"Re-indent Scala source code by tracking brace, paren and bracket nesting depth — object, class, trait, def, match/case, if/else and for/yield blocks get consistent indentation, while comments, string and triple-quoted literals are left untouched.\n\n[Try Scala Code Formatter in your browser →](https://iotools.cloud/tool/scala-code-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioScalaInput":{"type":"string","description":"Scala Code"},"ioIndent":{"enum":["2","4","tab"],"description":"Indent Size"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Formatted Code"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/scss-formatter":{"post":{"operationId":"run_scss_formatter","summary":"SCSS Formatter","tags":["Formatters"],"description":"Format and re-indent SCSS / Sass source by tracking brace nesting depth — rules, nested selectors, $variables, @mixin/@include and @if/@else/@each/@for blocks get consistent indentation, while comments, strings and #{} interpolation are left untouched. Structural formatting only, not a Sass compiler.\n\n[Try SCSS Formatter in your browser →](https://iotools.cloud/tool/scss-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioScssInput":{"type":"string","description":"SCSS Code"},"ioIndent":{"enum":["2","4","tab"],"description":"Indent Size"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Formatted SCSS"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/sql-formatter":{"post":{"operationId":"run_sql_formatter","summary":"SQL Formatter","tags":["Formatters"],"description":"Pretty-print and beautify SQL queries — real dialect-aware formatting (MySQL, PostgreSQL, SQLite, SQL Server, BigQuery, Snowflake and more) with configurable indent size and keyword casing. Runs entirely in your browser.\n\n[Try SQL Formatter in your browser →](https://iotools.cloud/tool/sql-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSqlInput":{"type":"string","description":"SQL Query"},"ioDialect":{"enum":["sql","mysql","mariadb","postgresql","sqlite","transactsql","bigquery","snowflake","redshift","db2","db2i","plsql","hive","spark","trino","n1ql","tidb","singlestoredb","duckdb","clickhouse"],"description":"Dialect"},"ioKeywordCase":{"enum":["upper","lower","preserve"],"description":"Keyword Case"},"ioIndentSize":{"type":"number","description":"Indent Size","minimum":1,"maximum":8},"ioUseTabs":{"type":"boolean","description":"Use Tabs Instead of Spaces"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSqlOutput":{"type":"string","description":"Formatted SQL"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/sql-minifier":{"post":{"operationId":"run_sql_minifier","summary":"SQL Minifier","tags":["Formatters"],"description":"Minify a SQL query by stripping -- / # / block comments and collapsing whitespace to single spaces, while leaving string literals and quoted identifiers byte-for-byte untouched — even ones containing '' escaped quotes or comment-like -- and /* */ sequences.\n\n[Try SQL Minifier in your browser →](https://iotools.cloud/tool/sql-minifier/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSqlInput":{"type":"string","description":"SQL Input"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSqlOutput":{"type":"string","description":"Minified SQL"},"ioSizeStats":{"type":"string","description":"Size Stats"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/terraform-formatter":{"post":{"operationId":"run_terraform_formatter","summary":"Terraform Formatter","tags":["Formatters"],"description":"Format and beautify HCL (HashiCorp Configuration Language) source — the same spirit as `terraform fmt`: align `=` signs within blocks, normalize indentation, reorder meta-arguments (count/for_each first, lifecycle/provisioner last), and optionally sort attributes alphabetically. Includes basic syntax validation. Runs entirely in your browser.\n\n[Try Terraform Formatter in your browser →](https://iotools.cloud/tool/terraform-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioTerraformInput":{"type":"string","description":"Terraform Input"},"ioSortAttributes":{"type":"boolean","description":"Sort Attributes Alphabetically"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioValidation":{"type":"string","description":"Validation"},"ioFormattedOutput":{"type":"string","description":"Formatted Terraform"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/xml-validator":{"post":{"operationId":"run_xml_validator","summary":"XML Validator","tags":["Formatters"],"description":"Check whether pasted XML is well-formed — matching open/close tags (case-sensitive), a single root element, correctly quoted attribute syntax, no duplicate attributes, and properly escaped special characters — with the exact line and column of every problem. Runs entirely in your browser.\n\n[Try XML Validator in your browser →](https://iotools.cloud/tool/xml-validator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioXmlInput":{"type":"string","description":"XML Input"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string"},"ioIssues":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/yaml-formatter":{"post":{"operationId":"run_yaml_formatter","summary":"YAML Formatter","tags":["Formatters"],"description":"Clean up and beautify YAML: re-indent to a consistent 2- or 4-space step, wrap or unwrap long lines, optionally sort keys alphabetically, switch between block and compact flow style, and strip comments — while preserving quoting, block scalars and (by default) comments. Handles multi-document (---) files. Runs entirely in your browser; nothing is uploaded.\n\n[Try YAML Formatter in your browser →](https://iotools.cloud/tool/yaml-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputYaml":{"type":"string","description":"YAML Input"},"ioIndentSize":{"enum":["2","4"],"description":"Indent Size"},"ioCollectionStyle":{"enum":["preserve","block","flow"],"description":"Collection Style"},"ioLineWidth":{"type":"number","description":"Line Width","minimum":0,"maximum":200},"ioSortKeys":{"type":"boolean","description":"Sort keys alphabetically"},"ioStripComments":{"type":"boolean","description":"Strip comments"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioFormattedOutput":{"type":"string","description":"Formatted YAML"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/yaml-validator":{"post":{"operationId":"run_yaml_validator","summary":"YAML Validator","tags":["Formatters"],"description":"Check whether pasted YAML is syntactically valid. Invalid input is reported error-by-error with the exact line, column and reason; valid input gets a structural summary — document count, top-level type (mapping/sequence/scalar) and key/item counts. Runs entirely in your browser.\n\n[Try YAML Validator in your browser →](https://iotools.cloud/tool/yaml-validator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputYaml":{"type":"string","description":"YAML"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioStatus":{"type":"string","description":"Result"},"ioErrors":{"type":"string","description":"Errors"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/yaml-viewer":{"post":{"operationId":"run_yaml_viewer","summary":"YAML Viewer","tags":["Formatters"],"description":"Paste YAML and view it as clean, canonically re-indented YAML alongside an equivalent JSON preview — a quick way to see a config file's actual data shape. Runs entirely in your browser.\n\n[Try YAML Viewer in your browser →](https://iotools.cloud/tool/yaml-viewer/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioYamlInput":{"type":"string","description":"YAML Content"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioFormattedYaml":{"type":"string","description":"Formatted YAML"},"ioJsonPreview":{"type":"string","description":"JSON Preview"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/xml-formatter":{"post":{"operationId":"run_xml_formatter","summary":"XML Formatter","tags":["Formatters"],"description":"Pretty-print and validate XML instantly. Indent with 2 spaces, 4 spaces or tabs, collapse text content onto one line, self-close empty tags, strip comments, and get a clear message when the markup is malformed.\n\n[Try XML Formatter in your browser →](https://iotools.cloud/tool/xml-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioXmlSource":{"type":"string","description":"XML input"},"ioIndentation":{"enum":["2","4","tab"],"description":"Indentation"},"ioCollapseContent":{"type":"boolean","description":"Collapse content"},"ioForceSelfClosingForEmptyTag":{"type":"boolean","description":"Self-closing for empty tags"},"ioRemoveComments":{"type":"boolean","description":"Remove comments"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioFormattedXml":{"type":"string","description":"Formatted XML"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/zig-language-formatter":{"post":{"operationId":"run_zig_language_formatter","summary":"Zig Language Formatter","tags":["Formatters"],"description":"Format and beautify Zig source code — brace placement, operator/comma spacing (leaving strings, character literals, and comments untouched), block-depth indentation, and optional trailing commas on multi-line lists, matching zig fmt conventions. Includes basic bracket-balance validation. Runs entirely in your browser.\n\n[Try Zig Language Formatter in your browser →](https://iotools.cloud/tool/zig-language-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioZigInput":{"type":"string","description":"Zig Source Code"},"ioIndentStyle":{"enum":["4spaces","2spaces","tabs"],"description":"Indentation"},"ioTrailingComma":{"type":"boolean","description":"Add trailing commas to multi-line arg/field lists"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioValidation":{"type":"string","description":"Validation"},"ioFormattedOutput":{"type":"string","description":"Formatted Zig Code"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/empty-lines-remover":{"post":{"operationId":"run_empty_lines_remover","summary":"Empty Lines Remover","tags":["Formatters"],"description":"Remove every blank line from a block of text, keeping the remaining lines in order. Runs entirely in your browser.\n\n[Try Empty Lines Remover in your browser →](https://iotools.cloud/tool/empty-lines-remover/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioOriginalText":{"type":"string","description":"Original Text"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioUpdatedText":{"type":"string","description":"Updated Text"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/line-break-remover":{"post":{"operationId":"run_line_break_remover","summary":"Line Break Remover","tags":["Formatters"],"description":"Remove line breaks from text and join the lines back together — space-separated by default, with paragraphs (double line breaks) preserved. Optionally strip HTML tags, capitalize each paragraph, and normalize spacing.\n\n[Try Line Break Remover in your browser →](https://iotools.cloud/tool/line-break-remover/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioOriginalText":{"type":"string","description":"Original Text"},"ioRemoveAllLineBreaks":{"type":"boolean","description":"Remove all line breaks"},"ioCapitalizeParagraph":{"type":"boolean","description":"Capitalize first letter of paragraphs"},"ioRemoveHtmlTags":{"type":"boolean","description":"Remove HTML tags"},"ioJoinLinesWith":{"enum":[" ","",".",",",";","-","_","/","|"],"description":"Join lines with"},"ioNormalizeSpacing":{"enum":["none","single","remove"],"description":"Normalize spacing"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioUpdatedText":{"type":"string","description":"Processed Text"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/text-merger":{"post":{"operationId":"run_text_merger","summary":"Text Merger","tags":["Formatters"],"description":"Join multiple lines of text into a single string. Remove line breaks, normalize spacing, and customize your text output.\n\n[Try Text Merger in your browser →](https://iotools.cloud/tool/text-merger/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioOriginalText":{"type":"string","description":"Text to Merge"},"ioRemoveAllLineBreaks":{"type":"boolean","description":"Remove all line breaks"},"ioCapitalizeParagraph":{"type":"boolean","description":"Capitalize first letter of paragraphs"},"ioRemoveHtmlTags":{"type":"boolean","description":"Remove HTML tags"},"ioJoinLinesWith":{"enum":[" ","",".",",",";","-","_","/","|"],"description":"Join lines with"},"ioNormalizeSpacing":{"enum":["none","single","remove"],"description":"Normalize spacing"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioUpdatedText":{"type":"string","description":"Merged Text"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/whitespace-trimmer":{"post":{"operationId":"run_whitespace_trimmer","summary":"Whitespace Trimmer","tags":["Formatters"],"description":"Collapse repeated tabs or spaces down to a single one, or remove them entirely, anywhere in a block of text. Runs entirely in your browser.\n\n[Try Whitespace Trimmer in your browser →](https://iotools.cloud/tool/whitespace-trimmer/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioOriginalText":{"type":"string","description":"Original Text"},"ioConsideredAsWhitespace":{"enum":["\t"," ","all"],"description":"Considered As Whitespace"},"ioRemoveWhitespaces":{"enum":["duplicate-whitespaces","all-whitespaces"],"description":"Removal mode"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioWhitespaceRemovedText":{"type":"string","description":"Whitespace-removed Text"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/time-duration-formatter":{"post":{"operationId":"run_time_duration_formatter","summary":"Time Duration Formatter","tags":["Formatters"],"description":"Format a time duration every common way at once: verbose (2 hours, 15 minutes), short (2h 15m 30s), ISO 8601 (PT2H15M30S), clock (02:15:30), approximate, total milliseconds and seconds, plus a full days/hours/minutes/seconds breakdown. Enter the duration in seconds, milliseconds or clock format.\n\n[Try Time Duration Formatter in your browser →](https://iotools.cloud/tool/time-duration-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputMode":{"enum":["seconds","milliseconds","clock"],"description":"Input Mode"},"ioSeconds":{"type":"string","description":"Duration"},"ioMilliseconds":{"type":"string","description":"Duration"},"ioClockInput":{"type":"string","description":"Duration"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioVerbose":{"type":"string","description":"Verbose"},"ioShort":{"type":"string","description":"Short"},"ioIso8601":{"type":"string","description":"ISO 8601"},"ioClock":{"type":"string","description":"Clock"},"ioApproximate":{"type":"string","description":"Approximate"},"ioTotalMs":{"type":"string","description":"Milliseconds"},"ioTotalSeconds":{"type":"string","description":"Total Seconds"},"ioBreakdownTable":{"type":"string","description":"Breakdown"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/shell-script-formatter":{"post":{"operationId":"run_shell_script_formatter","summary":"Shell Script Formatter","tags":["Formatters"],"description":"Format and beautify Bash, sh, and Zsh shell scripts. Re-indent if/then/fi, for/while loops, case statements, and functions; choose 2/4 spaces or tabs, position binary operators, and space redirect operators.\n\n[Try Shell Script Formatter in your browser →](https://iotools.cloud/tool/shell-script-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioShellInput":{"type":"string","description":"Shell Script"},"ioIndentStyle":{"enum":["2","4","tab"],"description":"Indent Style"},"ioBinaryOpPosition":{"enum":["end","start"],"description":"Binary Operators"},"ioSwitchCaseIndent":{"type":"boolean","description":"Indent case bodies in switch/case"},"ioKeepPadding":{"type":"boolean","description":"Keep alignment padding (skip re-indentation)"},"ioSpaceRedirects":{"type":"boolean","description":"Space after redirect operators (>, >>)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioFormattedOutput":{"type":"string","description":"Formatted Script"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/solidity-code-formatter":{"post":{"operationId":"run_solidity_code_formatter","summary":"Solidity Code Formatter","tags":["Formatters"],"description":"Format and beautify Solidity smart-contract source: re-indent by brace depth, normalize spacing around operators and punctuation, reorder function visibility/mutability modifiers, sort the pragma/import header, and normalize NatSpec comments — all in your browser.\n\n[Try Solidity Code Formatter in your browser →](https://iotools.cloud/tool/solidity-code-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSolidityInput":{"type":"string","description":"Solidity Code"},"ioSolidityVersion":{"enum":["keep","^0.8.30","^0.8.26","^0.8.24","^0.8.20","^0.8.0"],"description":"Solidity Version"},"ioIndentStyle":{"enum":["4","2","tab"],"description":"Indentation"},"ioBraceStyle":{"enum":["attach","allman"],"description":"Brace Style"},"ioPrintWidth":{"type":"number","description":"Column Limit","minimum":60,"maximum":200},"ioSortModifiers":{"type":"boolean","description":"Reorder function modifiers (visibility → mutability → virtual → override)"},"ioSortPragmasImports":{"type":"boolean","description":"Pragmas first, then imports sorted alphabetically"},"ioNormalizeNatspec":{"type":"boolean","description":"Normalize NatSpec /// comments (single space after slashes)"},"ioCollapseBlankLines":{"type":"boolean","description":"Collapse 2+ blank lines into a single blank line"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioFormattedOutput":{"type":"string","description":"Formatted Code"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/stack-trace-formatter":{"post":{"operationId":"run_stack_trace_formatter","summary":"Stack Trace Formatter","tags":["Formatters"],"description":"Clean up and reformat a raw exception stack trace into a tidy Markdown block. Detects the language (JavaScript, Python, Java, Ruby, Go, .NET, PHP), extracts the exception type and message, numbers the frames, and optionally collapses noisy framework/vendor frames.\n\n[Try Stack Trace Formatter in your browser →](https://iotools.cloud/tool/stack-trace-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioStackTrace":{"type":"string","description":"Stack Trace"},"ioLanguage":{"enum":["auto","javascript","python","java","ruby","go","dotnet","php"],"description":"Language"},"ioCollapseVendor":{"type":"boolean","description":"Collapse framework / vendor frames"},"ioShowFrameIndex":{"type":"boolean","description":"Show frame numbers"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioMarkdownOutput":{"type":"string","description":"Cleaned Stack (Markdown)"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/swift-code-formatter":{"post":{"operationId":"run_swift_code_formatter","summary":"Swift Code Formatter","tags":["Formatters"],"description":"Format and beautify Swift source: re-indent by brace depth, normalize spacing around operators and punctuation, strip redundant semicolons, add trailing commas to multi-line lists, and sort import statements — all in your browser.\n\n[Try Swift Code Formatter in your browser →](https://iotools.cloud/tool/swift-code-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSwiftInput":{"type":"string","description":"Swift Code"},"ioIndentSize":{"enum":["4","2","tab"],"description":"Indent Size"},"ioSortImports":{"type":"boolean","description":"Sort imports alphabetically"},"ioTrailingCommas":{"type":"boolean","description":"Add trailing commas in multi-line lists"},"ioStripSemicolons":{"type":"boolean","description":"Remove redundant semicolons at end of lines"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioFormattedOutput":{"type":"string","description":"Formatted Code"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/text-column-aligner":{"post":{"operationId":"run_text_column_aligner","summary":"Text Column Aligner","tags":["Formatters"],"description":"Align multi-line text into neat columns by padding spaces so a chosen delimiter (=, :, //, =>, |, comma, tab, and more) lines up across every row — like the Unix column -t command, right in your browser.\n\n[Try Text Column Aligner in your browser →](https://iotools.cloud/tool/text-column-aligner/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioOriginalText":{"type":"string","description":"Input Text"},"ioAlignTrigger":{"enum":["=",":","//","=>","->","|",",",";","\t"," ","custom"],"description":"Align By"},"ioCustomDelimiter":{"type":"string","description":"Custom Delimiter"},"ioAlignAllOccurrences":{"type":"boolean","description":"Align Every Occurrence"},"ioPreserveIndent":{"type":"boolean","description":"Preserve Leading Indentation"},"ioStripTrailing":{"type":"boolean","description":"Strip Trailing Whitespace"},"ioSpacesBefore":{"type":"number","description":"Spaces Before Delimiter","minimum":0,"maximum":10},"ioSpacesAfter":{"type":"number","description":"Spaces After Delimiter","minimum":0,"maximum":10}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioAlignedText":{"type":"string","description":"Aligned Text"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/xml-minifier":{"post":{"operationId":"run_xml_minifier","summary":"XML Minifier","tags":["Formatters"],"description":"Minify XML instantly — strip whitespace between tags, collapse extra spaces inside text content, and optionally remove comments, while leaving attribute values and CDATA sections untouched. Runs entirely in your browser.\n\n[Try XML Minifier in your browser →](https://iotools.cloud/tool/xml-minifier/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioXmlSource":{"type":"string","description":"XML input"},"ioRemoveComments":{"type":"boolean","description":"Remove comments"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioMinifiedXml":{"type":"string","description":"Minified XML"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/haskell-code-formatter":{"post":{"operationId":"run_haskell_code_formatter","summary":"Haskell Code Formatter","tags":["Formatters"],"description":"Format and pretty-print Haskell source — consistent operator spacing, sorted/deduplicated LANGUAGE pragmas, sorted import blocks, and blank-line collapsing, approximating Fourmolu/Ormolu conventions. Includes basic syntax validation and a long-line report. Runs entirely in your browser.\n\n[Try Haskell Code Formatter in your browser →](https://iotools.cloud/tool/haskell-code-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioHaskellInput":{"type":"string","description":"Haskell source code"},"ioIndentSize":{"enum":["2","4"],"description":"Indent size"},"ioMaxLineLength":{"type":"number","description":"Max line length","minimum":60,"maximum":200},"ioSortImports":{"type":"boolean","description":"Sort import statements within each block"},"ioSortPragmas":{"type":"boolean","description":"Sort and deduplicate LANGUAGE pragmas at the top"},"ioCollapseBlankLines":{"type":"boolean","description":"Collapse 3+ consecutive blank lines into one"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioFormattedOutput":{"type":"string","description":"Formatted Haskell"},"ioValidation":{"type":"string","description":"Validation"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/r-code-formatter":{"post":{"operationId":"run_r_code_formatter","summary":"R Code Formatter","tags":["Formatters"],"description":"Format and pretty-print R source — consistent operator spacing, bracket-depth indentation, optional = → &lt;- assignment conversion, and blank-line normalization, approximating styler/tidyverse conventions. Includes basic syntax validation and a long-line report. Runs entirely in your browser.\n\n[Try R Code Formatter in your browser →](https://iotools.cloud/tool/r-code-formatter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioRInput":{"type":"string","description":"R source code"},"ioIndentSize":{"enum":["2","4"],"description":"Indent width"},"ioMaxLineLength":{"type":"number","description":"Max line length","minimum":40,"maximum":200},"ioPreferArrow":{"type":"boolean","description":"Convert top-level = assignment to &lt;- (tidyverse style)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioFormattedOutput":{"type":"string","description":"Formatted R code"},"ioValidation":{"type":"string","description":"Validation"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/aes-key-generator":{"post":{"operationId":"run_aes_key_generator","summary":"AES Key Generator","tags":["Generators"],"description":"Generate a cryptographically random AES encryption key — 128, 192, or 256-bit, output as hex or Base64. Generated entirely in your browser and never transmitted.\n\n[Try AES Key Generator in your browser →](https://iotools.cloud/tool/aes-key-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioKeySize":{"enum":["128","192","256"],"description":"Key size"},"ioOutputFormat":{"enum":["hex","base64"],"description":"Output format"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioKey":{"type":"string","description":"Generated key"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ai-image-generator":{"post":{"operationId":"run_ai_image_generator","summary":"AI Image Generator","tags":["Generators"],"description":"Generate an image from a text description with AI — describe what you want, pick a size and an optional style preset, and get a downloadable image.\n\n[Try AI Image Generator in your browser →](https://iotools.cloud/tool/ai-image-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":640,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioPrompt":{"type":"string","description":"Describe the image"},"ioSize":{"enum":["square","portrait","wide"],"description":"Size"},"ioPreset":{"enum":["none","photorealistic","digital-art","anime","3d-render","watercolor","oil-painting","pencil-sketch","pixel-art","cyberpunk","fantasy-art","minimalist","vintage-photo","pop-art","comic-book","low-poly","isometric","claymation","stained-glass","line-art","synthwave","steampunk","ukiyo-e","art-nouveau"],"description":"Style preset"}},"required":["ioPrompt"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ai-writer":{"post":{"operationId":"run_ai_writer","summary":"AI Writer","tags":["Generators"],"description":"Generate original written content with AI — a bio, a summary, a message, a description. Describe what you need in your own words and get a ready-to-use draft.\n\n[Try AI Writer in your browser →](https://iotools.cloud/tool/ai-writer/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":24,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioContext":{"type":"string","description":"Extra instructions"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ai-writer/answers":{"post":{"operationId":"run_ai_writer_answers","summary":"Answer Generator","tags":["Generators"],"description":"Generate a comprehensive, well-supported answer to any question with AI — clear, direct, and backed by relevant detail.\n\n[Try Answer Generator in your browser →](https://iotools.cloud/tool/ai-writer/answers/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":24,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioContext":{"type":"string","description":"Extra instructions"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ai-writer/backstory":{"post":{"operationId":"run_ai_writer_backstory","summary":"Backstory Generator","tags":["Generators"],"description":"Generate a rich character backstory with AI — history, motivations and key events, for a story, a game character or a D&D campaign.\n\n[Try Backstory Generator in your browser →](https://iotools.cloud/tool/ai-writer/backstory/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":24,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioContext":{"type":"string","description":"Extra instructions"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ai-writer/baddie-comebacks":{"post":{"operationId":"run_ai_writer_baddie_comebacks","summary":"Baddie Comebacks Generator","tags":["Generators"],"description":"Generate sharp, witty comebacks with AI — five clever roasts for any situation, each with a quick note on why it lands.\n\n[Try Baddie Comebacks Generator in your browser →](https://iotools.cloud/tool/ai-writer/baddie-comebacks/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":24,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioContext":{"type":"string","description":"Extra instructions"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioItems":{"type":"string","description":"Generated Content"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ai-writer/email":{"post":{"operationId":"run_ai_writer_email","summary":"Email Generator","tags":["Generators"],"description":"Generate a well-structured email with AI — clear, on-tone, and ready to send, from a subject line to a closing sign-off.\n\n[Try Email Generator in your browser →](https://iotools.cloud/tool/ai-writer/email/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":24,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioContext":{"type":"string","description":"Extra instructions"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ai-writer/email-signature":{"post":{"operationId":"run_ai_writer_email_signature","summary":"Simple Email Signature Generator","tags":["Generators"],"description":"Generate professional email signature layouts with AI — five ready-to-use options with name, title and contact details.\n\n[Try Simple Email Signature Generator in your browser →](https://iotools.cloud/tool/ai-writer/email-signature/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":24,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioContext":{"type":"string","description":"Extra instructions"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioItems":{"type":"string","description":"Generated Content"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ai-writer/haiku":{"post":{"operationId":"run_ai_writer_haiku","summary":"Haiku Generator","tags":["Generators"],"description":"Generate traditional 5-7-5 haiku on any topic with AI — each with a short note on what it means.\n\n[Try Haiku Generator in your browser →](https://iotools.cloud/tool/ai-writer/haiku/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":24,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioContext":{"type":"string","description":"Extra instructions"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioItems":{"type":"string","description":"Generated Content"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ai-writer/happy-monday-quotes":{"post":{"operationId":"run_ai_writer_happy_monday_quotes","summary":"Happy Monday Quotes Generator","tags":["Generators"],"description":"Generate motivational Monday quotes with AI — work-friendly one-liners for a fresh start to the week.\n\n[Try Happy Monday Quotes Generator in your browser →](https://iotools.cloud/tool/ai-writer/happy-monday-quotes/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":24,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioContext":{"type":"string","description":"Extra instructions"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioItems":{"type":"string","description":"Generated Content"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ai-writer/happy-thursday-quotes":{"post":{"operationId":"run_ai_writer_happy_thursday_quotes","summary":"Happy Thursday Quotes Generator","tags":["Generators"],"description":"Generate motivational Thursday quotes with AI — short, memorable one-liners for the final push before the weekend.\n\n[Try Happy Thursday Quotes Generator in your browser →](https://iotools.cloud/tool/ai-writer/happy-thursday-quotes/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":24,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioContext":{"type":"string","description":"Extra instructions"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioItems":{"type":"string","description":"Generated Content"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ai-writer/happy-wednesday-quotes":{"post":{"operationId":"run_ai_writer_happy_wednesday_quotes","summary":"Happy Wednesday Quotes Generator","tags":["Generators"],"description":"Generate motivational Wednesday quotes with AI — short, memorable one-liners to beat the midweek slump.\n\n[Try Happy Wednesday Quotes Generator in your browser →](https://iotools.cloud/tool/ai-writer/happy-wednesday-quotes/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":24,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioContext":{"type":"string","description":"Extra instructions"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioItems":{"type":"string","description":"Generated Content"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ai-writer/letter":{"post":{"operationId":"run_ai_writer_letter","summary":"Letter Writer","tags":["Generators"],"description":"Generate a complete letter with AI — a clear introduction, purposeful body and a strong closing, for any occasion.\n\n[Try Letter Writer in your browser →](https://iotools.cloud/tool/ai-writer/letter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":24,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioContext":{"type":"string","description":"Extra instructions"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ai-writer/linkedin-summary":{"post":{"operationId":"run_ai_writer_linkedin_summary","summary":"LinkedIn Summary Generator","tags":["Generators"],"description":"Generate a professional LinkedIn summary with AI — highlight your skills, achievements and experience, tuned to the tone and format you pick.\n\n[Try LinkedIn Summary Generator in your browser →](https://iotools.cloud/tool/ai-writer/linkedin-summary/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":24,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioContext":{"type":"string","description":"Extra instructions"},"ioCustomLength":{"enum":["","Short","Medium","Long"],"description":"Length"},"ioCustomTone":{"type":"string","description":"Tone"},"ioCustomFocusAreas":{"type":"string","description":"Focus Areas"},"ioCustomFormatting":{"type":"string","description":"Formatting"},"ioCustomStylePreference":{"enum":["","First Person","Third Person","Active Voice","Passive Voice"],"description":"Style Preference"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ai-writer/paragraph":{"post":{"operationId":"run_ai_writer_paragraph","summary":"Paragraph Writer","tags":["Generators"],"description":"Generate a well-written paragraph on any topic with AI — coherent, on-tone and ready to drop into an essay, email or post.\n\n[Try Paragraph Writer in your browser →](https://iotools.cloud/tool/ai-writer/paragraph/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":24,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioContext":{"type":"string","description":"Extra instructions"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ai-writer/random-topics":{"post":{"operationId":"run_ai_writer_random_topics","summary":"Random Topic Generator","tags":["Generators"],"description":"Generate random, thought-provoking topics with AI — five diverse ideas, each with a short explanation, for writing prompts, debates or icebreakers.\n\n[Try Random Topic Generator in your browser →](https://iotools.cloud/tool/ai-writer/random-topics/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":24,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioContext":{"type":"string","description":"Extra instructions"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioItems":{"type":"string","description":"Generated Content"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ai-writer/rap-lyrics":{"post":{"operationId":"run_ai_writer_rap_lyrics","summary":"Rap Lyrics Generator","tags":["Generators"],"description":"Generate original rap lyrics with AI — a catchy hook, verses on your topic, and a flow to match your style.\n\n[Try Rap Lyrics Generator in your browser →](https://iotools.cloud/tool/ai-writer/rap-lyrics/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":24,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioContext":{"type":"string","description":"Extra instructions"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ai-writer/response":{"post":{"operationId":"run_ai_writer_response","summary":"Response Generator","tags":["Generators"],"description":"Generate a thoughtful, well-tailored response with AI — for a message, a review, or any situation that needs a considered reply.\n\n[Try Response Generator in your browser →](https://iotools.cloud/tool/ai-writer/response/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":24,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioContext":{"type":"string","description":"Extra instructions"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ai-writer/sentence-expander":{"post":{"operationId":"run_ai_writer_sentence_expander","summary":"Sentence Expander","tags":["Generators"],"description":"Expand a short sentence or phrase into a detailed, vivid passage with AI — same meaning and tone, with more description and flow.\n\n[Try Sentence Expander in your browser →](https://iotools.cloud/tool/ai-writer/sentence-expander/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":24,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioContext":{"type":"string","description":"Extra instructions"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ai-writer/sentence-rewriter":{"post":{"operationId":"run_ai_writer_sentence_rewriter","summary":"Sentence Rewriter","tags":["Generators"],"description":"Rewrite a sentence with AI to improve its clarity, tone, or style — same meaning, better phrasing.\n\n[Try Sentence Rewriter in your browser →](https://iotools.cloud/tool/ai-writer/sentence-rewriter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":24,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioContext":{"type":"string","description":"Extra instructions"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ai-writer/serene-saturday-quotes":{"post":{"operationId":"run_ai_writer_serene_saturday_quotes","summary":"Serene Saturday Quote Generator","tags":["Generators"],"description":"Generate uplifting Saturday quotes with AI — casual, original one-liners celebrating the weekend.\n\n[Try Serene Saturday Quote Generator in your browser →](https://iotools.cloud/tool/ai-writer/serene-saturday-quotes/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":24,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioContext":{"type":"string","description":"Extra instructions"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioItems":{"type":"string","description":"Generated Content"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ai-writer/speech-writer":{"post":{"operationId":"run_ai_writer_speech_writer","summary":"Speech Writer","tags":["Generators"],"description":"Generate a persuasive, memorable speech with AI — a strong opening, clear key points and a closing that lands.\n\n[Try Speech Writer in your browser →](https://iotools.cloud/tool/ai-writer/speech-writer/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":24,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioContext":{"type":"string","description":"Extra instructions"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ai-writer/story":{"post":{"operationId":"run_ai_writer_story","summary":"Story Generator","tags":["Generators"],"description":"Generate a captivating short story with AI — characters, plot and a satisfying ending, from whatever premise you give it.\n\n[Try Story Generator in your browser →](https://iotools.cloud/tool/ai-writer/story/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":24,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioContext":{"type":"string","description":"Extra instructions"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ai-writer/story-plot":{"post":{"operationId":"run_ai_writer_story_plot","summary":"Story Plot Generator","tags":["Generators"],"description":"Generate an original story plot with AI — conflict, characters and key twists, ready to outline a story or a scene.\n\n[Try Story Plot Generator in your browser →](https://iotools.cloud/tool/ai-writer/story-plot/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":24,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioContext":{"type":"string","description":"Extra instructions"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ai-writer/thoughtful-tuesday-quotes":{"post":{"operationId":"run_ai_writer_thoughtful_tuesday_quotes","summary":"Thoughtful Tuesday Quotes Generator","tags":["Generators"],"description":"Generate reflective, motivational Tuesday quotes with AI — original one-liners for personal growth and midweek momentum.\n\n[Try Thoughtful Tuesday Quotes Generator in your browser →](https://iotools.cloud/tool/ai-writer/thoughtful-tuesday-quotes/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":24,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioContext":{"type":"string","description":"Extra instructions"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioItems":{"type":"string","description":"Generated Content"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ai-writer/topic-sentence":{"post":{"operationId":"run_ai_writer_topic_sentence","summary":"Topic Sentence Generator","tags":["Generators"],"description":"Generate a clear, engaging topic sentence with AI — the opening line that introduces a paragraph's main idea, with a brief explanation.\n\n[Try Topic Sentence Generator in your browser →](https://iotools.cloud/tool/ai-writer/topic-sentence/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":24,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioContext":{"type":"string","description":"Extra instructions"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/anagram-generator":{"post":{"operationId":"run_anagram_generator","summary":"Anagram Generator","tags":["Generators"],"description":"Find dictionary-word anagrams of a word or phrase — single-word matches or combinations of up to 3 words, using a bundled ~8,100-word English dictionary.\n\n[Try Anagram Generator in your browser →](https://iotools.cloud/tool/anagram-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputPhrase":{"type":"string","description":"Word or Phrase"},"ioMaxWords":{"enum":["1","2","3"],"description":"Max Words"},"ioMinWordLength":{"type":"number","description":"Min Word Length","minimum":2,"maximum":10},"ioAllowRepeats":{"type":"boolean","description":"Allow repeated words"},"ioMaxResults":{"type":"number","description":"Max Results","minimum":10,"maximum":5000}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioStatus":{"type":"string","description":"Status"},"ioAnagramOutput":{"type":"string","description":"Anagrams"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ansi-terminal-color-code-generator":{"post":{"operationId":"run_ansi_terminal_color_code_generator","summary":"ANSI Terminal Color Code Generator","tags":["Generators"],"description":"Generate ANSI/VT100 terminal escape codes for colored, styled text — pick a foreground/background color and style attributes (bold, underline, blink, etc.) and get the escape sequence plus a ready-to-run shell printf command.\n\n[Try ANSI Terminal Color Code Generator in your browser →](https://iotools.cloud/tool/ansi-terminal-color-code-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioText":{"type":"string","description":"Sample Text"},"ioForeground":{"enum":["","30","31","32","33","34","35","36","37","90","91","92","93","94","95","96","97"],"description":"Foreground Color"},"ioBackground":{"enum":["","40","41","42","43","44","45","46","47","100","101","102","103","104","105","106","107"],"description":"Background Color"},"ioBold":{"type":"boolean","description":"Bold (1)"},"ioDim":{"type":"boolean","description":"Dim / Faint (2)"},"ioItalic":{"type":"boolean","description":"Italic (3)"},"ioUnderline":{"type":"boolean","description":"Underline (4)"},"ioBlink":{"type":"boolean","description":"Blink (5)"},"ioReverse":{"type":"boolean","description":"Reverse video (7)"},"ioStrike":{"type":"boolean","description":"Strikethrough (9)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioEscapeCode":{"type":"string","description":"Escape Sequence"},"ioShellCommand":{"type":"string","description":"Shell Command"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/api-signature-generator":{"post":{"operationId":"run_api_signature_generator","summary":"API Signature Generator","tags":["Generators"],"description":"Generate an HMAC-SHA256 signature from a message and secret key — the canonical-string signing pattern used by AWS-style and generic API request-authentication schemes. Output as hex or Base64.\n\n[Try API Signature Generator in your browser →](https://iotools.cloud/tool/api-signature-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMessage":{"type":"string","description":"String to sign"},"ioSecretKey":{"type":"string","description":"Secret key"},"ioOutputFormat":{"enum":["hex","base64"],"description":"Output format"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSignature":{"type":"string","description":"Signature"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/argon2-hash-generator":{"post":{"operationId":"run_argon2_hash_generator","summary":"Argon2 Hash Generator","tags":["Generators"],"description":"Generate a real RFC 9106 Argon2id, Argon2i, or Argon2d hash from a password or message, with configurable memory cost, iterations, and parallelism. Runs entirely in your browser — nothing is sent to a server.\n\n[Try Argon2 Hash Generator in your browser →](https://iotools.cloud/tool/argon2-hash-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioPassword":{"type":"string","description":"Password / message to hash"},"ioVariant":{"enum":["argon2id","argon2i","argon2d"],"description":"Variant"},"ioMemoryCost":{"type":"number","description":"Memory cost (m, KiB)","minimum":8,"maximum":65536},"ioIterations":{"type":"number","description":"Iterations (t)","minimum":1,"maximum":10},"ioParallelism":{"type":"number","description":"Parallelism (p)","minimum":1,"maximum":8},"ioHashLength":{"type":"number","description":"Hash length (bytes)","minimum":4,"maximum":128},"ioSaltMode":{"enum":["auto","custom"],"description":"Salt"},"ioCustomSalt":{"type":"string","description":"Custom salt"},"ioOutputFormat":{"enum":["encoded","hex","base64"],"description":"Output format"}},"required":["ioPassword"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioHashResult":{"type":"string","description":"Hash"},"ioSaltUsed":{"type":"string","description":"Salt (hex)"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ascii-box-table-generator":{"post":{"operationId":"run_ascii_box_table_generator","summary":"ASCII Box & Table Generator","tags":["Generators"],"description":"Turn CSV or tab-separated rows into an aligned ASCII table, drawn with Unicode box-drawing characters (┌─┬─┐) or plain ASCII (+, -, |). Auto-detects the delimiter and pads every column to a common width.\n\n[Try ASCII Box & Table Generator in your browser →](https://iotools.cloud/tool/ascii-box-table-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Input Data (CSV or TSV)"},"ioDelimiter":{"enum":["auto","comma","tab"],"description":"Delimiter"},"ioBorderStyle":{"enum":["unicode","ascii"],"description":"Border Style"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"ASCII Table"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ascii-text-art-generator":{"post":{"operationId":"run_ascii_text_art_generator","summary":"ASCII Text Art Generator","tags":["Generators"],"description":"Turn short text into large ASCII-art banner letters using a built-in 5x5 block font. Supports A-Z and 0-9 (input is uppercased); unsupported characters render as blank space.\n\n[Try ASCII Text Art Generator in your browser →](https://iotools.cloud/tool/ascii-text-art-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Input Text"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Text Art"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/barcode-generator":{"post":{"operationId":"run_barcode_generator","summary":"Barcode Generator","tags":["Generators"],"description":"Generate a scannable 1D barcode — EAN-13, EAN-8, UPC-A or Code 128 — as a crisp, scalable SVG with a correctly computed check digit. Runs entirely in your browser.\n\n[Try Barcode Generator in your browser →](https://iotools.cloud/tool/barcode-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioBarcodeFormat":{"enum":["ean13","upca","ean8","code128"],"description":"Format"},"ioBarcodeData":{"type":"string","description":"Barcode Data"},"ioShowText":{"type":"boolean","description":"Show human-readable text"},"ioBarColor":{"type":"string","description":"Bar color"},"ioBgColor":{"type":"string","description":"Background"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioBarcodeValue":{"type":"string","description":"Encoded Value"},"ioSvg":{"type":"string","description":"SVG source"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/basic-auth-generator":{"post":{"operationId":"run_basic_auth_generator","summary":"Basic Auth Generator","tags":["Generators"],"description":"Generate an HTTP Basic Authentication header from a username and password — get both the Base64 token and the ready-to-use Authorization header line.\n\n[Try Basic Auth Generator in your browser →](https://iotools.cloud/tool/basic-auth-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioUsername":{"type":"string","description":"Username"},"ioPassword":{"type":"string","description":"Password"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioAuthHeader":{"type":"string","description":"Authorization header"},"ioEncodedCredentials":{"type":"string","description":"Base64 token (username:password)"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/bcrypt-hash-generator":{"post":{"operationId":"run_bcrypt_hash_generator","summary":"Bcrypt Hash Generator","tags":["Generators"],"description":"Generate a bcrypt password hash with a configurable cost factor, and optionally check it against an existing hash. Runs entirely in your browser — nothing is sent to a server.\n\n[Try Bcrypt Hash Generator in your browser →](https://iotools.cloud/tool/bcrypt-hash-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMessageToHash":{"type":"string","description":"Password / message to hash"},"ioSaltRounds":{"type":"number","description":"Cost factor (salt rounds)","minimum":4,"maximum":14},"ioExpectedHash":{"type":"string","description":"Compare with existing hash (optional)"}},"required":["ioMessageToHash"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioHashResult":{"type":"string","description":"Computed hash"},"ioMatch":{"type":"string","description":"Matches compared hash?"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/bip39-mnemonic-converter":{"post":{"operationId":"run_bip39_mnemonic_converter","summary":"BIP39 Mnemonic Converter","tags":["Generators"],"description":"Generate a random BIP39 mnemonic seed phrase, or validate an existing one and derive its entropy and seed.\n\n[Try BIP39 Mnemonic Converter in your browser →](https://iotools.cloud/tool/bip39-mnemonic-converter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMode":{"enum":["generate","convert"],"description":"Mode"},"ioWordCount":{"enum":["12","15","18","21","24"],"description":"Word Count"},"ioMnemonicInput":{"type":"string","description":"Mnemonic Phrase"},"ioPassphrase":{"type":"string","description":"Passphrase (optional)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioMnemonicOutput":{"type":"string","description":"Mnemonic Phrase"},"ioChecksumStatus":{"type":"string","description":"Status"},"ioEntropy":{"type":"string","description":"Entropy (Hex)"},"ioSeed":{"type":"string","description":"Seed (Hex, 512-bit)"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/border-radius-generator":{"post":{"operationId":"run_border_radius_generator","summary":"Border Radius Generator","tags":["Generators"],"description":"Generate a CSS border-radius declaration from one shared value or four independent corner values (top-left, top-right, bottom-right, bottom-left) in px, %, em, or rem — collapsed to the shortest valid shorthand.\n\n[Try Border Radius Generator in your browser →](https://iotools.cloud/tool/border-radius-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioLinked":{"type":"boolean","description":"Same for all corners"},"ioUnit":{"enum":["px","%","em","rem"],"description":"Unit"},"ioTopLeft":{"type":"number","description":"Top Left","minimum":0,"maximum":200},"ioTopRight":{"type":"number","description":"Top Right","minimum":0,"maximum":200},"ioBottomRight":{"type":"number","description":"Bottom Right","minimum":0,"maximum":200},"ioBottomLeft":{"type":"number","description":"Bottom Left","minimum":0,"maximum":200}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCssCode":{"type":"string","description":"CSS"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/brand-name-generator":{"post":{"operationId":"run_brand_name_generator","summary":"Brand Name Generator","tags":["Generators"],"description":"Generate brandable business names from your keywords — compound words, portmanteaus, Latin roots, playful blends and more, filtered by industry and naming style.\n\n[Try Brand Name Generator in your browser →](https://iotools.cloud/tool/brand-name-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioKeywords":{"type":"string","description":"Keywords"},"ioIndustry":{"enum":["general","technology","health","food","fashion","finance","education","travel","gaming","eco"],"description":"Industry"},"ioStyle":{"enum":["all","modern","compound","portmanteau","latin","playful","minimalist","nature","abstract"],"description":"Name style"},"ioCount":{"type":"number","description":"Names to generate","minimum":3,"maximum":30}},"required":["ioKeywords"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Generated names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/business-lorem-ipsum-generator":{"post":{"operationId":"run_business_lorem_ipsum_generator","summary":"Business Lorem Ipsum Generator","tags":["Generators"],"description":"Generate corporate-buzzword filler text — an alternative to classic lorem ipsum built from business jargon like \"leverage synergistic paradigms\" and \"streamline core competencies\". Choose paragraph count, sentences per paragraph, and optional bullet points.\n\n[Try Business Lorem Ipsum Generator in your browser →](https://iotools.cloud/tool/business-lorem-ipsum-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioParagraphCount":{"type":"number","description":"Number of Paragraphs","minimum":1,"maximum":20},"ioSentenceCount":{"type":"number","description":"Sentences per Paragraph","minimum":1,"maximum":10},"ioStartWithLorem":{"type":"boolean","description":"Start with \"Lorem ipsum\""},"ioIncludeBullets":{"type":"boolean","description":"Include Bullet Points"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Generated Business Ipsum"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/campaign-url-builder":{"post":{"operationId":"run_campaign_url_builder","summary":"Campaign URL Builder","tags":["Generators"],"description":"Build a campaign tracking URL by appending UTM parameters (utm_source, utm_medium, utm_campaign, utm_term, utm_content) to a website URL, correctly URL-encoded for Google Analytics and other marketing platforms.\n\n[Try Campaign URL Builder in your browser →](https://iotools.cloud/tool/campaign-url-builder/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioWebsiteUrl":{"type":"string","description":"Website URL"},"ioSource":{"type":"string","description":"Campaign Source"},"ioMedium":{"type":"string","description":"Campaign Medium"},"ioCampaign":{"type":"string","description":"Campaign Name"},"ioTerm":{"type":"string","description":"Campaign Term"},"ioContent":{"type":"string","description":"Campaign Content"}},"required":["ioWebsiteUrl","ioSource","ioMedium","ioCampaign"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCampaignUrl":{"type":"string","description":"Campaign URL"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/chacha20-key-generator":{"post":{"operationId":"run_chacha20_key_generator","summary":"ChaCha20 Key Generator","tags":["Generators"],"description":"Generate a cryptographically random ChaCha20 encryption key — a fixed 256-bit key, optionally with a 96-bit nonce, output as hex or Base64. Generated entirely in your browser and never transmitted.\n\n[Try ChaCha20 Key Generator in your browser →](https://iotools.cloud/tool/chacha20-key-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioOutputFormat":{"enum":["hex","base64"],"description":"Output format"},"ioIncludeNonce":{"type":"boolean","description":"Also generate a nonce (96-bit)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioKey":{"type":"string","description":"Generated key (256-bit)"},"ioNonce":{"type":"string","description":"Generated nonce (96-bit)"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/citation-generator":{"post":{"operationId":"run_citation_generator","summary":"Citation Generator","tags":["Generators"],"description":"Generate a properly formatted APA, MLA, or Chicago style bibliographic citation for a website, book, or article from author, title, publisher, year, URL and access date.\n\n[Try Citation Generator in your browser →](https://iotools.cloud/tool/citation-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioStyle":{"enum":["apa","mla","chicago"],"description":"Citation Style"},"ioAuthorLast":{"type":"string","description":"Author Last Name"},"ioAuthorFirst":{"type":"string","description":"Author First Name"},"ioTitle":{"type":"string","description":"Title of Work"},"ioSiteName":{"type":"string","description":"Publisher / Site Name"},"ioYear":{"type":"string","description":"Year Published"},"ioUrl":{"type":"string","description":"URL"},"ioAccessDate":{"type":"string","description":"Access Date"}},"required":["ioTitle"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCitation":{"type":"string","description":"Formatted Citation"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/color-mixer":{"post":{"operationId":"run_color_mixer","summary":"Color Mixer","tags":["Generators"],"description":"Mix two colors and get the blend plus every step between them in HEX, RGB and HSL. Choose sRGB, linear-RGB or perceptual OKLab mixing, set per-color opacity, and copy the matching CSS gradient.\n\n[Try Color Mixer in your browser →](https://iotools.cloud/tool/color-mixer/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioStartColor":{"type":"string","description":"Start Color"},"ioStartOpacity":{"type":"number","description":"Start Opacity (%)","minimum":0,"maximum":100},"ioEndColor":{"type":"string","description":"End Color"},"ioEndOpacity":{"type":"number","description":"End Opacity (%)","minimum":0,"maximum":100},"ioSteps":{"type":"number","description":"Steps in Between","minimum":1,"maximum":15},"ioColorSpace":{"enum":["srgb","linear","oklab"],"description":"Mixing Color Space"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioMixedColor":{"type":"string","description":"50/50 Mix"},"ioMixTable":{"type":"string","description":"Blend Steps"},"ioGradientCss":{"type":"string","description":"CSS Gradient"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/identicon-generator":{"post":{"operationId":"run_identicon_generator","summary":"Identicon / Avatar Generator","tags":["Generators"],"description":"Generate a unique, deterministic avatar from any seed string — a username, email, or ID. The same seed always produces the same symmetric pixel-grid identicon, GitHub-style, as a scalable SVG.\n\n[Try Identicon / Avatar Generator in your browser →](https://iotools.cloud/tool/identicon-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSeed":{"type":"string","description":"Seed Text"},"ioGridSize":{"enum":["5","7","9"],"description":"Grid Size"},"ioCellStyle":{"enum":["square","rounded"],"description":"Cell Style"},"ioColorMode":{"enum":["auto","custom"],"description":"Foreground Color"},"ioForegroundColor":{"type":"string","description":"Custom Foreground Color"},"ioBackgroundColor":{"type":"string","description":"Background Color"},"ioSize":{"type":"number","description":"Output Size (px)","minimum":64,"maximum":512}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSvg":{"type":"string","description":"SVG Markup"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/color-swatch-sheet-generator":{"post":{"operationId":"run_color_swatch_sheet_generator","summary":"Color Swatch Sheet Generator","tags":["Generators"],"description":"Turn a list of hex colors (optionally named) into one combined, scalable SVG swatch sheet — a labelled grid you can copy or download as a single file. Runs entirely in your browser.\n\n[Try Color Swatch Sheet Generator in your browser →](https://iotools.cloud/tool/color-swatch-sheet-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioColorList":{"type":"string","description":"Colors (one per line)"},"ioColumns":{"type":"number","description":"Swatches per row","minimum":1,"maximum":10},"ioSwatchSize":{"type":"number","description":"Swatch size (px)","minimum":60,"maximum":320},"ioCornerStyle":{"enum":["square","rounded","pill"],"description":"Corner style"},"ioShowHex":{"type":"boolean","description":"Show hex value"},"ioShowRgb":{"type":"boolean","description":"Show RGB value"},"ioShowName":{"type":"boolean","description":"Show name (when given)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSvg":{"type":"string","description":"SVG source"},"ioTable":{"type":"string","description":"Parsed colors"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/color-scheme-generator":{"post":{"operationId":"run_color_scheme_generator","summary":"Color Scheme Generator","tags":["Generators"],"description":"Generate a harmonious color palette from a base color — complementary, analogous, triadic, tetradic, split-complementary, or monochromatic — using HSL hue rotation. Get hex and HSL values for every color.\n\n[Try Color Scheme Generator in your browser →](https://iotools.cloud/tool/color-scheme-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioBaseColor":{"type":"string","description":"Base Color"},"ioSchemeType":{"enum":["complementary","analogous","triadic","split-complementary","tetradic","monochromatic"],"description":"Scheme Type"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioColorTable":{"type":"string","description":"Color Palette"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/color-tint-shade-generator":{"post":{"operationId":"run_color_tint_shade_generator","summary":"Color Tint & Shade Generator","tags":["Generators"],"description":"Generate a strip of tints (mixed toward white) and shades (mixed toward black) of a base color, with exact hex values for design systems and UI states.\n\n[Try Color Tint & Shade Generator in your browser →](https://iotools.cloud/tool/color-tint-shade-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioBaseColor":{"type":"string","description":"Base Color"},"ioSteps":{"type":"number","description":"Steps","minimum":3,"maximum":9}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioTintShadeTable":{"type":"string","description":"Tints & Shades"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/cookie-builder":{"post":{"operationId":"run_cookie_builder","summary":"Cookie Builder","tags":["Generators"],"description":"Build a Set-Cookie HTTP header string from a cookie name, value, domain, path, max-age, and security flags (Secure, HttpOnly, SameSite) per RFC 6265.\n\n[Try Cookie Builder in your browser →](https://iotools.cloud/tool/cookie-builder/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioName":{"type":"string","description":"Cookie Name"},"ioValue":{"type":"string","description":"Cookie Value"},"ioDomain":{"type":"string","description":"Domain"},"ioPath":{"type":"string","description":"Path"},"ioMaxAge":{"type":"number","description":"Max-Age (seconds)","minimum":0},"ioSecure":{"type":"boolean","description":"Secure (HTTPS only)"},"ioHttpOnly":{"type":"boolean","description":"HttpOnly (blocks JavaScript access)"},"ioSameSite":{"enum":["","Strict","Lax","None"],"description":"SameSite"}},"required":["ioName","ioValue"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCookieHeader":{"type":"string","description":"Set-Cookie Header"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/cors-headers-builder":{"post":{"operationId":"run_cors_headers_builder","summary":"CORS Headers Builder","tags":["Generators"],"description":"Build the standard CORS response headers — Access-Control-Allow-Origin, -Methods, -Headers, -Credentials, -Max-Age and -Expose-Headers — from structured fields, ready to paste into a server response.\n\n[Try CORS Headers Builder in your browser →](https://iotools.cloud/tool/cors-headers-builder/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioOrigin":{"type":"string","description":"Allowed Origin"},"ioMethods":{"type":"string","description":"Allowed Methods"},"ioHeaders":{"type":"string","description":"Allowed Headers"},"ioAllowCredentials":{"type":"boolean","description":"Allow Credentials (cookies, authorization headers)"},"ioMaxAge":{"type":"number","description":"Max-Age (seconds)","minimum":0},"ioExposeHeaders":{"type":"string","description":"Expose Headers"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioHeadersOutput":{"type":"string","description":"Generated CORS Headers"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/crc-checksum-calculator":{"post":{"operationId":"run_crc_checksum_calculator","summary":"CRC Checksum Calculator","tags":["Generators"],"description":"Calculate the CRC-32 or CRC-16/CCITT-FALSE checksum of any text — the same error-detection checksum used by ZIP, PNG, and Ethernet frames.\n\n[Try CRC Checksum Calculator in your browser →](https://iotools.cloud/tool/crc-checksum-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Input Text"},"ioAlgorithm":{"enum":["crc32","crc16"],"description":"CRC Algorithm"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioChecksum":{"type":"string","description":"Checksum (HEX)"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/credit-cards-generator":{"post":{"operationId":"run_credit_cards_generator","summary":"Credit Cards Generator","tags":["Generators"],"description":"Generate fake, Luhn-valid credit card numbers (with a made-up expiry and CVV) for testing payment forms and checkout flows — Visa, Mastercard, American Express and Discover. Not real payment credentials.\n\n[Try Credit Cards Generator in your browser →](https://iotools.cloud/tool/credit-cards-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCardNetwork":{"enum":["visa","mastercard","amex","discover"],"description":"Card Network"},"ioCount":{"type":"number","description":"How many to generate","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCards":{"type":"string","description":"Generated Test Cards"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/cron-expression-generator":{"post":{"operationId":"run_cron_expression_generator","summary":"Cron Expression Generator","tags":["Generators"],"description":"Build a valid 5-field cron expression by pasting one directly, or switch to simple schedule presets — every N minutes, daily, weekly, or monthly — without needing to know cron syntax. A plain-English description shows exactly what the expression runs.\n\n[Try Cron Expression Generator in your browser →](https://iotools.cloud/tool/cron-expression-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioScheduleType":{"enum":["every-minutes","daily","weekly","monthly","custom"],"description":"Schedule Type"},"ioMinuteInterval":{"type":"number","description":"Every N Minutes","minimum":1,"maximum":59},"ioHour":{"type":"number","description":"Hour (0–23)","minimum":0,"maximum":23},"ioMinute":{"type":"number","description":"Minute (0–59)","minimum":0,"maximum":59},"ioDayOfWeek":{"enum":["0","1","2","3","4","5","6"],"description":"Day of Week"},"ioDayOfMonth":{"type":"number","description":"Day of Month (1–31)","minimum":1,"maximum":31},"ioRawCronExpression":{"type":"string","description":"Full Cron Expression"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCronExpression":{"type":"string","description":"Cron Expression"},"ioCronDescription":{"type":"string","description":"What This Means"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/crc32-checksum-generator":{"post":{"operationId":"run_crc32_checksum_generator","summary":"CRC32 Checksum Generator","tags":["Generators"],"description":"Compute the CRC-32 (IEEE 802.3) checksum of any text or uploaded file — the same algorithm used by zip, gzip and PNG — as an 8-digit uppercase hex value.\n\n[Try CRC32 Checksum Generator in your browser →](https://iotools.cloud/tool/crc32-checksum-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Text to checksum"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioChecksum":{"type":"string","description":"CRC32 checksum"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/csr-generator":{"post":{"operationId":"run_csr_generator","summary":"CSR (Certificate Signing Request) Generator","tags":["Generators"],"description":"Generate an RSA private key (PEM) and a signed PKCS#10 Certificate Signing Request (CSR) to submit to a Certificate Authority. Set the subject (CN, O, OU, L, ST, C, email) and Subject Alternative Names (DNS/IP/email/URI); choose RSA 2048/3072/4096 and a SHA-2 signature hash. Generated entirely in your browser — the private key never leaves the page.\n\n[Try CSR (Certificate Signing Request) Generator in your browser →](https://iotools.cloud/tool/csr-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCommonName":{"type":"string","description":"Common Name (CN)"},"ioOrganization":{"type":"string","description":"Organization (O)"},"ioOrganizationalUnit":{"type":"string","description":"Organizational Unit (OU)"},"ioLocality":{"type":"string","description":"City / Locality (L)"},"ioState":{"type":"string","description":"State / Province (ST)"},"ioCountry":{"type":"string","description":"Country (C)"},"ioEmail":{"type":"string","description":"Email Address"},"ioSans":{"type":"string","description":"Subject Alternative Names (SANs)"},"ioKeyBits":{"enum":["2048","3072","4096"],"description":"RSA Key Size"},"ioSignatureHash":{"enum":["sha256","sha384","sha512"],"description":"Signature Hash"}},"required":["ioCommonName"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioPrivateKey":{"type":"string","description":"Private Key (PEM)"},"ioCsr":{"type":"string","description":"Certificate Signing Request (PEM)"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/csp-generator":{"post":{"operationId":"run_csp_generator","summary":"CSP Generator","tags":["Generators"],"description":"Build a Content-Security-Policy header value from structured directive fields (default-src, script-src, style-src, img-src and more) plus a ready-to-paste HTML meta tag.\n\n[Try CSP Generator in your browser →](https://iotools.cloud/tool/csp-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioDefaultSrc":{"type":"string","description":"default-src"},"ioScriptSrc":{"type":"string","description":"script-src"},"ioStyleSrc":{"type":"string","description":"style-src"},"ioImgSrc":{"type":"string","description":"img-src"},"ioFontSrc":{"type":"string","description":"font-src"},"ioConnectSrc":{"type":"string","description":"connect-src"},"ioFrameSrc":{"type":"string","description":"frame-src"},"ioObjectSrc":{"type":"string","description":"object-src"},"ioMediaSrc":{"type":"string","description":"media-src"},"ioFrameAncestors":{"type":"string","description":"frame-ancestors"},"ioBaseUri":{"type":"string","description":"base-uri"},"ioFormAction":{"type":"string","description":"form-action"},"ioUpgradeInsecure":{"type":"boolean","description":"upgrade-insecure-requests"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCspHeader":{"type":"string","description":"Generated CSP Header Value"},"ioMetaTag":{"type":"string","description":"Meta Tag"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/css-box-shadow-generator":{"post":{"operationId":"run_css_box_shadow_generator","summary":"CSS Box Shadow Generator","tags":["Generators"],"description":"Generate a CSS box-shadow declaration from offset, blur, spread, color and opacity values, with optional inset — copy the ready-made rgba() shadow into your stylesheet.\n\n[Try CSS Box Shadow Generator in your browser →](https://iotools.cloud/tool/css-box-shadow-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioOffsetX":{"type":"number","description":"Horizontal Offset (px)","minimum":-200,"maximum":200},"ioOffsetY":{"type":"number","description":"Vertical Offset (px)","minimum":-200,"maximum":200},"ioBlurRadius":{"type":"number","description":"Blur Radius (px)","minimum":0,"maximum":100},"ioSpreadRadius":{"type":"number","description":"Spread Radius (px)","minimum":-50,"maximum":50},"ioColor":{"type":"string","description":"Shadow Color"},"ioOpacity":{"type":"number","description":"Opacity (%)","minimum":0,"maximum":100},"ioInset":{"type":"boolean","description":"Inset shadow"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCssCode":{"type":"string","description":"CSS"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/css-checkbox-generator":{"post":{"operationId":"run_css_checkbox_generator","summary":"CSS Checkbox Generator","tags":["Generators"],"description":"Generate a custom-styled CSS checkbox or toggle switch — pick a style, colors, size, corner radius and animation speed, and copy the ready-made CSS + HTML. Pure CSS, keyboard-accessible, no JavaScript.\n\n[Try CSS Checkbox Generator in your browser →](https://iotools.cloud/tool/css-checkbox-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioStyle":{"enum":["filled","outline","circle","toggle","jelly","cross"],"description":"Checkbox Style"},"ioSize":{"type":"number","description":"Size (px)","minimum":14,"maximum":48},"ioAccentColor":{"type":"string","description":"Accent Color"},"ioBorderColor":{"type":"string","description":"Unchecked Color"},"ioCheckColor":{"type":"string","description":"Check Mark Color"},"ioRadius":{"type":"number","description":"Corner Radius (px)","minimum":0,"maximum":24},"ioDuration":{"type":"number","description":"Animation Duration (seconds)","minimum":0.05,"maximum":1},"ioLabelText":{"type":"string","description":"Label Text"},"ioClassPrefix":{"type":"string","description":"Class Prefix"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCssCode":{"type":"string","description":"CSS"},"ioHtmlCode":{"type":"string","description":"HTML"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/css-clip-path-generator":{"post":{"operationId":"run_css_clip_path_generator","summary":"CSS Clip-Path Generator","tags":["Generators"],"description":"Generate a CSS clip-path declaration — circle, ellipse, inset, or a polygon shape (triangle, hexagon, star, arrow, and more) with a hand-editable custom point list — with a live preview of the clipped shape.\n\n[Try CSS Clip-Path Generator in your browser →](https://iotools.cloud/tool/css-clip-path-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioShapeType":{"enum":["circle","ellipse","inset","triangle","rhombus","pentagon","hexagon","octagon","star","message","arrow","cross","chevron","parallelogram","trapezoid","custom-polygon"],"description":"Shape"},"ioCircleRadius":{"type":"number","description":"Radius %","minimum":1,"maximum":100},"ioCircleCx":{"type":"number","description":"Center X %","minimum":0,"maximum":100},"ioCircleCy":{"type":"number","description":"Center Y %","minimum":0,"maximum":100},"ioEllipseRx":{"type":"number","description":"Radius X %","minimum":1,"maximum":100},"ioEllipseRy":{"type":"number","description":"Radius Y %","minimum":1,"maximum":100},"ioEllipseCx":{"type":"number","description":"Center X %","minimum":0,"maximum":100},"ioEllipseCy":{"type":"number","description":"Center Y %","minimum":0,"maximum":100},"ioInsetTop":{"type":"number","description":"Top %","minimum":0,"maximum":100},"ioInsetRight":{"type":"number","description":"Right %","minimum":0,"maximum":100},"ioInsetBottom":{"type":"number","description":"Bottom %","minimum":0,"maximum":100},"ioInsetLeft":{"type":"number","description":"Left %","minimum":0,"maximum":100},"ioInsetRound":{"type":"number","description":"Corner Radius %","minimum":0,"maximum":50},"ioPolygonPoints":{"type":"string","description":"Polygon Points"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCssCode":{"type":"string","description":"CSS"},"ioPreviewHtml":{"type":"string","description":"HTML Snippet (preview)"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/css-cubic-bezier-generator":{"post":{"operationId":"run_css_cubic_bezier_generator","summary":"CSS Cubic Bezier Generator","tags":["Generators"],"description":"Build a CSS cubic-bezier() timing function from named easing presets (ease, ease-in-out, Material-style sine/quad/cubic/back curves…) or your own X1/Y1/X2/Y2 control points, with a live SVG curve preview. Runs entirely in your browser.\n\n[Try CSS Cubic Bezier Generator in your browser →](https://iotools.cloud/tool/css-cubic-bezier-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioPreset":{"enum":["custom","linear","ease","ease-in","ease-out","ease-in-out","ease-in-sine","ease-out-sine","ease-in-out-sine","ease-in-quad","ease-out-quad","ease-in-out-quad","ease-in-cubic","ease-out-cubic","ease-in-out-cubic","ease-in-quart","ease-out-quart","ease-in-out-quart","ease-in-quint","ease-out-quint","ease-in-out-quint","ease-in-expo","ease-out-expo","ease-in-out-expo","ease-in-circ","ease-out-circ","ease-in-out-circ","ease-in-back","ease-out-back","ease-in-out-back"],"description":"Preset"},"ioX1":{"type":"number","description":"X1","minimum":0,"maximum":1},"ioY1":{"type":"number","description":"Y1"},"ioX2":{"type":"number","description":"X2","minimum":0,"maximum":1},"ioY2":{"type":"number","description":"Y2"},"ioDuration":{"type":"number","description":"Duration (seconds)","minimum":0.1,"maximum":10}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCssCode":{"type":"string","description":"CSS Code"},"ioSvg":{"type":"string","description":"SVG source"},"ioCurveInfo":{"type":"string","description":"Curve details"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/css-design-token-generator":{"post":{"operationId":"run_css_design_token_generator","summary":"CSS Design Token Generator","tags":["Generators"],"description":"Generate a full 50-950 OKLCH color palette plus semantic CSS custom properties — primary, surface, border, ring, and more, with an optional dark-mode variant — from a single brand hex color.\n\n[Try CSS Design Token Generator in your browser →](https://iotools.cloud/tool/css-design-token-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioBrandColor":{"type":"string","description":"Brand Color"},"ioTokenName":{"type":"string","description":"Token Name"},"ioColorFormat":{"enum":["oklch","hex"],"description":"Format"},"ioIncludeDarkMode":{"type":"boolean","description":"Include dark mode variant"},"ioDarkSelector":{"enum":[".dark","[data-theme=\"dark\"]","media"],"description":"Dark selector"},"ioChromaBoost":{"type":"number","description":"Chroma","minimum":0,"maximum":150}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCssTokens":{"type":"string","description":"CSS Tokens"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/css-filter-generator":{"post":{"operationId":"run_css_filter_generator","summary":"CSS Filter Generator","tags":["Generators"],"description":"Build a CSS filter declaration by combining blur, brightness, contrast, grayscale, hue-rotate, invert, opacity, saturate, and sepia sliders into a single chained filter property.\n\n[Try CSS Filter Generator in your browser →](https://iotools.cloud/tool/css-filter-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioBlur":{"type":"number","description":"Blur (px)","minimum":0,"maximum":20},"ioBrightness":{"type":"number","description":"Brightness (%)","minimum":0,"maximum":200},"ioContrast":{"type":"number","description":"Contrast (%)","minimum":0,"maximum":200},"ioGrayscale":{"type":"number","description":"Grayscale (%)","minimum":0,"maximum":100},"ioHueRotate":{"type":"number","description":"Hue Rotate (deg)","minimum":0,"maximum":360},"ioInvert":{"type":"number","description":"Invert (%)","minimum":0,"maximum":100},"ioOpacity":{"type":"number","description":"Opacity (%)","minimum":0,"maximum":100},"ioSaturate":{"type":"number","description":"Saturate (%)","minimum":0,"maximum":200},"ioSepia":{"type":"number","description":"Sepia (%)","minimum":0,"maximum":100}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCssCode":{"type":"string","description":"CSS"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/css-flexbox-generator":{"post":{"operationId":"run_css_flexbox_generator","summary":"CSS Flexbox Generator","tags":["Generators"],"description":"Build a CSS flexbox container rule from flex-direction, flex-wrap, justify-content, align-items, align-content, and gap controls — copy the ready-made .container {} block into your stylesheet.\n\n[Try CSS Flexbox Generator in your browser →](https://iotools.cloud/tool/css-flexbox-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioFlexDirection":{"enum":["row","row-reverse","column","column-reverse"],"description":"flex-direction"},"ioJustifyContent":{"enum":["flex-start","flex-end","center","space-between","space-around","space-evenly"],"description":"justify-content"},"ioAlignItems":{"enum":["stretch","flex-start","flex-end","center","baseline"],"description":"align-items"},"ioFlexWrap":{"enum":["nowrap","wrap","wrap-reverse"],"description":"flex-wrap"},"ioAlignContent":{"enum":["stretch","flex-start","flex-end","center","space-between","space-around","space-evenly"],"description":"align-content"},"ioGap":{"type":"number","description":"Gap (px)","minimum":0,"maximum":100}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCssCode":{"type":"string","description":"CSS"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/css-glassmorphism-generator":{"post":{"operationId":"run_css_glassmorphism_generator","summary":"CSS Glassmorphism Generator","tags":["Generators"],"description":"Generate a frosted-glass CSS block — translucent rgba() background, backdrop-filter blur (with -webkit- prefix), a soft white border and a subtle shadow — from a color, opacity, blur and radius.\n\n[Try CSS Glassmorphism Generator in your browser →](https://iotools.cloud/tool/css-glassmorphism-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioBackgroundColor":{"type":"string","description":"Background Color"},"ioBackgroundOpacity":{"type":"number","description":"Background Opacity (%)","minimum":0,"maximum":100},"ioBlurAmount":{"type":"number","description":"Blur (px)","minimum":0,"maximum":40},"ioBorderRadius":{"type":"number","description":"Border Radius (px)","minimum":0,"maximum":50},"ioBorderOpacity":{"type":"number","description":"Border Opacity (%)","minimum":0,"maximum":100}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCssCode":{"type":"string","description":"CSS"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/css-glitch-text-generator":{"post":{"operationId":"run_css_glitch_text_generator","summary":"CSS Glitch Text Effect Generator","tags":["Generators"],"description":"Generate an animated CSS glitch text effect — chromatic RGB split, clipped bands, jitter or flicker — with your own text, colors, size, intensity and speed. Copy the ready-made CSS + HTML.\n\n[Try CSS Glitch Text Effect Generator in your browser →](https://iotools.cloud/tool/css-glitch-text-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioText":{"type":"string","description":"Text"},"ioEffect":{"enum":["chromatic","clip","jitter","flicker"],"description":"Glitch Effect"},"ioFontSize":{"type":"number","description":"Font Size (px)","minimum":16,"maximum":160},"ioFontFamily":{"enum":["mono","sans","serif"],"description":"Font"},"ioTextColor":{"type":"string","description":"Text Color"},"ioBgColor":{"type":"string","description":"Background Color"},"ioGlitchColor1":{"type":"string","description":"Glitch Color 1"},"ioGlitchColor2":{"type":"string","description":"Glitch Color 2"},"ioIntensity":{"type":"number","description":"Intensity","minimum":1,"maximum":12},"ioDuration":{"type":"number","description":"Loop Duration (seconds)","minimum":0.2,"maximum":5}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCssCode":{"type":"string","description":"CSS"},"ioHtmlCode":{"type":"string","description":"HTML"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/css-gradient-generator":{"post":{"operationId":"run_css_gradient_generator","summary":"CSS Gradient Generator","tags":["Generators"],"description":"Generate a CSS linear, radial, or conic gradient declaration from a set of color stops — copy the ready-made background CSS into your stylesheet.\n\n[Try CSS Gradient Generator in your browser →](https://iotools.cloud/tool/css-gradient-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioGradientType":{"enum":["linear","radial","conic"],"description":"Gradient Type"},"ioAngle":{"type":"number","description":"Angle (deg)","minimum":0,"maximum":360},"ioColor1":{"type":"string","description":"Color 1"},"ioPosition1":{"type":"number","description":"Position 1 (%)","minimum":0,"maximum":100},"ioColor2":{"type":"string","description":"Color 2"},"ioPosition2":{"type":"number","description":"Position 2 (%)","minimum":0,"maximum":100},"ioUseColor3":{"type":"boolean","description":"Add a third color stop"},"ioColor3":{"type":"string","description":"Color 3"},"ioPosition3":{"type":"number","description":"Position 3 (%)","minimum":0,"maximum":100}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCssCode":{"type":"string","description":"CSS"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/css-aurora-blob-generator":{"post":{"operationId":"run_css_aurora_blob_generator","summary":"Aurora / Gradient Blob CSS Background Generator","tags":["Generators"],"description":"Generate a soft, blurred 'aurora' CSS background from 2-5 colored radial-gradient blobs, with adjustable blur, positions and sizes, plus an optional drifting @keyframes animation. Copy the CSS or preview it live.\n\n[Try Aurora / Gradient Blob CSS Background Generator in your browser →](https://iotools.cloud/tool/css-aurora-blob-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioBaseColor":{"type":"string","description":"Base Color"},"ioBlur":{"type":"number","description":"Blur (px)","minimum":0,"maximum":150},"ioBlobCount":{"enum":["2","3","4","5"],"description":"Number of Blobs"},"ioBlob1Color":{"type":"string","description":"Color"},"ioBlob1X":{"type":"number","description":"Position X %","minimum":0,"maximum":100},"ioBlob1Y":{"type":"number","description":"Position Y %","minimum":0,"maximum":100},"ioBlob1Size":{"type":"number","description":"Size %","minimum":10,"maximum":150},"ioBlob2Color":{"type":"string","description":"Color"},"ioBlob2X":{"type":"number","description":"Position X %","minimum":0,"maximum":100},"ioBlob2Y":{"type":"number","description":"Position Y %","minimum":0,"maximum":100},"ioBlob2Size":{"type":"number","description":"Size %","minimum":10,"maximum":150},"ioBlob3Color":{"type":"string","description":"Color"},"ioBlob3X":{"type":"number","description":"Position X %","minimum":0,"maximum":100},"ioBlob3Y":{"type":"number","description":"Position Y %","minimum":0,"maximum":100},"ioBlob3Size":{"type":"number","description":"Size %","minimum":10,"maximum":150},"ioBlob4Color":{"type":"string","description":"Color"},"ioBlob4X":{"type":"number","description":"Position X %","minimum":0,"maximum":100},"ioBlob4Y":{"type":"number","description":"Position Y %","minimum":0,"maximum":100},"ioBlob4Size":{"type":"number","description":"Size %","minimum":10,"maximum":150},"ioBlob5Color":{"type":"string","description":"Color"},"ioBlob5X":{"type":"number","description":"Position X %","minimum":0,"maximum":100},"ioBlob5Y":{"type":"number","description":"Position Y %","minimum":0,"maximum":100},"ioBlob5Size":{"type":"number","description":"Size %","minimum":10,"maximum":150},"ioAnimate":{"type":"boolean","description":"Animate (drift blobs slowly)"},"ioAnimationDuration":{"type":"number","description":"Animation Duration (s)","minimum":5,"maximum":60}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCssCode":{"type":"string","description":"CSS"},"ioPreviewHtml":{"type":"string","description":"HTML Snippet (static preview)"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/css-background-pattern-generator":{"post":{"operationId":"run_css_background_pattern_generator","summary":"CSS Background Pattern Generator","tags":["Generators"],"description":"Generate a seamless repeating background pattern in pure CSS — dots, grids, stripes, checkerboards, waves and 3D cubes — with your own colors, scale and opacity. Copy the ready-made CSS rule and HTML snippet, no image file needed.\n\n[Try CSS Background Pattern Generator in your browser →](https://iotools.cloud/tool/css-background-pattern-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioPattern":{"enum":["dots","dots-offset","grid","graph","stripes-h","stripes-v","stripes-d","crosshatch","isometric","checkerboard","diamonds","triangles","zigzag","waves","cubes"],"description":"Pattern"},"ioColor":{"type":"string","description":"Pattern color"},"ioBgColor":{"type":"string","description":"Background color"},"ioOpacity":{"type":"number","description":"Pattern opacity","minimum":5,"maximum":100},"ioSize":{"type":"number","description":"Pattern size","minimum":4,"maximum":160},"ioWeight":{"type":"number","description":"Line weight","minimum":1,"maximum":24},"ioClassName":{"type":"string","description":"Class name"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCss":{"type":"string","description":"CSS"},"ioHtml":{"type":"string","description":"HTML snippet"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/css-gradient-mesh-generator":{"post":{"operationId":"run_css_gradient_mesh_generator","summary":"CSS Gradient Mesh Generator","tags":["Generators"],"description":"Generate a soft, multi-color \"mesh gradient\" CSS background from four corner colors layered as radial-gradients over a base color (or the same shape as SVG), with adjustable blend size, falloff, and an optional grain overlay.\n\n[Try CSS Gradient Mesh Generator in your browser →](https://iotools.cloud/tool/css-gradient-mesh-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioColorTopLeft":{"type":"string","description":"Top Left"},"ioColorTopRight":{"type":"string","description":"Top Right"},"ioColorBottomLeft":{"type":"string","description":"Bottom Left"},"ioColorBottomRight":{"type":"string","description":"Bottom Right"},"ioColorBase":{"type":"string","description":"Base"},"ioBlendSize":{"type":"number","description":"Blend Size %","minimum":20,"maximum":100},"ioFalloff":{"type":"number","description":"Falloff %","minimum":0,"maximum":100},"ioEnableGrain":{"type":"boolean","description":"Add Grain Overlay"},"ioGrainIntensity":{"type":"number","description":"Grain Intensity %","minimum":5,"maximum":80},"ioOutputFormat":{"enum":["css","svg"],"description":"Output Format"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioMeshCode":{"type":"string","description":"Generated Code"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/css-grid-generator":{"post":{"operationId":"run_css_grid_generator","summary":"CSS Grid Generator","tags":["Generators"],"description":"Generate a CSS Grid container declaration — display: grid with equal-width columns, equal-height rows, and a gap — from simple column/row/gap controls.\n\n[Try CSS Grid Generator in your browser →](https://iotools.cloud/tool/css-grid-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioColumns":{"type":"number","description":"Columns","minimum":1,"maximum":12},"ioRows":{"type":"number","description":"Rows","minimum":1,"maximum":12},"ioGap":{"type":"number","description":"Gap (px)","minimum":0,"maximum":100}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCssCode":{"type":"string","description":"CSS"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/css-keyframe-animation-generator":{"post":{"operationId":"run_css_keyframe_animation_generator","summary":"CSS Keyframe Animation Generator","tags":["Generators"],"description":"Generate a CSS @keyframes animation from ready-made presets (bounce, shake, pulse, fade in, slide in, spin, swing, rubber band, flash, wobble) with duration, easing, delay, iteration count and direction — copy the keyframes plus the animation shorthand to apply it.\n\n[Try CSS Keyframe Animation Generator in your browser →](https://iotools.cloud/tool/css-keyframe-animation-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioAnimationType":{"enum":["bounce","shake","pulse","fadeIn","slideInLeft","spin","swing","rubberBand","flash","wobble"],"description":"Animation Preset"},"ioDuration":{"type":"number","description":"Duration (s)"},"ioTimingFunction":{"enum":["ease","ease-in","ease-out","ease-in-out","linear"],"description":"Timing Function"},"ioDelay":{"type":"number","description":"Delay (s)"},"ioIterationCount":{"type":"string","description":"Iteration Count"},"ioDirection":{"enum":["normal","reverse","alternate","alternate-reverse"],"description":"Direction"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCssCode":{"type":"string","description":"CSS"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/css-loading-animation-generator":{"post":{"operationId":"run_css_loading_animation_generator","summary":"CSS Loading Animation Generator","tags":["Generators"],"description":"Generate a self-contained CSS+HTML loading spinner — ring or pulsing dots — with a custom color, size and speed. Pure CSS, no GIFs or JS required.\n\n[Try CSS Loading Animation Generator in your browser →](https://iotools.cloud/tool/css-loading-animation-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioLoaderType":{"enum":["ring","dots"],"description":"Loader Type"},"ioColor":{"type":"string","description":"Color"},"ioSize":{"type":"number","description":"Size (px)","minimum":16,"maximum":256},"ioSpeed":{"type":"number","description":"Speed (seconds per cycle)","minimum":0.2,"maximum":5}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCssCode":{"type":"string","description":"CSS"},"ioHtmlCode":{"type":"string","description":"HTML"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/css-media-query-generator":{"post":{"operationId":"run_css_media_query_generator","summary":"CSS Media Query Generator","tags":["Generators"],"description":"Generate a CSS @media query block from a breakpoint preset (or custom width) and a condition type — wraps your CSS rules in a ready-to-paste responsive block.\n\n[Try CSS Media Query Generator in your browser →](https://iotools.cloud/tool/css-media-query-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioBreakpointPreset":{"enum":["mobile","tablet","laptop","desktop","custom"],"description":"Breakpoint Preset"},"ioCustomWidth":{"type":"number","description":"Custom Width (px)","minimum":0,"maximum":10000},"ioConditionType":{"enum":["min-width","max-width","orientation-portrait","orientation-landscape"],"description":"Condition Type"},"ioCssContent":{"type":"string","description":"CSS to wrap (optional)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCssCode":{"type":"string","description":"CSS"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/css-neumorphism-generator":{"post":{"operationId":"run_css_neumorphism_generator","summary":"CSS Neumorphism Generator","tags":["Generators"],"description":"Generate soft-UI (neumorphic) CSS — a background color plus a pair of offset box-shadows, one lighter and one darker, in a raised (flat/convex) or pressed (concave) style — from a base color, distance, blur and border radius.\n\n[Try CSS Neumorphism Generator in your browser →](https://iotools.cloud/tool/css-neumorphism-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioBaseColor":{"type":"string","description":"Background Color"},"ioStyle":{"enum":["flat","convex","concave"],"description":"Style"},"ioDistance":{"type":"number","description":"Distance (px)","minimum":1,"maximum":80},"ioBlur":{"type":"number","description":"Blur (px)","minimum":0,"maximum":160},"ioBorderRadius":{"type":"number","description":"Border Radius (px)","minimum":0,"maximum":200}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCssCode":{"type":"string","description":"CSS"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/css-scroll-driven-animation-generator":{"post":{"operationId":"run_css_scroll_driven_animation_generator","summary":"CSS Scroll-Driven Animation Generator","tags":["Generators"],"description":"Generate a native CSS scroll-driven animation — a @keyframes block wired to animation-timeline: view() or scroll() instead of a fixed duration — from ready-made presets (fade in, slide in, scale up, rotate in, reveal clip-path) with a configurable animation range.\n\n[Try CSS Scroll-Driven Animation Generator in your browser →](https://iotools.cloud/tool/css-scroll-driven-animation-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioAnimationType":{"enum":["fadeIn","slideLeft","slideRight","slideBottom","scaleUp","rotateIn","revealClip"],"description":"Animation Preset"},"ioTimelineType":{"enum":["view","scroll"],"description":"Timeline"},"ioAnimationRange":{"enum":["0% 100%","entry 0% cover 100%","entry 0% entry 100%","cover 0% cover 100%","0% 50%"],"description":"Animation Range"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCssCode":{"type":"string","description":"CSS"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/css-transform-generator":{"post":{"operationId":"run_css_transform_generator","summary":"CSS Transform Generator","tags":["Generators"],"description":"Generate a CSS transform declaration combining translate, rotate, scale and skew into one ready-to-paste shorthand.\n\n[Try CSS Transform Generator in your browser →](https://iotools.cloud/tool/css-transform-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioTranslateX":{"type":"number","description":"Translate X (px)"},"ioTranslateY":{"type":"number","description":"Translate Y (px)"},"ioRotate":{"type":"number","description":"Rotate (deg)","minimum":-360,"maximum":360},"ioScaleX":{"type":"number","description":"Scale X"},"ioScaleY":{"type":"number","description":"Scale Y"},"ioSkewX":{"type":"number","description":"Skew X (deg)","minimum":-45,"maximum":45},"ioSkewY":{"type":"number","description":"Skew Y (deg)","minimum":-45,"maximum":45}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCssCode":{"type":"string","description":"CSS"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/css-switch-generator":{"post":{"operationId":"run_css_switch_generator","summary":"CSS Toggle Switch Generator","tags":["Generators"],"description":"Generate a pure-CSS toggle switch — a real checkbox styled with :checked, no JavaScript. Set size, colors, radius and animation speed, pick a scoped class name, and copy accessible HTML + CSS.\n\n[Try CSS Toggle Switch Generator in your browser →](https://iotools.cloud/tool/css-switch-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioStyle":{"enum":["track","slim","outlined"],"description":"Switch Style"},"ioWidth":{"type":"number","description":"Width (px)","minimum":24,"maximum":160},"ioHeight":{"type":"number","description":"Height (px)","minimum":12,"maximum":80},"ioBorderRadius":{"type":"number","description":"Border Radius (px)","minimum":0,"maximum":40},"ioOffColor":{"type":"string","description":"Off Color"},"ioOnColor":{"type":"string","description":"On Color"},"ioKnobColor":{"type":"string","description":"Knob Color"},"ioTransition":{"type":"number","description":"Animation (ms)","minimum":0,"maximum":1000},"ioKnobShadow":{"type":"boolean","description":"Knob shadow"},"ioClassName":{"type":"string","description":"Class Name"},"ioLabelText":{"type":"string","description":"Label Text"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioHtmlCode":{"type":"string","description":"HTML"},"ioCssCode":{"type":"string","description":"CSS"},"ioPreviewHtml":{"type":"string","description":"Preview markup (static)"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/css-triangle-generator":{"post":{"operationId":"run_css_triangle_generator","summary":"CSS Triangle Generator","tags":["Generators"],"description":"Generate a pure-CSS triangle pointing in any of 8 directions — the classic zero-size border trick or a modern clip-path polygon — with your own width, height and color, plus the HTML snippet and an SVG preview. Runs entirely in your browser.\n\n[Try CSS Triangle Generator in your browser →](https://iotools.cloud/tool/css-triangle-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioDirection":{"enum":["up","down","left","right","top-left","top-right","bottom-right","bottom-left"],"description":"Direction"},"ioTechnique":{"enum":["border","clip-path"],"description":"Technique"},"ioWidth":{"type":"number","description":"Width (px)","minimum":1,"maximum":500},"ioHeight":{"type":"number","description":"Height (px)","minimum":1,"maximum":500},"ioColor":{"type":"string","description":"Triangle Color"},"ioClassName":{"type":"string","description":"CSS Class Name"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCssCode":{"type":"string","description":"CSS"},"ioHtmlCode":{"type":"string","description":"HTML"},"ioSvg":{"type":"string","description":"SVG source"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/cuid2-generator":{"post":{"operationId":"run_cuid2_generator","summary":"CUID2 Generator","tags":["Generators"],"description":"Generate collision-resistant CUID2 identifiers — lowercase letters and digits, always starting with a letter, with a configurable length and batch count. A real SHA3-512-based CUID2 implementation, computed entirely in your browser.\n\n[Try CUID2 Generator in your browser →](https://iotools.cloud/tool/cuid2-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioLength":{"type":"number","description":"ID length","minimum":4,"maximum":32},"ioCount":{"type":"number","description":"How many to generate","minimum":1,"maximum":50}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCuids":{"type":"string","description":"Generated CUID2s"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/curl-command-builder":{"post":{"operationId":"run_curl_command_builder","summary":"cURL Command Builder","tags":["Generators"],"description":"Build a ready-to-paste curl command from a URL, HTTP method, headers, request body, Basic Auth, and common flags (-L, -k, -v, -i) — no manual shell quoting required.\n\n[Try cURL Command Builder in your browser →](https://iotools.cloud/tool/curl-command-builder/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioUrl":{"type":"string","description":"URL"},"ioMethod":{"enum":["GET","POST","PUT","PATCH","DELETE","HEAD"],"description":"HTTP Method"},"ioHeaders":{"type":"string","description":"Headers"},"ioBody":{"type":"string","description":"Request Body"},"ioBasicAuthUser":{"type":"string","description":"Basic Auth Username"},"ioBasicAuthPass":{"type":"string","description":"Basic Auth Password"},"ioFollowRedirects":{"type":"boolean","description":"Follow redirects (-L)"},"ioInsecure":{"type":"boolean","description":"Skip SSL certificate verification (-k)"},"ioVerbose":{"type":"boolean","description":"Verbose output (-v)"},"ioIncludeHeaders":{"type":"boolean","description":"Include response headers (-i)"}},"required":["ioUrl"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCurlCommand":{"type":"string","description":"cURL Command"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/date-range-generator":{"post":{"operationId":"run_date_range_generator","summary":"Date Range Generator","tags":["Generators"],"description":"Generate a list of dates (or timestamps, at hour/minute granularity) between a start and end date, stepped by a configurable interval. Useful for building test data, populating a calendar, or scripting a batch job. Runs entirely in your browser.\n\n[Try Date Range Generator in your browser →](https://iotools.cloud/tool/date-range-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioStartDate":{"type":"string","description":"Start Date"},"ioEndDate":{"type":"string","description":"End Date"},"ioStep":{"type":"number","description":"Step","minimum":1},"ioUnit":{"enum":["days","hours","minutes"],"description":"Unit"},"ioReverse":{"type":"boolean","description":"List newest first"}},"required":["ioStartDate","ioEndDate"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Date Range"},"ioCount":{"type":"string","description":"Total"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/directory-tree-generator":{"post":{"operationId":"run_directory_tree_generator","summary":"Directory Tree Generator","tags":["Generators"],"description":"Turn an indented file list or a set of slash-separated paths into a clean ASCII directory tree. Auto-detects the input format, supports box-drawing or plain-ASCII connectors, optional 📁/📄 icons, trailing folder slashes, and a compact layout.\n\n[Try Directory Tree Generator in your browser →](https://iotools.cloud/tool/directory-tree-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioOriginalText":{"type":"string","description":"Input (Indented List or Paths)"},"ioInputFormat":{"enum":["auto","indent","paths"],"description":"Input Format"},"ioTreeStyle":{"enum":["box","ascii","spaces"],"description":"Tree Style"},"ioShowIcons":{"type":"boolean","description":"Show file/folder icons"},"ioTrailingSlash":{"type":"boolean","description":"Append trailing slash to folders"},"ioCompactMode":{"type":"boolean","description":"Compact mode (single-line indent)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioGeneratedTree":{"type":"string","description":"Generated Tree"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/dna-rna-sequence-generator":{"post":{"operationId":"run_dna_rna_sequence_generator","summary":"DNA / RNA Sequence Generator","tags":["Generators"],"description":"Generate random DNA or RNA sequences with a target GC content, or convert an input strand — complement, reverse complement, transcribe (DNA→RNA) and reverse transcribe. Outputs plain text or FASTA with base-composition stats.\n\n[Try DNA / RNA Sequence Generator in your browser →](https://iotools.cloud/tool/dna-rna-sequence-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMode":{"enum":["generate-dna","generate-rna","complement","reverse-complement","transcribe","reverse-transcribe"],"description":"Operation"},"ioInputSequence":{"type":"string","description":"Input Sequence"},"ioLength":{"type":"number","description":"Sequence Length (bp)","minimum":1,"maximum":10000},"ioGcContent":{"type":"number","description":"GC Content %","minimum":0,"maximum":100},"ioCount":{"type":"number","description":"Number of Sequences","minimum":1,"maximum":50},"ioIupacCodes":{"type":"boolean","description":"Include IUPAC ambiguity codes (R, Y, S, W, K, M, N)"},"ioFormat":{"enum":["plain","fasta"],"description":"Output Format"},"ioFastaHeader":{"type":"string","description":"FASTA Header Prefix"},"ioLineWrap":{"type":"number","description":"Line Wrap (chars)","minimum":0,"maximum":200}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Sequence Output"},"ioStats":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/dns-zone-file-generator":{"post":{"operationId":"run_dns_zone_file_generator","summary":"DNS Zone File Generator","tags":["Generators"],"description":"Generate a BIND-style DNS zone file from a domain, SOA settings, and a list of records (A, AAAA, CNAME, MX, TXT, NS, SRV, CAA). Handles TTL shorthand (1h/1d/1w), trailing-dot fully-qualified names, and SOA serial/refresh/retry/expire fields. Runs entirely in your browser — no DNS lookups.\n\n[Try DNS Zone File Generator in your browser →](https://iotools.cloud/tool/dns-zone-file-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioDomain":{"type":"string","description":"Domain"},"ioPrimaryNs":{"type":"string","description":"Primary Nameserver"},"ioAdminEmail":{"type":"string","description":"Admin Email"},"ioSerial":{"type":"string","description":"Serial"},"ioDefaultTtl":{"type":"string","description":"Default TTL"},"ioRefresh":{"type":"string","description":"Refresh"},"ioRetry":{"type":"string","description":"Retry"},"ioExpire":{"type":"string","description":"Expire"},"ioMinimumTtl":{"type":"string","description":"Minimum TTL"},"ioRecords":{"type":"string","description":"DNS Records"}},"required":["ioDomain","ioPrimaryNs","ioAdminEmail"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioZoneOutput":{"type":"string","description":"Zone File"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/dockerfile-generator":{"post":{"operationId":"run_dockerfile_generator","summary":"Dockerfile Generator","tags":["Generators"],"description":"Generate a production-ready single-stage Dockerfile from structured inputs — pick a base stack (Node, Python, Go, Java, Ruby, PHP, Rust, .NET, Nginx, or a custom image), then set WORKDIR, build ARGs, ENV vars, system packages, dependency install, build command, exposed ports, a non-root user, a HEALTHCHECK, and ENTRYPOINT/CMD in exec or shell form. Runs entirely in your browser.\n\n[Try Dockerfile Generator in your browser →](https://iotools.cloud/tool/dockerfile-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioStack":{"enum":["node","python","go","openjdk","ruby","php","rust","dotnet","nginx","alpine","ubuntu","debian","custom"],"description":"Stack"},"ioImageTag":{"type":"string","description":"Image Tag"},"ioCustomImage":{"type":"string","description":"Base Image"},"ioWorkdir":{"type":"string","description":"WORKDIR"},"ioBuildArgs":{"type":"string","description":"Build ARGs"},"ioEnvVars":{"type":"string","description":"Environment Variables"},"ioSystemPackages":{"type":"string","description":"System Packages"},"ioDepFiles":{"type":"string","description":"Dependency Files"},"ioInstallDeps":{"type":"string","description":"Install Command"},"ioBuildCommand":{"type":"string","description":"Build Command"},"ioExposePorts":{"type":"string","description":"Expose Ports"},"ioRunUser":{"type":"string","description":"Non-root USER"},"ioHealthcheck":{"type":"string","description":"HEALTHCHECK"},"ioHealthcheckInterval":{"enum":["10s","30s","60s","5m"],"description":"Healthcheck Interval"},"ioCmdForm":{"enum":["exec","shell"],"description":"Command Form"},"ioEntrypointValue":{"type":"string","description":"ENTRYPOINT"},"ioCmdValue":{"type":"string","description":"CMD"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Generated Dockerfile"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ecdsa-ed25519-key-generator":{"post":{"operationId":"run_ecdsa_ed25519_key_generator","summary":"ECDSA / Ed25519 Key Generator","tags":["Generators"],"description":"Generate an elliptic-curve key pair (Ed25519, ECDSA P-256/P-384/P-521, or secp256k1) as PEM (PKCS#8/SPKI), JWK, or raw hex, with the public key's JWK thumbprint. Generated in your browser and never transmitted.\n\n[Try ECDSA / Ed25519 Key Generator in your browser →](https://iotools.cloud/tool/ecdsa-ed25519-key-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioAlgorithm":{"enum":["ed25519","ecdsa-p256","ecdsa-p384","ecdsa-p521","ecdsa-secp256k1"],"description":"Algorithm"},"ioOutputFormat":{"enum":["pem","jwk","hex"],"description":"Output format"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioPrivateKey":{"type":"string","description":"Private key"},"ioPublicKey":{"type":"string","description":"Public key"},"ioThumbprint":{"type":"string","description":"JWK thumbprint (kid)"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/editorconfig-generator":{"post":{"operationId":"run_editorconfig_generator","summary":"EditorConfig Generator","tags":["Generators"],"description":"Generate a .editorconfig file from indent style, indent size, end-of-line, charset, and trailing-whitespace settings, plus optional per-language override blocks for Markdown, YAML, JSON, Python, Go, PHP, and more.\n\n[Try EditorConfig Generator in your browser →](https://iotools.cloud/tool/editorconfig-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioIndentStyle":{"enum":["space","tab",""],"description":"Indent Style"},"ioIndentSize":{"type":"number","description":"Indent Size","minimum":1,"maximum":8},"ioTabWidth":{"type":"number","description":"Tab Width","minimum":1,"maximum":16},"ioEndOfLine":{"enum":["lf","crlf","cr",""],"description":"End of Line"},"ioCharset":{"enum":["utf-8","utf-8-bom","latin1","utf-16be","utf-16le",""],"description":"Charset"},"ioMaxLineLength":{"type":"number","description":"Max Line Length","minimum":0,"maximum":1000},"ioTrimTrailingWhitespace":{"type":"boolean","description":"Trim trailing whitespace"},"ioInsertFinalNewline":{"type":"boolean","description":"Insert final newline"},"ioIncludeHeader":{"type":"boolean","description":"Include descriptive header comment"},"ioOverrideMarkdown":{"type":"boolean","description":"[*.md] — preserve trailing whitespace, no max line length"},"ioOverrideYaml":{"type":"boolean","description":"[*.{yml,yaml}] — 2-space indent"},"ioOverrideJson":{"type":"boolean","description":"[*.json] — 2-space indent"},"ioOverrideJs":{"type":"boolean","description":"[*.{js,jsx,ts,tsx,mjs,cjs}] — 2-space indent"},"ioOverrideCss":{"type":"boolean","description":"[*.{css,scss,sass,less}] — 2-space indent"},"ioOverrideHtml":{"type":"boolean","description":"[*.{html,htm,xml,svg}] — 2-space indent"},"ioOverridePython":{"type":"boolean","description":"[*.py] — 4-space indent (PEP 8)"},"ioOverrideGo":{"type":"boolean","description":"[*.go] — tab indent (gofmt)"},"ioOverridePhp":{"type":"boolean","description":"[*.php] — 4-space indent (PSR-12)"},"ioOverrideRuby":{"type":"boolean","description":"[*.rb] — 2-space indent"},"ioOverrideMakefile":{"type":"boolean","description":"[{Makefile,makefile,GNUmakefile}] — tab indent (required by make)"},"ioOverrideBat":{"type":"boolean","description":"[*.{bat,cmd}] — CRLF line endings"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Generated .editorconfig"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/email-signature-html-generator":{"post":{"operationId":"run_email_signature_html_generator","summary":"Email Signature HTML Generator","tags":["Generators"],"description":"Generate a clean, inline-styled HTML email signature for Gmail, Outlook and Apple Mail. Enter your name, title, contact details, photo, logo and social links, then copy or download the ready-to-paste HTML.\n\n[Try Email Signature HTML Generator in your browser →](https://iotools.cloud/tool/email-signature-html-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSigFullName":{"type":"string","description":"Full name"},"ioSigJobTitle":{"type":"string","description":"Job title"},"ioSigCompany":{"type":"string","description":"Company"},"ioSigPhone":{"type":"string","description":"Phone"},"ioSigEmail":{"type":"string","description":"Email"},"ioSigWebsite":{"type":"string","description":"Website"},"ioSigAddress":{"type":"string","description":"Address"},"ioSigLayout":{"enum":["horizontal","vertical","compact"],"description":"Layout"},"ioSigFont":{"enum":["system","helvetica","georgia","courier"],"description":"Font family"},"ioSigAccentColor":{"type":"string","description":"Accent colour"},"ioSigTextColor":{"type":"string","description":"Text colour"},"ioSigFontSize":{"enum":["12","13","14"],"description":"Font size"},"ioSigPhotoEnabled":{"type":"boolean","description":"Include profile photo"},"ioSigPhotoUrl":{"type":"string","description":"Photo URL"},"ioSigPhotoShape":{"enum":["circle","rounded","square"],"description":"Photo shape"},"ioSigLogoEnabled":{"type":"boolean","description":"Include company logo"},"ioSigLogoUrl":{"type":"string","description":"Logo URL"},"ioSigLinkedinUrl":{"type":"string","description":"LinkedIn URL"},"ioSigTwitterUrl":{"type":"string","description":"Twitter / X URL"},"ioSigGithubUrl":{"type":"string","description":"GitHub URL"},"ioSigInstagramUrl":{"type":"string","description":"Instagram URL"},"ioSigDisclaimerEnabled":{"type":"boolean","description":"Include disclaimer / legal note"},"ioSigDisclaimerText":{"type":"string","description":"Disclaimer text"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSigHtml":{"type":"string","description":"Signature HTML"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/env-secrets-generator":{"post":{"operationId":"run_env_secrets_generator","summary":"Env Secrets Generator","tags":["Generators"],"description":"Generate cryptographically random secrets for your .env variables — hex, Base64, alphanumeric, or alphanumeric + symbols, at any length. Produces ready-to-paste KEY=value lines. Generated in your browser and never transmitted.\n\n[Try Env Secrets Generator in your browser →](https://iotools.cloud/tool/env-secrets-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioVariableNames":{"type":"string","description":"Variable names"},"ioFormat":{"enum":["base64","hex","alphanumeric","alphanumeric+symbols"],"description":"Secret format"},"ioLength":{"type":"number","description":"Secret length","minimum":8,"maximum":256},"ioShowComments":{"type":"boolean","description":"Add a comment above each variable"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioEnvOutput":{"type":"string","description":".env output"},"ioStrength":{"type":"string","description":"Strength"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/eslint-config-generator":{"post":{"operationId":"run_eslint_config_generator","summary":"ESLint Config Generator","tags":["Generators"],"description":"Generate an ESLint config file — modern flat config (eslint.config.js) or legacy .eslintrc.json — from a framework preset (Vanilla, Node, React, Next.js, Vue, TypeScript), an optional style guide (Airbnb, Standard, Google, Prettier), language options, environments, and common rule toggles.\n\n[Try ESLint Config Generator in your browser →](https://iotools.cloud/tool/eslint-config-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioFormat":{"enum":["flat","legacy"],"description":"Config Format"},"ioFramework":{"enum":["vanilla","node","react","nextjs","vue","typescript"],"description":"Framework / Environment"},"ioStyleGuide":{"enum":["none","airbnb","standard","google","prettier"],"description":"Style Guide"},"ioUseTypescript":{"type":"boolean","description":"Use TypeScript (@typescript-eslint)"},"ioEcmaVersion":{"enum":["latest","2024","2023","2022","2021","2020","2019","2018"],"description":"ecmaVersion"},"ioSourceType":{"enum":["module","commonjs","script"],"description":"sourceType"},"ioEnvBrowser":{"type":"boolean","description":"browser globals (window, document, fetch)"},"ioEnvNode":{"type":"boolean","description":"node globals (process, require, __dirname)"},"ioEnvJest":{"type":"boolean","description":"jest globals (describe, test, expect)"},"ioEnvMocha":{"type":"boolean","description":"mocha globals"},"ioRuleSemi":{"enum":["error","warn","off"],"description":"semi (require semicolons)"},"ioRuleQuotes":{"enum":["single","double","backtick","off"],"description":"quotes"},"ioRuleIndent":{"enum":["2","4","tab","off"],"description":"indent"},"ioRuleNoUnusedVars":{"enum":["error","warn","off"],"description":"no-unused-vars"},"ioRuleNoConsole":{"enum":["error","warn","off"],"description":"no-console"},"ioRuleEqeqeq":{"enum":["error","warn","off"],"description":"eqeqeq (strict equality)"},"ioRulePreferConst":{"enum":["error","warn","off"],"description":"prefer-const"},"ioRuleNoVar":{"enum":["error","warn","off"],"description":"no-var"},"ioIncludeComments":{"type":"boolean","description":"Include inline comments explaining each option"},"ioIncludeHeader":{"type":"boolean","description":"Include descriptive header comment"},"ioIncludeInstall":{"type":"boolean","description":"Include npm install command at top"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Generated Config"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/fake-data-generator":{"post":{"operationId":"run_fake_data_generator","summary":"Fake Data Generator","tags":["Generators"],"description":"Generate realistic mock data — names, emails, UUIDs, phone numbers, addresses and more — as JSON, CSV or NDJSON. Define your own schema of named fields and row count for seeding databases, testing and demos.\n\n[Try Fake Data Generator in your browser →](https://iotools.cloud/tool/fake-data-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSchema":{"type":"string","description":"Fields"},"ioRowCount":{"type":"number","description":"Row count","minimum":1,"maximum":1000},"ioOutputFormat":{"enum":["json","csv","ndjson"],"description":"Output format"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Generated Data"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/fake-email-address-generator":{"post":{"operationId":"run_fake_email_address_generator","summary":"Fake Email Address Generator","tags":["Generators"],"description":"Generate realistic-looking fake email addresses for testing, demos and sample data. Choose the local-part format, a popular or custom domain, how many to create, and export as a plain list, CSV or JSON.\n\n[Try Fake Email Address Generator in your browser →](https://iotools.cloud/tool/fake-email-address-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioFormat":{"enum":["firstname.lastname","f.lastname","firstnamelastname","firstname_lastname","username","random"],"description":"Email format"},"ioDomain":{"enum":["random","gmail.com","yahoo.com","outlook.com","hotmail.com","protonmail.com","custom"],"description":"Domain"},"ioCustomDomain":{"type":"string","description":"Custom domain"},"ioCount":{"type":"number","description":"How many","minimum":1,"maximum":1000},"ioExportFormat":{"enum":["plain","csv","json"],"description":"Output format"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Generated emails"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/fake-iban-generator":{"post":{"operationId":"run_fake_iban_generator","summary":"Fake IBAN Generator","tags":["Generators"],"description":"Generate fake but structurally valid IBANs for testing — correct country length, correct SWIFT-registry BBAN format and real ISO 7064 check digits, for 77 countries. Optional seed for reproducible fixtures. Runs entirely in your browser.\n\n[Try Fake IBAN Generator in your browser →](https://iotools.cloud/tool/fake-iban-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCountry":{"enum":["random","AD","AE","AL","AT","AZ","BA","BE","BG","BH","BR","BY","CH","CR","CY","CZ","DE","DK","DO","EE","EG","ES","FI","FO","FR","GB","GE","GI","GL","GR","GT","HR","HU","IE","IL","IQ","IS","IT","JO","KW","KZ","LB","LC","LI","LT","LU","LV","LY","MC","MD","ME","MK","MR","MT","MU","NL","NO","PK","PL","PS","PT","QA","RO","RS","SA","SC","SD","SE","SI","SK","SM","ST","SV","TL","TN","TR","UA","VA","VG","XK"],"description":"Country"},"ioCount":{"type":"number","description":"How many","minimum":1,"maximum":100},"ioFormat":{"enum":["spaced","compact"],"description":"Format"},"ioSeed":{"type":"string","description":"Seed (optional)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioIbans":{"type":"string","description":"IBANs"},"ioDetails":{"type":"string","description":"Format details"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/fake-ip-address-generator":{"post":{"operationId":"run_fake_ip_address_generator","summary":"Fake IP Address Generator","tags":["Generators"],"description":"Generate random, valid IPv4 or IPv6 addresses from any RFC range — public, RFC 1918 private, loopback, CGNAT, link-local, multicast, documentation or ULA. Optionally append a CIDR suffix and dedupe. Great for test data, mock configs and QA.\n\n[Try Fake IP Address Generator in your browser →](https://iotools.cloud/tool/fake-ip-address-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioVersion":{"enum":["ipv4","ipv6"],"description":"IP Version"},"ioRangeV4":{"enum":["any","public","private","loopback","cgnat","linklocal","multicast","documentation"],"description":"Range Type"},"ioRangeV6":{"enum":["global","ula","linklocal","multicast","loopback","documentation"],"description":"Range Type"},"ioCount":{"type":"number","description":"Count","minimum":1,"maximum":1000},"ioWithCidr":{"type":"boolean","description":"Append CIDR suffix (host /32 or /128)"},"ioUnique":{"type":"boolean","description":"Unique addresses (no duplicates)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Generated Addresses"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/fibonacci-generator":{"post":{"operationId":"run_fibonacci_generator","summary":"Fibonacci Generator","tags":["Generators"],"description":"Generate Fibonacci, Lucas, Tribonacci and Pell sequences by term count or up to a maximum value, with custom starting values. See golden-ratio convergence and check whether any number is a Fibonacci number.\n\n[Try Fibonacci Generator in your browser →](https://iotools.cloud/tool/fibonacci-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSequenceType":{"enum":["fibonacci","lucas","tribonacci","pell"],"description":"Sequence type"},"ioMode":{"enum":["terms","value"],"description":"Generate"},"ioTermCount":{"type":"number","description":"Number of terms","minimum":1,"maximum":1000},"ioMaxValue":{"type":"string","description":"Maximum value"},"ioStartA":{"type":"string","description":"Starting value 1"},"ioStartB":{"type":"string","description":"Starting value 2"},"ioCheckNumber":{"type":"string","description":"Number to check"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSequence":{"type":"string","description":"Generated sequence"},"ioStats":{"type":"string"},"ioRatios":{"type":"string"},"ioChecker":{"type":"string","description":""}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/font-generator":{"post":{"operationId":"run_font_generator","summary":"Font Generator","tags":["Generators"],"description":"Turn plain text into dozens of copy-paste fancy fonts — bold, italic, cursive script, fraktur, small caps, upside-down, circled, strikethrough and more — using Unicode look-alike glyphs that work in bios, usernames and messages.\n\n[Try Font Generator in your browser →](https://iotools.cloud/tool/font-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Input text"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Fancy fonts"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/font-modular-scale-generator":{"post":{"operationId":"run_font_modular_scale_generator","summary":"Font Modular Scale Generator","tags":["Generators"],"description":"Generate a harmonious typographic modular scale from a base font size and a ratio (major third, golden ratio, perfect fifth, or a custom value). Get a full step table plus ready-to-paste CSS custom properties, SCSS variables, a Tailwind fontSize config, or JSON.\n\n[Try Font Modular Scale Generator in your browser →](https://iotools.cloud/tool/font-modular-scale-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioBaseSize":{"type":"number","description":"Base Size (px)","minimum":8,"maximum":64},"ioRatio":{"enum":["1.067","1.125","1.2","1.25","1.333","1.414","1.5","1.618","2","custom"],"description":"Ratio"},"ioCustomRatio":{"type":"number","description":"Custom Ratio","minimum":1.01,"maximum":3},"ioUnit":{"enum":["rem","em","px"],"description":"Unit"},"ioDecimals":{"type":"number","description":"Decimals","minimum":0,"maximum":5},"ioExportFormat":{"enum":["css","scss","tailwind","json"],"description":"Export Format"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioScaleTable":{"type":"string","description":"Scale"},"ioExportCode":{"type":"string","description":"Export Code"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/git-unified-diff-patch-generator":{"post":{"operationId":"run_git_unified_diff_patch_generator","summary":"Git Unified Diff Patch Generator","tags":["Generators"],"description":"Compare two blocks of text and generate a Git-style unified diff (.patch) with proper @@ hunk headers, using a Myers diff algorithm. Configure context lines and the a/b file paths.\n\n[Try Git Unified Diff Patch Generator in your browser →](https://iotools.cloud/tool/git-unified-diff-patch-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioOriginalText":{"type":"string","description":"Original"},"ioModifiedText":{"type":"string","description":"Modified"},"ioFromFile":{"type":"string","description":"Original path (--- header)"},"ioToFile":{"type":"string","description":"Modified path (+++ header)"},"ioContextLines":{"type":"number","description":"Context lines","minimum":0,"maximum":10}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioUnifiedDiff":{"type":"string","description":"Unified diff (.patch)"},"ioSummary":{"type":"string","description":"Summary"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/github-actions-workflow-generator":{"post":{"operationId":"run_github_actions_workflow_generator","summary":"GitHub Actions Workflow Generator","tags":["Generators"],"description":"Generate a ready-to-commit GitHub Actions CI workflow (.github/workflows/*.yml) from your stack and options — pick a language (Node.js, Python, Go, Rust, PHP, Ruby, Java, or .NET), a version and OS matrix, trigger events (push / pull_request / schedule / workflow_dispatch), lint/test/build steps, an optional deploy job, dependency caching and concurrency. Runs entirely in your browser.\n\n[Try GitHub Actions Workflow Generator in your browser →](https://iotools.cloud/tool/github-actions-workflow-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioWorkflowName":{"type":"string","description":"Workflow Name"},"ioStack":{"enum":["node","python","go","rust","php","ruby","java","dotnet"],"description":"Stack"},"ioStackVersions":{"type":"string","description":"Versions"},"ioPackageManager":{"enum":["npm","yarn","pnpm"],"description":"Package Manager"},"ioPythonManager":{"enum":["pip","poetry","pipenv"],"description":"Package Manager"},"ioJavaDistribution":{"enum":["temurin","zulu","adopt","microsoft","corretto"],"description":"Java Distribution"},"ioJavaBuild":{"enum":["maven","gradle"],"description":"Build Tool"},"ioTriggerPush":{"type":"boolean","description":"On push"},"ioPushBranches":{"type":"string","description":"Push branches"},"ioTriggerPR":{"type":"boolean","description":"On pull_request"},"ioPRBranches":{"type":"string","description":"PR target branches"},"ioTriggerSchedule":{"type":"boolean","description":"On schedule (cron)"},"ioCronExpression":{"type":"string","description":"Cron expression"},"ioTriggerDispatch":{"type":"boolean","description":"On workflow_dispatch (manual)"},"ioMatrixOS":{"type":"string","description":"Operating Systems"},"ioStepLint":{"type":"boolean","description":"Run lint step"},"ioLintCommand":{"type":"string","description":"Lint command"},"ioStepTest":{"type":"boolean","description":"Run test step"},"ioTestCommand":{"type":"string","description":"Test command"},"ioStepBuild":{"type":"boolean","description":"Run build step"},"ioBuildCommand":{"type":"string","description":"Build command"},"ioStepDeploy":{"type":"boolean","description":"Add a deploy job"},"ioDeployBranch":{"type":"string","description":"Deploy from branch"},"ioDeployCommand":{"type":"string","description":"Deploy command"},"ioEnableCache":{"type":"boolean","description":"Cache dependencies"},"ioEnableConcurrency":{"type":"boolean","description":"Cancel in-progress runs on the same ref"},"ioEnvVars":{"type":"string","description":"Environment Variables"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Generated .github/workflows/ci.yml"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/gitignore-generator":{"post":{"operationId":"run_gitignore_generator","summary":"Gitignore Generator","tags":["Generators"],"description":"Generate a .gitignore file by selecting the platforms, languages, frameworks, IDEs and tools your project uses — Node, Python, Java, Go, Rust, macOS, Windows, VS Code, JetBrains, Terraform, Docker and more. Merges the chosen templates, de-duplicates repeated patterns, and lets you append custom rules.\n\n[Try Gitignore Generator in your browser →](https://iotools.cloud/tool/gitignore-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioTplNode":{"type":"boolean","description":"Node"},"ioTplPython":{"type":"boolean","description":"Python"},"ioTplJava":{"type":"boolean","description":"Java"},"ioTplGo":{"type":"boolean","description":"Go"},"ioTplRust":{"type":"boolean","description":"Rust"},"ioTplRuby":{"type":"boolean","description":"Ruby"},"ioTplPhp":{"type":"boolean","description":"PHP"},"ioTplCpp":{"type":"boolean","description":"C / C++"},"ioTplDotnet":{"type":"boolean","description":"C# / .NET"},"ioTplNextjs":{"type":"boolean","description":"Next.js"},"ioTplReact":{"type":"boolean","description":"React"},"ioTplVue":{"type":"boolean","description":"Vue.js"},"ioTplAngular":{"type":"boolean","description":"Angular"},"ioTplDjango":{"type":"boolean","description":"Django"},"ioTplLaravel":{"type":"boolean","description":"Laravel"},"ioTplRails":{"type":"boolean","description":"Ruby on Rails"},"ioTplVscode":{"type":"boolean","description":"VS Code"},"ioTplJetbrains":{"type":"boolean","description":"JetBrains"},"ioTplVim":{"type":"boolean","description":"Vim"},"ioTplSublime":{"type":"boolean","description":"Sublime Text"},"ioTplEclipse":{"type":"boolean","description":"Eclipse"},"ioTplMacos":{"type":"boolean","description":"macOS"},"ioTplWindows":{"type":"boolean","description":"Windows"},"ioTplLinux":{"type":"boolean","description":"Linux"},"ioTplDocker":{"type":"boolean","description":"Docker"},"ioTplTerraform":{"type":"boolean","description":"Terraform"},"ioTplLogs":{"type":"boolean","description":"Logs"},"ioCustomPatterns":{"type":"string","description":"Additional patterns"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Generated .gitignore"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/google-review-link-generator":{"post":{"operationId":"run_google_review_link_generator","summary":"Google Review Link Generator","tags":["Generators"],"description":"Turn a Google Place ID — or any Google Maps URL containing one — into a direct 'write a review' link that opens the review box in one click. Also generates read-reviews and Maps links, a copy-paste HTML button, and a scannable QR code, entirely in your browser.\n\n[Try Google Review Link Generator in your browser →](https://iotools.cloud/tool/google-review-link-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioPlaceId":{"type":"string","description":"Google Place ID or Maps URL"},"ioBusinessName":{"type":"string","description":"Business name (optional)"},"ioLinkText":{"type":"string","description":"Button text"},"ioEcLevel":{"enum":["L","M","Q","H"],"description":"Error correction"},"ioDotSize":{"type":"number","description":"Dot size","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioReviewUrl":{"type":"string","description":"Write-a-review link"},"ioLinks":{"type":"string","description":"Every link for this place"},"ioHtml":{"type":"string","description":"HTML button"},"ioQrSvg":{"type":"string","description":"QR code (SVG source)"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/gradient-text-css-generator":{"post":{"operationId":"run_gradient_text_css_generator","summary":"Gradient Text CSS Generator","tags":["Generators"],"description":"Generate CSS for gradient text — a linear or radial gradient clipped to the glyphs via background-clip: text (with the -webkit- prefix) and a transparent fill. Copy the ready-made class or inline snippet.\n\n[Try Gradient Text CSS Generator in your browser →](https://iotools.cloud/tool/gradient-text-css-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSampleText":{"type":"string","description":"Sample Text"},"ioFontSize":{"type":"number","description":"Font Size (px)","minimum":12,"maximum":200},"ioFontWeight":{"enum":["300","400","600","700","800","900"],"description":"Font Weight"},"ioGradientType":{"enum":["linear","radial"],"description":"Gradient Type"},"ioAngle":{"type":"number","description":"Angle (deg)","minimum":0,"maximum":360},"ioColor1":{"type":"string","description":"Color 1"},"ioPosition1":{"type":"number","description":"Position 1 (%)","minimum":0,"maximum":100},"ioColor2":{"type":"string","description":"Color 2"},"ioPosition2":{"type":"number","description":"Position 2 (%)","minimum":0,"maximum":100},"ioUseColor3":{"type":"boolean","description":"Add a third color stop"},"ioColor3":{"type":"string","description":"Color 3"},"ioPosition3":{"type":"number","description":"Position 3 (%)","minimum":0,"maximum":100}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCssCode":{"type":"string","description":"CSS"},"ioHtmlCode":{"type":"string","description":"HTML (self-contained)"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/hash-generator":{"post":{"operationId":"run_hash_generator","summary":"Hash Generator","tags":["Generators"],"description":"Generate a cryptographic hash (MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA3-256, SHA3-512, RIPEMD-160) of any text, in hex or base64, and optionally verify it against an expected hash.\n\n[Try Hash Generator in your browser →](https://iotools.cloud/tool/hash-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Message to hash"},"ioAlgorithm":{"enum":["md5","sha1","sha224","sha256","sha384","sha512","sha3-256","sha3-512","ripemd160"],"description":"Hash algorithm"},"ioOutputFormat":{"enum":["hex","hex-upper","base64"],"description":"Output format"},"ioExpectedHash":{"type":"string","description":"Expected hash (optional)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Computed hash"},"ioMatch":{"type":"string","description":"Matches expected hash?"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/hmac-generator":{"post":{"operationId":"run_hmac_generator","summary":"HMAC Generator","tags":["Generators"],"description":"Generate an HMAC (hash-based message authentication code) from a message and secret key using MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA3-256, SHA3-512 or RIPEMD-160, in hex or base64, and optionally verify it against an expected HMAC.\n\n[Try HMAC Generator in your browser →](https://iotools.cloud/tool/hmac-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Message"},"ioSecret":{"type":"string","description":"Secret key"},"ioAlgorithm":{"enum":["md5","sha1","sha224","sha256","sha384","sha512","sha3-256","sha3-512","ripemd160"],"description":"Hash algorithm"},"ioOutputFormat":{"enum":["hex","hex-upper","base64"],"description":"Output format"},"ioExpectedHmac":{"type":"string","description":"Expected HMAC (optional)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Computed HMAC"},"ioMatch":{"type":"string","description":"Matches expected HMAC?"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/hsts-preload-header-generator":{"post":{"operationId":"run_hsts_preload_header_generator","summary":"HSTS Preload Header Generator","tags":["Generators"],"description":"Generate a Strict-Transport-Security (HSTS) response header from max-age, includeSubDomains and preload, and check whether it meets hstspreload.org's preload-list submission requirements.\n\n[Try HSTS Preload Header Generator in your browser →](https://iotools.cloud/tool/hsts-preload-header-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMaxAge":{"type":"number","description":"max-age (seconds)","minimum":0},"ioIncludeSubDomains":{"type":"boolean","description":"includeSubDomains — apply the policy to every subdomain"},"ioPreload":{"type":"boolean","description":"preload — signal eligibility for browser preload lists"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioHeaderOutput":{"type":"string","description":"Strict-Transport-Security Header"},"ioEligibility":{"type":"string","description":"Preload Eligibility"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/htaccess-rule-generator":{"post":{"operationId":"run_htaccess_rule_generator","summary":".htaccess Rule Generator","tags":["Generators"],"description":"Generate a ready-to-use Apache .htaccess snippet by toggling common rules: force HTTPS, www/non-www canonicalization, disable directory listing, block sensitive files, prevent image hotlinking, a custom 404 page, gzip compression and browser caching.\n\n[Try .htaccess Rule Generator in your browser →](https://iotools.cloud/tool/htaccess-rule-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioForceHttps":{"type":"boolean","description":"Force HTTPS (redirect HTTP → HTTPS)"},"ioWwwMode":{"enum":["none","non-www","www"],"description":"www canonicalization"},"ioDisableDirListing":{"type":"boolean","description":"Disable directory browsing (Options -Indexes)"},"ioDenySensitiveFiles":{"type":"boolean","description":"Deny access to sensitive files (.env, .git, .htaccess…)"},"ioBlockHotlinking":{"type":"boolean","description":"Prevent image hotlinking"},"ioAllowedDomain":{"type":"string","description":"Allowed domain"},"ioCustomError":{"type":"boolean","description":"Custom 404 error page"},"ioErrorPage":{"type":"string","description":"404 page path"},"ioGzip":{"type":"boolean","description":"Enable GZIP compression"},"ioBrowserCaching":{"type":"boolean","description":"Enable browser caching (Expires headers)"},"ioCacheDays":{"type":"number","description":"Cache lifetime (days)","minimum":1,"maximum":365}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Generated .htaccess"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/html-email-template-generator":{"post":{"operationId":"run_html_email_template_generator","summary":"HTML Email Template Generator","tags":["Generators"],"description":"Generate a responsive, email-client-safe HTML template (table-based layout with inline styles) from a header, body copy, a call-to-action button, a footer and brand colours. Copy the ready-to-send HTML or preview it live.\n\n[Try HTML Email Template Generator in your browser →](https://iotools.cloud/tool/html-email-template-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSubject":{"type":"string","description":"Subject Line"},"ioPreheader":{"type":"string","description":"Preheader"},"ioHeaderText":{"type":"string","description":"Header / Logo Text"},"ioBodyContent":{"type":"string","description":"Body Content"},"ioButtonText":{"type":"string","description":"Button Text"},"ioButtonUrl":{"type":"string","description":"Button URL"},"ioFooterText":{"type":"string","description":"Footer Text"},"ioBrandColor":{"type":"string","description":"Brand Color"},"ioBgColor":{"type":"string","description":"Background Color"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioEmailHtml":{"type":"string","description":"Email HTML"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/html-generator":{"post":{"operationId":"run_html_generator","summary":"HTML Generator","tags":["Generators"],"description":"Generate a single HTML element with AI — describe what you need (a rounded submit button, a required email input) and get ready-to-use HTML, CSS and a minified combined snippet.\n\n[Try HTML Generator in your browser →](https://iotools.cloud/tool/html-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":12,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCustomTag":{"type":"string","description":"Describe the element"},"ioCustomClasses":{"type":"string","description":"CSS Classes"},"ioCustomStylesRequirements":{"type":"string","description":"CSS Styles Requirements"}},"required":["ioCustomTag"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCode":{"type":"string","description":"HTML"},"ioCss":{"type":"string","description":"CSS"},"ioHtmlCss":{"type":"string","description":"Minified HTML + CSS"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/html-generator/button":{"post":{"operationId":"run_html_generator_button","summary":"HTML Button Generator","tags":["Generators"],"description":"Generate a &lt;button> element — set the button text, type, and click behavior, then copy the ready-to-use HTML. Free, instant, no AI involved.\n\n[Try HTML Button Generator in your browser →](https://iotools.cloud/tool/html-generator/button/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCustomName":{"type":"string","description":"Name"},"ioCustomLabel":{"type":"string","description":"Button Text"},"ioCustomDisabled":{"type":"boolean","description":"Disabled"},"ioCustomAutofocus":{"type":"boolean","description":"Autofocus"},"ioCustomType":{"enum":["button","submit","reset"],"description":"Button Type"},"ioCustomValue":{"type":"string","description":"Value"},"ioCustomButtonOnClick":{"type":"string","description":"On Click Event"},"ioCustomClasses":{"type":"string","description":"CSS Classes"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCode":{"type":"string","description":"HTML"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/html-generator/checkbox":{"post":{"operationId":"run_html_generator_checkbox","summary":"HTML Checkbox Generator","tags":["Generators"],"description":"Generate a labeled checkbox — set the name, label, value, and default checked state, then copy the ready-to-use HTML. Free, instant, no AI involved.\n\n[Try HTML Checkbox Generator in your browser →](https://iotools.cloud/tool/html-generator/checkbox/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCustomName":{"type":"string","description":"Name"},"ioCustomLabel":{"type":"string","description":"Label"},"ioCustomChecked":{"type":"boolean","description":"Checked by default"},"ioCustomDisabled":{"type":"boolean","description":"Disabled"},"ioCustomValue":{"type":"string","description":"Value"},"ioCustomClasses":{"type":"string","description":"CSS Classes"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCode":{"type":"string","description":"HTML"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/html-generator/iframe":{"post":{"operationId":"run_html_generator_iframe","summary":"HTML Iframe Generator","tags":["Generators"],"description":"Generate an &lt;iframe> — set the source URL, title, size, and loading/referrer/fullscreen options, then copy the ready-to-use HTML. Free, instant, no AI involved.\n\n[Try HTML Iframe Generator in your browser →](https://iotools.cloud/tool/html-generator/iframe/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCustomSource":{"type":"string","description":"Source URL"},"ioCustomTitle":{"type":"string","description":"Title"},"ioCustomAllowFullscreen":{"type":"boolean","description":"Allow Fullscreen"},"ioCustomLoading":{"enum":["eager","lazy"],"description":"Loading Type"},"ioCustomReferrerPolicy":{"enum":["no-referrer","no-referrer-when-downgrade","same-origin","strict-origin-when-cross-origin","unsafe-url"],"description":"Referrer Policy"},"ioCustomHeight":{"type":"number","description":"Height","minimum":1},"ioCustomWidth":{"type":"number","description":"Width","minimum":1},"ioCustomClasses":{"type":"string","description":"CSS Classes"}},"required":["ioCustomSource"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCode":{"type":"string","description":"HTML"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/html-generator/image":{"post":{"operationId":"run_html_generator_image","summary":"HTML Image Generator","tags":["Generators"],"description":"Generate an &lt;img> tag — set the source, alt text, size, alignment, and loading behavior, then copy the ready-to-use HTML. Free, instant, no AI involved.\n\n[Try HTML Image Generator in your browser →](https://iotools.cloud/tool/html-generator/image/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCustomSrc":{"type":"string","description":"Image URL"},"ioCustomAltText":{"type":"string","description":"Alt Text"},"ioCustomResponsive":{"type":"boolean","description":"Responsive"},"ioCustomWidth":{"type":"number","description":"Width","minimum":1},"ioCustomHeight":{"type":"number","description":"Height","minimum":1},"ioCustomAlign":{"enum":["","left","center","right"],"description":"Alignment"},"ioCustomLoading":{"enum":["lazy","eager","auto"],"description":"Loading"},"ioCustomClasses":{"type":"string","description":"CSS Classes"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCode":{"type":"string","description":"HTML"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/html-generator/input-color":{"post":{"operationId":"run_html_generator_input_color","summary":"HTML Input Color Generator","tags":["Generators"],"description":"Generate an &lt;input type=\"color\"> field — set the name, label, and default color, then copy the ready-to-use HTML. Free, instant, no AI involved.\n\n[Try HTML Input Color Generator in your browser →](https://iotools.cloud/tool/html-generator/input-color/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCustomName":{"type":"string","description":"Name"},"ioCustomLabel":{"type":"string","description":"Label"},"ioCustomDefaultColor":{"type":"string","description":"Default Color"},"ioCustomClasses":{"type":"string","description":"CSS Classes"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCode":{"type":"string","description":"HTML"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/html-generator/input-date-time":{"post":{"operationId":"run_html_generator_input_date_time","summary":"HTML Input Date & Time Generator","tags":["Generators"],"description":"Generate a date, time, or datetime-local &lt;input> field — set the name, label, type, and range, then copy the ready-to-use HTML. Free, instant, no AI involved.\n\n[Try HTML Input Date & Time Generator in your browser →](https://iotools.cloud/tool/html-generator/input-date-time/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCustomName":{"type":"string","description":"Name"},"ioCustomLabel":{"type":"string","description":"Label"},"ioCustomType":{"enum":["datetime-local","date","time"],"description":"Input Type"},"ioCustomRequired":{"type":"boolean","description":"Required field"},"ioCustomDisabled":{"type":"boolean","description":"Disabled"},"ioCustomDefaultValue":{"type":"string","description":"Default Value"},"ioCustomMin":{"type":"string","description":"Min Value"},"ioCustomMax":{"type":"string","description":"Max Value"},"ioCustomStep":{"type":"number","description":"Step Interval","minimum":1},"ioCustomClasses":{"type":"string","description":"CSS Classes"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCode":{"type":"string","description":"HTML"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/html-generator/input-email":{"post":{"operationId":"run_html_generator_input_email","summary":"HTML Input Email Generator","tags":["Generators"],"description":"Generate an &lt;input type=\"email\"> field — set the name, label, placeholder, and validation, then copy the ready-to-use HTML. Free, instant, no AI involved.\n\n[Try HTML Input Email Generator in your browser →](https://iotools.cloud/tool/html-generator/input-email/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCustomName":{"type":"string","description":"Name"},"ioCustomLabel":{"type":"string","description":"Label"},"ioCustomPlaceholder":{"type":"string","description":"Placeholder"},"ioCustomRequired":{"type":"boolean","description":"Required field"},"ioCustomAutocomplete":{"type":"boolean","description":"Enable autocomplete"},"ioCustomDisabled":{"type":"boolean","description":"Disabled"},"ioCustomReadonly":{"type":"boolean","description":"Read-only"},"ioCustomMinLength":{"type":"number","description":"Min Length","minimum":1},"ioCustomMaxLength":{"type":"number","description":"Max Length","minimum":1},"ioCustomClasses":{"type":"string","description":"CSS Classes"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCode":{"type":"string","description":"HTML"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/html-generator/input-file":{"post":{"operationId":"run_html_generator_input_file","summary":"HTML Input File Generator","tags":["Generators"],"description":"Generate an &lt;input type=\"file\"> field — set the name, label, accepted file types, and whether multiple files are allowed, then copy the ready-to-use HTML. Free, instant, no AI involved.\n\n[Try HTML Input File Generator in your browser →](https://iotools.cloud/tool/html-generator/input-file/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCustomName":{"type":"string","description":"Name"},"ioCustomLabel":{"type":"string","description":"Label"},"ioCustomRequired":{"type":"boolean","description":"Required field"},"ioCustomMultiple":{"type":"boolean","description":"Allow multiple files"},"ioCustomAccept":{"type":"string","description":"Accepted Types"},"ioCustomClasses":{"type":"string","description":"CSS Classes"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCode":{"type":"string","description":"HTML"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/html-generator/input-image":{"post":{"operationId":"run_html_generator_input_image","summary":"HTML Input Image Generator","tags":["Generators"],"description":"Generate an &lt;input type=\"image\"> graphical submit button — set the image source, alt text, and form-submission options, then copy the ready-to-use HTML. Free, instant, no AI involved.\n\n[Try HTML Input Image Generator in your browser →](https://iotools.cloud/tool/html-generator/input-image/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCustomName":{"type":"string","description":"Name"},"ioCustomSrc":{"type":"string","description":"Image Source"},"ioCustomAlt":{"type":"string","description":"Alt Text"},"ioCustomDisabled":{"type":"boolean","description":"Disabled"},"ioCustomWidth":{"type":"string","description":"Width"},"ioCustomHeight":{"type":"string","description":"Height"},"ioCustomValue":{"type":"string","description":"Value"},"ioCustomFormaction":{"type":"string","description":"Form Action"},"ioCustomClasses":{"type":"string","description":"CSS Classes"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCode":{"type":"string","description":"HTML"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/html-generator/input-number":{"post":{"operationId":"run_html_generator_input_number","summary":"HTML Input Number Generator","tags":["Generators"],"description":"Generate an &lt;input type=\"number\"> field — set the name, label, placeholder, and min/max/step, then copy the ready-to-use HTML. Free, instant, no AI involved.\n\n[Try HTML Input Number Generator in your browser →](https://iotools.cloud/tool/html-generator/input-number/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCustomName":{"type":"string","description":"Name"},"ioCustomLabel":{"type":"string","description":"Label"},"ioCustomPlaceholder":{"type":"string","description":"Placeholder"},"ioCustomRequired":{"type":"boolean","description":"Required field"},"ioCustomDisabled":{"type":"boolean","description":"Disabled"},"ioCustomReadonly":{"type":"boolean","description":"Read-only"},"ioCustomMin":{"type":"number","description":"Min Value"},"ioCustomMax":{"type":"number","description":"Max Value"},"ioCustomStep":{"type":"number","description":"Step"},"ioCustomDefaultValue":{"type":"number","description":"Default Value"},"ioCustomClasses":{"type":"string","description":"CSS Classes"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCode":{"type":"string","description":"HTML"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/html-generator/input-password":{"post":{"operationId":"run_html_generator_input_password","summary":"HTML Input Password Generator","tags":["Generators"],"description":"Generate an &lt;input type=\"password\"> field — set the name, label, placeholder, and validation, then copy the ready-to-use HTML. Free, instant, no AI involved.\n\n[Try HTML Input Password Generator in your browser →](https://iotools.cloud/tool/html-generator/input-password/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCustomName":{"type":"string","description":"Name"},"ioCustomLabel":{"type":"string","description":"Label"},"ioCustomPlaceholder":{"type":"string","description":"Placeholder"},"ioCustomRequired":{"type":"boolean","description":"Required field"},"ioCustomAutocomplete":{"type":"boolean","description":"Enable autocomplete"},"ioCustomDisabled":{"type":"boolean","description":"Disabled"},"ioCustomReadonly":{"type":"boolean","description":"Read-only"},"ioCustomMinLength":{"type":"number","description":"Min Length","minimum":1},"ioCustomMaxLength":{"type":"number","description":"Max Length","minimum":1},"ioCustomPattern":{"type":"string","description":"Pattern"},"ioCustomClasses":{"type":"string","description":"CSS Classes"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCode":{"type":"string","description":"HTML"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/html-generator/input-range":{"post":{"operationId":"run_html_generator_input_range","summary":"HTML Input Range Generator","tags":["Generators"],"description":"Generate an &lt;input type=\"range\"> slider — set the name, label, min/max/step and default value, then copy the ready-to-use HTML. Free, instant, no AI involved.\n\n[Try HTML Input Range Generator in your browser →](https://iotools.cloud/tool/html-generator/input-range/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCustomName":{"type":"string","description":"Name"},"ioCustomLabel":{"type":"string","description":"Label"},"ioCustomMin":{"type":"number","description":"Min Value"},"ioCustomMax":{"type":"number","description":"Max Value"},"ioCustomStep":{"type":"number","description":"Step","minimum":0.01},"ioCustomDefaultValue":{"type":"number","description":"Default Value"},"ioCustomDisabled":{"type":"boolean","description":"Disabled"},"ioCustomClasses":{"type":"string","description":"CSS Classes"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCode":{"type":"string","description":"HTML"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/html-generator/input-search":{"post":{"operationId":"run_html_generator_input_search","summary":"HTML Input Search Generator","tags":["Generators"],"description":"Generate an &lt;input type=\"search\"> field — set the name, label, placeholder, and validation, then copy the ready-to-use HTML. Free, instant, no AI involved.\n\n[Try HTML Input Search Generator in your browser →](https://iotools.cloud/tool/html-generator/input-search/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCustomName":{"type":"string","description":"Name"},"ioCustomLabel":{"type":"string","description":"Label"},"ioCustomPlaceholder":{"type":"string","description":"Placeholder"},"ioCustomRequired":{"type":"boolean","description":"Required field"},"ioCustomAutocomplete":{"type":"boolean","description":"Enable autocomplete"},"ioCustomDisabled":{"type":"boolean","description":"Disabled"},"ioCustomMinLength":{"type":"number","description":"Min Length","minimum":1},"ioCustomMaxLength":{"type":"number","description":"Max Length","minimum":1},"ioCustomSize":{"type":"number","description":"Size","minimum":1},"ioCustomSpellcheck":{"type":"boolean","description":"Enable spellcheck"},"ioCustomClasses":{"type":"string","description":"CSS Classes"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCode":{"type":"string","description":"HTML"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/html-generator/input-submit":{"post":{"operationId":"run_html_generator_input_submit","summary":"HTML Input Submit Generator","tags":["Generators"],"description":"Generate an &lt;input type=\"submit\"> button — set the button text and form-submission overrides (action, method, encoding, target), then copy the ready-to-use HTML. Free, instant, no AI involved.\n\n[Try HTML Input Submit Generator in your browser →](https://iotools.cloud/tool/html-generator/input-submit/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCustomName":{"type":"string","description":"Name"},"ioCustomValue":{"type":"string","description":"Button Text"},"ioCustomDisabled":{"type":"boolean","description":"Disabled"},"ioCustomFormaction":{"type":"string","description":"Form Action"},"ioCustomFormenctype":{"enum":["","application/x-www-form-urlencoded","multipart/form-data","text/plain"],"description":"Form Encoding Type"},"ioCustomFormmethod":{"enum":["","get","post"],"description":"Form Method"},"ioCustomFormnovalidate":{"type":"boolean","description":"Disable form validation"},"ioCustomFormtarget":{"enum":["","_blank","_self","_parent","_top"],"description":"Form Target"},"ioCustomClasses":{"type":"string","description":"CSS Classes"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCode":{"type":"string","description":"HTML"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/html-generator/input-tel":{"post":{"operationId":"run_html_generator_input_tel","summary":"HTML Input Tel Generator","tags":["Generators"],"description":"Generate an &lt;input type=\"tel\"> field — set the name, label, placeholder, and validation, then copy the ready-to-use HTML. Free, instant, no AI involved.\n\n[Try HTML Input Tel Generator in your browser →](https://iotools.cloud/tool/html-generator/input-tel/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCustomName":{"type":"string","description":"Name"},"ioCustomLabel":{"type":"string","description":"Label"},"ioCustomPlaceholder":{"type":"string","description":"Placeholder"},"ioCustomRequired":{"type":"boolean","description":"Required field"},"ioCustomAutocomplete":{"type":"boolean","description":"Enable autocomplete"},"ioCustomDisabled":{"type":"boolean","description":"Disabled"},"ioCustomReadonly":{"type":"boolean","description":"Read-only"},"ioCustomMinLength":{"type":"number","description":"Min Length","minimum":1},"ioCustomMaxLength":{"type":"number","description":"Max Length","minimum":1},"ioCustomPattern":{"type":"string","description":"Pattern"},"ioCustomSize":{"type":"number","description":"Size","minimum":1},"ioCustomClasses":{"type":"string","description":"CSS Classes"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCode":{"type":"string","description":"HTML"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/html-generator/input-text":{"post":{"operationId":"run_html_generator_input_text","summary":"HTML Input Text Generator","tags":["Generators"],"description":"Generate an &lt;input type=\"text\"> field — set the name, label, placeholder, and validation, then copy the ready-to-use HTML. Free, instant, no AI involved.\n\n[Try HTML Input Text Generator in your browser →](https://iotools.cloud/tool/html-generator/input-text/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCustomName":{"type":"string","description":"Name"},"ioCustomLabel":{"type":"string","description":"Label"},"ioCustomPlaceholder":{"type":"string","description":"Placeholder"},"ioCustomRequired":{"type":"boolean","description":"Required field"},"ioCustomAutocomplete":{"type":"boolean","description":"Enable autocomplete"},"ioCustomDisabled":{"type":"boolean","description":"Disabled"},"ioCustomReadonly":{"type":"boolean","description":"Read-only"},"ioCustomMinLength":{"type":"number","description":"Min Length","minimum":1},"ioCustomMaxLength":{"type":"number","description":"Max Length","minimum":1},"ioCustomPattern":{"type":"string","description":"Pattern"},"ioCustomSize":{"type":"number","description":"Size","minimum":1},"ioCustomDefaultValue":{"type":"string","description":"Default Value"},"ioCustomClasses":{"type":"string","description":"CSS Classes"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCode":{"type":"string","description":"HTML"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/html-generator/input-url":{"post":{"operationId":"run_html_generator_input_url","summary":"HTML Input URL Generator","tags":["Generators"],"description":"Generate an &lt;input type=\"url\"> field — set the name, label, placeholder, validation and more, then copy the ready-to-use HTML. Free, instant, no AI involved.\n\n[Try HTML Input URL Generator in your browser →](https://iotools.cloud/tool/html-generator/input-url/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCustomName":{"type":"string","description":"Name"},"ioCustomLabel":{"type":"string","description":"Label"},"ioCustomPlaceholder":{"type":"string","description":"Placeholder"},"ioCustomRequired":{"type":"boolean","description":"Required field"},"ioCustomAutocomplete":{"type":"boolean","description":"Enable autocomplete"},"ioCustomDisabled":{"type":"boolean","description":"Disabled"},"ioCustomReadonly":{"type":"boolean","description":"Read-only"},"ioCustomMinLength":{"type":"number","description":"Min Length","minimum":1},"ioCustomMaxLength":{"type":"number","description":"Max Length","minimum":1},"ioCustomPattern":{"type":"string","description":"Pattern"},"ioCustomSize":{"type":"number","description":"Size","minimum":1},"ioCustomDefaultValue":{"type":"string","description":"Default Value"},"ioCustomClasses":{"type":"string","description":"CSS Classes"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCode":{"type":"string","description":"HTML"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/html-generator/progress":{"post":{"operationId":"run_html_generator_progress","summary":"HTML Progress Bar Generator","tags":["Generators"],"description":"Generate a &lt;progress> bar — set the max/current value, an optional label, and indeterminate (loading) mode, then copy the ready-to-use HTML. Free, instant, no AI involved.\n\n[Try HTML Progress Bar Generator in your browser →](https://iotools.cloud/tool/html-generator/progress/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCustomMax":{"type":"number","description":"Max Value","minimum":1},"ioCustomValue":{"type":"number","description":"Current Value"},"ioCustomLabel":{"type":"string","description":"Label"},"ioCustomIndeterminate":{"type":"boolean","description":"Indeterminate"},"ioCustomClasses":{"type":"string","description":"CSS Classes"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCode":{"type":"string","description":"HTML"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/html-generator/radio":{"post":{"operationId":"run_html_generator_radio","summary":"HTML Radio Generator","tags":["Generators"],"description":"Generate a 2-option radio button group — set the shared name and each option's label/value, then copy the ready-to-use HTML. Free, instant, no AI involved.\n\n[Try HTML Radio Generator in your browser →](https://iotools.cloud/tool/html-generator/radio/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCustomName":{"type":"string","description":"Name"},"ioCustomOption1Label":{"type":"string","description":"Option 1 Label"},"ioCustomOption1Value":{"type":"string","description":"Option 1 Value"},"ioCustomOption2Label":{"type":"string","description":"Option 2 Label"},"ioCustomOption2Value":{"type":"string","description":"Option 2 Value"},"ioCustomClasses":{"type":"string","description":"CSS Classes"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCode":{"type":"string","description":"HTML"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/html-generator/textarea":{"post":{"operationId":"run_html_generator_textarea","summary":"HTML Textarea Generator","tags":["Generators"],"description":"Generate a &lt;textarea> field — set the name, placeholder, default content, size, and validation, then copy the ready-to-use HTML. Free, instant, no AI involved.\n\n[Try HTML Textarea Generator in your browser →](https://iotools.cloud/tool/html-generator/textarea/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCustomName":{"type":"string","description":"Name"},"ioCustomPlaceholder":{"type":"string","description":"Placeholder"},"ioCustomDefaultValue":{"type":"string","description":"Default Content"},"ioCustomRequired":{"type":"boolean","description":"Required field"},"ioCustomColumns":{"type":"number","description":"Columns","minimum":1},"ioCustomRows":{"type":"number","description":"Rows","minimum":1},"ioCustomMinLength":{"type":"number","description":"Min Length","minimum":1},"ioCustomMaxLength":{"type":"number","description":"Max Length","minimum":1},"ioCustomClasses":{"type":"string","description":"CSS Classes"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCode":{"type":"string","description":"HTML"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/google-serp-snippet-simulator":{"post":{"operationId":"run_google_serp_snippet_simulator","summary":"SERP Simulator","tags":["Generators"],"description":"Preview how your page's title and meta description will appear in Google search results, on desktop and mobile, with real Arial pixel-width measurements showing exactly where each one gets truncated.\n\n[Try SERP Simulator in your browser →](https://iotools.cloud/tool/google-serp-snippet-simulator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioTitle":{"type":"string","description":"Page title"},"ioDescription":{"type":"string","description":"Meta description"},"ioUrl":{"type":"string","description":"Page URL"},"ioQuery":{"type":"string","description":"Search query"},"ioDevice":{"enum":["desktop","mobile"],"description":"Device"},"ioSiteName":{"type":"string","description":"Site name"},"ioFavicon":{"type":"boolean","description":"Show favicon"},"ioDate":{"type":"string","description":"Date prefix"},"ioRating":{"type":"boolean","description":"Show star rating"},"ioRatingValue":{"type":"number","description":"Rating","minimum":0,"maximum":5},"ioRatingCount":{"type":"number","description":"Review count"},"ioDescriptionLimit":{"type":"number","description":"Description character limit","minimum":80,"maximum":350}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioMetrics":{"type":"string","description":"Length check"},"ioMetaTags":{"type":"string","description":"Meta tags"},"ioMarkup":{"type":"string","description":"Preview HTML"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/hreflang-generator":{"post":{"operationId":"run_hreflang_generator","summary":"Hreflang Tag Generator","tags":["Generators"],"description":"Generate hreflang tags for a multilingual site from a list of locale and URL pairs. Outputs HTML link tags, XML sitemap entries or an HTTP Link header, and flags duplicate locales, bad language codes and relative URLs.\n\n[Try Hreflang Tag Generator in your browser →](https://iotools.cloud/tool/hreflang-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioPairs":{"type":"string","description":"Locale and URL pairs"},"ioXDefault":{"type":"string","description":"x-default URL (optional)"},"ioFormat":{"enum":["html","sitemap","header"],"description":"Output format"},"ioNormalize":{"type":"boolean","description":"Normalise locale casing"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioTags":{"type":"string","description":"Hreflang tags"},"ioIssues":{"type":"string","description":"Validation notes"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/html-meta-tag-generator":{"post":{"operationId":"run_html_meta_tag_generator","summary":"HTML Meta Tag Generator","tags":["Generators"],"description":"Generate SEO and social meta tags for your page's &lt;head>: title, description, keywords, author, canonical URL, robots directive, theme color, plus Open Graph and Twitter Card tags for rich link previews. Copy or download the ready-to-paste HTML.\n\n[Try HTML Meta Tag Generator in your browser →](https://iotools.cloud/tool/html-meta-tag-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioTitle":{"type":"string","description":"Page Title"},"ioDescription":{"type":"string","description":"Meta Description"},"ioKeywords":{"type":"string","description":"Meta Keywords"},"ioAuthor":{"type":"string","description":"Author"},"ioCanonicalUrl":{"type":"string","description":"Canonical URL"},"ioOgImage":{"type":"string","description":"Social Share Image"},"ioRobots":{"enum":["","noindex, follow","index, nofollow","noindex, nofollow"],"description":"Search Engine Indexing"},"ioThemeColor":{"type":"string","description":"Theme Color"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioMetaTags":{"type":"string","description":"Meta Tags"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/htpasswd-generator":{"post":{"operationId":"run_htpasswd_generator","summary":"htpasswd Generator","tags":["Generators"],"description":"Generate an Apache .htpasswd line (user:hash) for HTTP Basic Auth, using Apache's $apr1$ MD5, {SHA} SHA-1, or traditional crypt. Hashed in your browser — the password is never sent anywhere.\n\n[Try htpasswd Generator in your browser →](https://iotools.cloud/tool/htpasswd-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioUsername":{"type":"string","description":"Username"},"ioPassword":{"type":"string","description":"Password"},"ioAlgorithm":{"enum":["bcrypt","apr1","sha1","crypt"],"description":"Hash algorithm"}},"required":["ioUsername","ioPassword"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioHtpasswd":{"type":"string","description":".htpasswd line"},"ioHash":{"type":"string","description":"Hash only"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/http-request-header-builder":{"post":{"operationId":"run_http_request_header_builder","summary":"HTTP Request Header Builder","tags":["Generators"],"description":"Build HTTP request headers from a simple Header-Name: value list, then export them as a raw header block, a ready-to-run curl command, and a JavaScript fetch() snippet — pick the HTTP method and target URL for a full request preview.\n\n[Try HTTP Request Header Builder in your browser →](https://iotools.cloud/tool/http-request-header-builder/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioHeaders":{"type":"string","description":"Headers"},"ioUrl":{"type":"string","description":"Request URL"},"ioMethod":{"enum":["GET","POST","PUT","PATCH","DELETE"],"description":"HTTP Method"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioHeaderOutput":{"type":"string","description":"Header Block"},"ioCurlCommand":{"type":"string","description":"curl Command"},"ioFetchSnippet":{"type":"string","description":"JavaScript fetch()"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ics-calendar-event-generator":{"post":{"operationId":"run_ics_calendar_event_generator","summary":"ICS Calendar Event Generator","tags":["Generators"],"description":"Generate a downloadable .ics (iCalendar / RFC 5545) file from event details — title, start and end date-time, all-day toggle, location, description, timezone and organizer. Import the result into Google Calendar, Outlook, or Apple Calendar. Runs entirely in your browser.\n\n[Try ICS Calendar Event Generator in your browser →](https://iotools.cloud/tool/ics-calendar-event-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioTitle":{"type":"string","description":"Event Title"},"ioDescription":{"type":"string","description":"Description"},"ioLocation":{"type":"string","description":"Location"},"ioAllDay":{"type":"boolean","description":"All-day event"},"ioStartDate":{"type":"string","description":"Start Date"},"ioStartTime":{"type":"string","description":"Start Time"},"ioEndDate":{"type":"string","description":"End Date"},"ioEndTime":{"type":"string","description":"End Time"},"ioTimezone":{"enum":["floating","UTC","America/New_York","America/Chicago","America/Denver","America/Los_Angeles","America/Sao_Paulo","Europe/London","Europe/Paris","Europe/Berlin","Europe/Madrid","Europe/Moscow","Africa/Cairo","Asia/Dubai","Asia/Kolkata","Asia/Singapore","Asia/Ho_Chi_Minh","Asia/Shanghai","Asia/Tokyo","Australia/Sydney","Pacific/Auckland"],"description":"Timezone"},"ioOrganizerEmail":{"type":"string","description":"Organizer Email"}},"required":["ioTitle","ioStartDate","ioEndDate"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioIcsOutput":{"type":"string","description":"Generated .ics"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/image-placeholder-generator":{"post":{"operationId":"run_image_placeholder_generator","summary":"Image Placeholder Generator","tags":["Generators"],"description":"Generate a placeholder image as scalable SVG — a solid or gradient background with centered dimension text or your own custom text, plus an optional border.\n\n[Try Image Placeholder Generator in your browser →](https://iotools.cloud/tool/image-placeholder-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioWidth":{"type":"number","description":"Width","minimum":1,"maximum":4000},"ioHeight":{"type":"number","description":"Height","minimum":1,"maximum":4000},"ioBgType":{"enum":["solid","gradient"],"description":"Type"},"ioBgColor":{"type":"string","description":"Color"},"ioGradientStart":{"type":"string","description":"Start"},"ioGradientEnd":{"type":"string","description":"End"},"ioGradientAngle":{"type":"number","description":"Angle (deg)","minimum":0,"maximum":360},"ioCustomText":{"type":"boolean","description":"Use custom text"},"ioText":{"type":"string","description":"Text"},"ioTextColor":{"type":"string","description":"Text color"},"ioFontSize":{"type":"number","description":"Font size","minimum":8,"maximum":200},"ioShowBorder":{"type":"boolean","description":"Show border"},"ioBorderColor":{"type":"string","description":"Border color"},"ioBorderWidth":{"type":"number","description":"Border width","minimum":1,"maximum":40}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSvg":{"type":"string","description":"SVG source"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/imei-number-generator":{"post":{"operationId":"run_imei_number_generator","summary":"IMEI Number Generator","tags":["Generators"],"description":"Generate synthetic, Luhn-valid 15-digit IMEI numbers for QA and testing - test databases, form validation and mock device records. Pick a manufacturer (or Random) and how many to produce. Not real device identifiers.\n\n[Try IMEI Number Generator in your browser →](https://iotools.cloud/tool/imei-number-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioManufacturer":{"enum":["random","apple","samsung","huawei","google","xiaomi","oneplus"],"description":"Manufacturer"},"ioQuantity":{"type":"number","description":"How many to generate","minimum":1,"maximum":50}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Generated IMEI Numbers"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/invisible-character-generator":{"post":{"operationId":"run_invisible_character_generator","summary":"Invisible Character Generator","tags":["Generators"],"description":"Generate copyable invisible Unicode characters — zero-width space, word joiner, braille blank, Hangul filler and more — with an escaped preview so you can see exactly what you're copying.\n\n[Try Invisible Character Generator in your browser →](https://iotools.cloud/tool/invisible-character-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCharType":{"enum":["zwsp","zwnj","zwj","wj","bom","invsep","braille","hangul","nbsp","enspace","emspace","figspace"],"description":"Invisible character"},"ioCount":{"type":"number","description":"How many characters","minimum":1,"maximum":100}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Invisible characters (copy this)"},"ioPreview":{"type":"string","description":"Escaped preview"},"ioInfo":{"type":"string","description":"Details"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ipv6-ula-generator":{"post":{"operationId":"run_ipv6_ula_generator","summary":"IPv6 ULA Generator","tags":["Generators"],"description":"Generate a random IPv6 Unique Local Address (ULA) per RFC 4193 — an fd00::/8 prefix with a random 40-bit Global ID and your chosen 16-bit Subnet ID, as both a /64 address and the /48 site prefix.\n\n[Try IPv6 ULA Generator in your browser →](https://iotools.cloud/tool/ipv6-ula-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSubnetId":{"type":"string","description":"Subnet ID"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioUla":{"type":"string","description":"ULA (/64)"},"ioNetwork48":{"type":"string","description":"Site prefix (/48)"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/schema-markup-generator":{"post":{"operationId":"run_schema_markup_generator","summary":"Schema Markup Generator","tags":["Generators"],"description":"Generate schema.org JSON-LD structured data for Article, FAQ, Product, Recipe, Event, Local Business, How-to, Job Posting and more — with a checklist of the properties Google needs for the rich result.\n\n[Try Schema Markup Generator in your browser →](https://iotools.cloud/tool/schema-markup-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioType":{"enum":["article","breadcrumb","event","faq","howto","jobposting","localbusiness","organization","person","product","recipe","video","website"],"description":"Schema type"},"ioArticleType":{"enum":["Article","NewsArticle","BlogPosting"],"description":"Article @type"},"ioHeadline":{"type":"string","description":"Headline"},"ioArticleUrl":{"type":"string","description":"Article URL"},"ioArticleDescription":{"type":"string","description":"Description"},"ioArticleImage":{"type":"string","description":"Image URLs"},"ioAuthorType":{"enum":["Person","Organization"],"description":"Author @type"},"ioAuthorName":{"type":"string","description":"Author name"},"ioAuthorUrl":{"type":"string","description":"Author URL"},"ioPublisherName":{"type":"string","description":"Publisher name"},"ioPublisherLogo":{"type":"string","description":"Publisher logo URL"},"ioDateModified":{"type":"string","description":"Date modified"},"ioBreadcrumbs":{"type":"string","description":"Breadcrumb trail"},"ioEventName":{"type":"string","description":"Event name"},"ioEventDescription":{"type":"string","description":"Description"},"ioEventImage":{"type":"string","description":"Image URLs"},"ioEventStart":{"type":"string","description":"Start date & time"},"ioEventEnd":{"type":"string","description":"End date & time"},"ioEventStatus":{"enum":["EventScheduled","EventCancelled","EventPostponed","EventRescheduled","EventMovedOnline"],"description":"Event status"},"ioEventAttendance":{"enum":["OfflineEventAttendanceMode","OnlineEventAttendanceMode","MixedEventAttendanceMode"],"description":"Attendance mode"},"ioEventLocationName":{"type":"string","description":"Venue name"},"ioEventStreamUrl":{"type":"string","description":"Stream URL"},"ioPerformerType":{"enum":["PerformingGroup","Person"],"description":"Performer @type"},"ioPerformerName":{"type":"string","description":"Performer name"},"ioOrganizerName":{"type":"string","description":"Organizer name"},"ioOrganizerUrl":{"type":"string","description":"Organizer URL"},"ioOfferValidFrom":{"type":"string","description":"Tickets on sale from"},"ioFaq":{"type":"string","description":"Questions and answers"},"ioHowToName":{"type":"string","description":"How-to title"},"ioHowToDescription":{"type":"string","description":"Description"},"ioHowToImage":{"type":"string","description":"Image URLs"},"ioHowToTime":{"type":"string","description":"Total time"},"ioHowToCost":{"type":"number","description":"Estimated cost"},"ioHowToSupplies":{"type":"string","description":"Supplies"},"ioHowToTools":{"type":"string","description":"Tools"},"ioHowToSteps":{"type":"string","description":"Steps"},"ioJobTitle":{"type":"string","description":"Job title"},"ioJobDescription":{"type":"string","description":"Job description"},"ioJobDatePosted":{"type":"string","description":"Date posted"},"ioJobValidThrough":{"type":"string","description":"Valid through"},"ioJobEmploymentType":{"enum":["FULL_TIME","PART_TIME","CONTRACTOR","TEMPORARY","INTERN","VOLUNTEER","PER_DIEM","OTHER"],"description":"Employment type"},"ioJobCompanyName":{"type":"string","description":"Hiring organization"},"ioJobCompanyUrl":{"type":"string","description":"Organization URL"},"ioJobCompanyLogo":{"type":"string","description":"Organization logo URL"},"ioJobSalaryMin":{"type":"number","description":"Salary minimum"},"ioJobSalaryMax":{"type":"number","description":"Salary maximum"},"ioJobSalaryUnit":{"enum":["HOUR","DAY","WEEK","MONTH","YEAR"],"description":"Salary per"},"ioJobRemote":{"type":"boolean","description":"Remote (telecommute)"},"ioBusinessType":{"enum":["LocalBusiness","AccountingService","AutoRepair","Bakery","BarOrPub","BeautySalon","CafeOrCoffeeShop","ChildCare","Dentist","DryCleaningOrLaundry","Electrician","EmploymentAgency","FinancialService","Florist","FoodEstablishment","GeneralContractor","HairSalon","HealthClub","HomeAndConstructionBusiness","Hotel","InsuranceAgency","LegalService","Locksmith","MedicalBusiness","MovingCompany","Notary","Optician","Physician","Plumber","ProfessionalService","RealEstateAgent","Restaurant","RoofingContractor","SelfStorage","ShoppingCenter","SportsClub","Store","TravelAgency","VeterinaryCare"],"description":"Business @type"},"ioBusinessName":{"type":"string","description":"Business name"},"ioBusinessUrl":{"type":"string","description":"Website URL"},"ioBusinessImage":{"type":"string","description":"Image URLs"},"ioBusinessPhone":{"type":"string","description":"Telephone"},"ioBusinessPriceRange":{"type":"string","description":"Price range"},"ioLatitude":{"type":"string","description":"Latitude"},"ioLongitude":{"type":"string","description":"Longitude"},"ioOpeningHours":{"type":"string","description":"Opening hours"},"ioOrgType":{"enum":["Organization","Airline","Consortium","Corporation","EducationalOrganization","GovernmentOrganization","LibrarySystem","MedicalOrganization","NGO","NewsMediaOrganization","PerformingGroup","Project","ResearchOrganization","SportsOrganization"],"description":"Organization @type"},"ioOrgName":{"type":"string","description":"Organization name"},"ioOrgAlternateName":{"type":"string","description":"Alternate name"},"ioOrgUrl":{"type":"string","description":"Website URL"},"ioOrgLogo":{"type":"string","description":"Logo URL"},"ioOrgPhone":{"type":"string","description":"Contact telephone"},"ioOrgContactType":{"enum":["customer support","technical support","billing support","sales","reservations","credit card support","emergency"],"description":"Contact type"},"ioPersonName":{"type":"string","description":"Full name"},"ioPersonUrl":{"type":"string","description":"Profile or homepage URL"},"ioPersonImage":{"type":"string","description":"Photo URL"},"ioPersonJobTitle":{"type":"string","description":"Job title"},"ioPersonCompany":{"type":"string","description":"Works for"},"ioProductName":{"type":"string","description":"Product name"},"ioProductDescription":{"type":"string","description":"Description"},"ioProductImage":{"type":"string","description":"Image URLs"},"ioProductBrand":{"type":"string","description":"Brand"},"ioProductSku":{"type":"string","description":"SKU"},"ioProductGtin":{"type":"string","description":"GTIN"},"ioProductMpn":{"type":"string","description":"MPN"},"ioProductCondition":{"enum":["NewCondition","UsedCondition","RefurbishedCondition","DamagedCondition"],"description":"Item condition"},"ioPriceValidUntil":{"type":"string","description":"Price valid until"},"ioRecipeName":{"type":"string","description":"Recipe name"},"ioRecipeDescription":{"type":"string","description":"Description"},"ioRecipeImage":{"type":"string","description":"Image URLs"},"ioRecipeAuthor":{"type":"string","description":"Author"},"ioPrepTime":{"type":"string","description":"Prep time"},"ioCookTime":{"type":"string","description":"Cook time"},"ioRecipeYield":{"type":"string","description":"Yield"},"ioRecipeCategory":{"type":"string","description":"Category"},"ioRecipeCuisine":{"type":"string","description":"Cuisine"},"ioRecipeCalories":{"type":"number","description":"Calories per serving"},"ioIngredients":{"type":"string","description":"Ingredients"},"ioInstructions":{"type":"string","description":"Instructions"},"ioVideoName":{"type":"string","description":"Video title"},"ioVideoDescription":{"type":"string","description":"Description"},"ioVideoThumbnail":{"type":"string","description":"Thumbnail URLs"},"ioVideoDuration":{"type":"string","description":"Duration"},"ioVideoContentUrl":{"type":"string","description":"Content URL"},"ioVideoEmbedUrl":{"type":"string","description":"Embed URL"},"ioSiteName":{"type":"string","description":"Site name"},"ioSiteAlternateName":{"type":"string","description":"Alternate name"},"ioSiteUrl":{"type":"string","description":"Site URL"},"ioSiteSearchUrl":{"type":"string","description":"Search URL prefix"},"ioDatePublished":{"type":"string","description":"Date published"},"ioStreet":{"type":"string","description":"Street address"},"ioCity":{"type":"string","description":"City / locality"},"ioRegion":{"type":"string","description":"State / province / region"},"ioPostalCode":{"type":"string","description":"Postal code"},"ioCountry":{"type":"string","description":"Country"},"ioOfferPrice":{"type":"number","description":"Price"},"ioCurrency":{"type":"string","description":"Currency"},"ioOfferAvailability":{"enum":["InStock","OutOfStock","PreOrder","BackOrder","LimitedAvailability","SoldOut","Discontinued"],"description":"Availability"},"ioOfferUrl":{"type":"string","description":"Offer URL"},"ioRatingValue":{"type":"number","description":"Rating value"},"ioReviewCount":{"type":"number","description":"Review count"},"ioSameAs":{"type":"string","description":"Social profiles"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioScript":{"type":"string","description":"JSON-LD script tag"},"ioChecks":{"type":"string","description":"Google rich-result checklist"},"ioSchema":{"type":"string","description":"JSON-LD"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/json-schema-sample-generator":{"post":{"operationId":"run_json_schema_sample_generator","summary":"JSON Schema Sample Generator","tags":["Generators"],"description":"Generate example JSON data from a JSON Schema — for API docs, mock responses and test fixtures. Seeded, so the same schema and seed always produce identical output. Runs entirely in your browser.\n\n[Try JSON Schema Sample Generator in your browser →](https://iotools.cloud/tool/json-schema-sample-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSchema":{"type":"string","description":"JSON Schema"},"ioCount":{"type":"number","description":"Samples","minimum":1,"maximum":50},"ioFormat":{"enum":["pretty","minified","ndjson"],"description":"Output format"},"ioOptional":{"enum":["all","required","random"],"description":"Optional properties"},"ioSeed":{"type":"string","description":"Seed"},"ioMaxDepth":{"type":"number","description":"Max depth","minimum":1,"maximum":12}},"required":["ioSchema"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Sample data"},"ioSummary":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/totp-hotp-generator":{"post":{"operationId":"run_totp_hotp_generator","summary":"TOTP/HOTP Generator","tags":["Generators"],"description":"Build a TOTP/HOTP otpauth:// provisioning URI (RFC 6238 / RFC 4226) from a Base32 secret, issuer and account name — the same payload a 2FA setup QR code encodes — plus a preview of the current code.\n\n[Try TOTP/HOTP Generator in your browser →](https://iotools.cloud/tool/totp-hotp-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioOtpType":{"enum":["totp","hotp"],"description":"OTP Type"},"ioIssuer":{"type":"string","description":"Issuer"},"ioAccountName":{"type":"string","description":"Account"},"ioSecret":{"type":"string","description":"Secret (Base32)"},"ioAlgorithm":{"enum":["sha1","sha256","sha512"],"description":"Algorithm"},"ioDigits":{"enum":["6","8"],"description":"Digits"},"ioPeriod":{"enum":["30","60"],"description":"Period"},"ioTimestamp":{"type":"number","description":"Preview at Unix timestamp (seconds)","minimum":0},"ioCounter":{"type":"number","description":"Counter","minimum":0}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOtpUri":{"type":"string","description":"OTP Auth URI"},"ioCurrentCode":{"type":"string","description":"Current Code"},"ioCounterUsed":{"type":"string","description":"Counter Value Used"},"ioSecondsRemaining":{"type":"string","description":"Seconds Remaining in Period (TOTP only)"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/typescript-enum-generator":{"post":{"operationId":"run_typescript_enum_generator","summary":"TypeScript Enum Generator","tags":["Generators"],"description":"Turn a pasted list of values into a TypeScript enum, const enum, as-const object, or union type. Auto-sanitizes member names into valid identifiers (handles spaces, punctuation, and digit-leading values), picks a key casing style, and can add JSDoc comments, a type guard, a values array, or a reverse-lookup map.\n\n[Try TypeScript Enum Generator in your browser →](https://iotools.cloud/tool/typescript-enum-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioEnumValues":{"type":"string","description":"Values (one per line or comma-separated)"},"ioEnumName":{"type":"string","description":"Enum Name"},"ioKeyStyle":{"enum":["pascal","screaming","camel"],"description":"Key Naming Style"},"ioOutputFormat":{"enum":["string","numeric","const","asconst","union"],"description":"Output Format"},"ioAddExport":{"type":"boolean","description":"Add export keyword"},"ioAddJsdoc":{"type":"boolean","description":"Add JSDoc comments"},"ioGenerateTypeGuard":{"type":"boolean","description":"Generate type guard function"},"ioGenerateValuesArray":{"type":"boolean","description":"Generate array of all values"},"ioGenerateReverseMap":{"type":"boolean","description":"Generate reverse mapping helper"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutputCode":{"type":"string","description":"TypeScript Output"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/jwk-set-generator":{"post":{"operationId":"run_jwk_set_generator","summary":"JWK / JWK Set Generator","tags":["Generators"],"description":"Generate a JSON Web Key (JWK, RFC 7517) and a JWK Set ({\"keys\":[...]}) for OAuth 2.0 / OIDC. Supports EC (P-256/P-384/P-521/secp256k1), Ed25519 (OKP), and symmetric oct keys, with optional kid, use, and alg. Generated in your browser and never transmitted.\n\n[Try JWK / JWK Set Generator in your browser →](https://iotools.cloud/tool/jwk-set-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioKeyType":{"enum":["EC","OKP","oct"],"description":"Key type"},"ioCurve":{"enum":["P-256","P-384","P-521","secp256k1"],"description":"Curve"},"ioKeySize":{"enum":["128","192","256","384","512"],"description":"Key size (bits)"},"ioUse":{"enum":["sig","enc",""],"description":"Public key use (use)"},"ioAlg":{"type":"string","description":"Algorithm (alg)"},"ioKidStrategy":{"enum":["thumbprint","uuid","custom","none"],"description":"Key ID (kid)"},"ioCustomKid":{"type":"string","description":"Custom kid"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioPublicJwks":{"type":"string","description":"Public JWK Set — publish at /.well-known/jwks.json"},"ioPublicJwk":{"type":"string","description":"Public JWK"},"ioPrivateJwk":{"type":"string","description":"Private JWK — KEEP SECRET"},"ioPrivateJwks":{"type":"string","description":"Private JWK Set — KEEP SECRET"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/jwt-encoder":{"post":{"operationId":"run_jwt_encoder","summary":"JWT Encoder","tags":["Generators"],"description":"Build and HMAC-sign a JSON Web Token (JWT) from a header JSON, payload JSON and secret key. Supports HS256, HS384 and HS512; base64url-encodes each part and signs entirely in your browser.\n\n[Try JWT Encoder in your browser →](https://iotools.cloud/tool/jwt-encoder/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioHeader":{"type":"string","description":"Header (JSON)"},"ioPayload":{"type":"string","description":"Payload (JSON)"},"ioAlgorithm":{"enum":["HS256","HS384","HS512"],"description":"Algorithm"},"ioSecret":{"type":"string","description":"Secret"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioJwtToken":{"type":"string","description":"JWT Token"},"ioEncodedHeader":{"type":"string","description":"Encoded header (base64url)"},"ioEncodedPayload":{"type":"string","description":"Encoded payload (base64url)"},"ioEncodedSignature":{"type":"string","description":"Signature (base64url)"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ksuid-generator":{"post":{"operationId":"run_ksuid_generator","summary":"KSUID Generator","tags":["Generators"],"description":"Generate KSUIDs (K-Sortable Unique Identifiers) — 27-character, Base62, naturally time-sortable IDs with a 4-byte timestamp and 16 bytes of cryptographically-random payload. Batch-generate, pin the timestamp, or supply a fixed payload for reproducible output, all in your browser.\n\n[Try KSUID Generator in your browser →](https://iotools.cloud/tool/ksuid-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCount":{"type":"number","description":"How many to generate","minimum":1,"maximum":50},"ioTimestamp":{"type":"string","description":"Timestamp"},"ioPayloadHex":{"type":"string","description":"Fixed payload (optional)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioKsuids":{"type":"string","description":"Generated KSUIDs"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/kubernetes-configmap-secret-generator":{"post":{"operationId":"run_kubernetes_configmap_secret_generator","summary":"Kubernetes ConfigMap & Secret Generator","tags":["Generators"],"description":"Generate a valid Kubernetes ConfigMap or Secret YAML manifest from a name, optional namespace, labels and KEY=value pairs. Secrets support base64-encoded data: or plain-text stringData: and selectable types (Opaque, TLS, dockerconfigjson, …). Runs entirely in your browser — secret values never leave the page.\n\n[Try Kubernetes ConfigMap & Secret Generator in your browser →](https://iotools.cloud/tool/kubernetes-configmap-secret-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioResourceType":{"enum":["ConfigMap","Secret"],"description":"Resource Type"},"ioName":{"type":"string","description":"Name"},"ioNamespace":{"type":"string","description":"Namespace"},"ioSecretType":{"enum":["Opaque","kubernetes.io/dockerconfigjson","kubernetes.io/tls","kubernetes.io/basic-auth","kubernetes.io/ssh-auth","kubernetes.io/service-account-token"],"description":"Secret Type"},"ioSecretEncoding":{"enum":["data","stringData"],"description":"Secret Values"},"ioData":{"type":"string","description":"Key / Value Data"},"ioLabels":{"type":"string","description":"Labels"},"ioImmutable":{"type":"boolean","description":"Immutable (cannot be updated after creation)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Generated YAML"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/kustomize-generator":{"post":{"operationId":"run_kustomize_generator","summary":"Kustomize kustomization.yaml Generator","tags":["Generators"],"description":"Build a valid Kubernetes Kustomize kustomization.yaml from simple form fields — resources, namespace, name prefix/suffix, common labels and annotations, image and replica overrides, ConfigMap/Secret generators, and patches. Emits clean, 2-space-indented YAML.\n\n[Try Kustomize kustomization.yaml Generator in your browser →](https://iotools.cloud/tool/kustomize-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioResources":{"type":"string","description":"Resources"},"ioNamespace":{"type":"string","description":"Namespace"},"ioNamePrefix":{"type":"string","description":"Name Prefix"},"ioNameSuffix":{"type":"string","description":"Name Suffix"},"ioCommonLabels":{"type":"string","description":"Common Labels"},"ioCommonAnnotations":{"type":"string","description":"Common Annotations"},"ioImages":{"type":"string","description":"Image Overrides"},"ioReplicas":{"type":"string","description":"Replicas"},"ioAddConfigMap":{"type":"boolean","description":"Add a configMapGenerator"},"ioConfigMapName":{"type":"string","description":"ConfigMap Name"},"ioConfigMapLiterals":{"type":"string","description":"ConfigMap Literals"},"ioConfigMapFiles":{"type":"string","description":"ConfigMap Files"},"ioConfigMapNoHash":{"type":"boolean","description":"Disable content hash suffix (disableNameSuffixHash)"},"ioAddSecret":{"type":"boolean","description":"Add a secretGenerator"},"ioSecretName":{"type":"string","description":"Secret Name"},"ioSecretType":{"enum":["Opaque","kubernetes.io/tls","kubernetes.io/dockerconfigjson","kubernetes.io/basic-auth"],"description":"Secret Type"},"ioSecretLiterals":{"type":"string","description":"Secret Literals"},"ioSecretNoHash":{"type":"boolean","description":"Disable content hash suffix (disableNameSuffixHash)"},"ioPatches":{"type":"string","description":"Patches"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"kustomization.yaml"},"ioIssues":{"type":"string","description":"Issues"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/list-randomizer":{"post":{"operationId":"run_list_randomizer","summary":"List Randomizer","tags":["Generators"],"description":"Shuffle any list into a random order with an unbiased Fisher-Yates shuffle. Paste or upload your items, pick the separator, optionally drop duplicates, and get the randomized list back instantly.\n\n[Try List Randomizer in your browser →](https://iotools.cloud/tool/list-randomizer/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioListItems":{"type":"string","description":"List Items"},"ioListSeparator":{"enum":["newline",","," ","|","-",";",":"],"description":"Item Separator"},"ioRemoveDuplicatedItems":{"type":"boolean","description":"Remove Duplicated Items"},"ioCustomOutputSeparator":{"type":"boolean","description":"Custom Output Item Separator"},"ioOutputListSeparator":{"type":"string","description":"Separator"}},"required":["ioListItems"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNumberOfItems":{"type":"string","description":"Number Of Items"},"ioRandomizedList":{"type":"string","description":"Randomized List"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/lorem-ipsum-generator":{"post":{"operationId":"run_lorem_ipsum_generator","summary":"Lorem Ipsum Generator","tags":["Generators"],"description":"Generate classic lorem ipsum placeholder text by paragraph, sentence or word. Choose how many units you need and get plain text or HTML-ready paragraphs to drop into a mockup, layout or CMS.\n\n[Try Lorem Ipsum Generator in your browser →](https://iotools.cloud/tool/lorem-ipsum-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioFormat":{"enum":["plain","html"],"description":"Format"},"ioUnit":{"enum":["paragraph","sentence","word"],"description":"Unit"},"ioLength":{"type":"number","description":"Number of Units","minimum":1,"maximum":200}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Generated Lorem Ipsum"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/latex-equation-renderer":{"post":{"operationId":"run_latex_equation_renderer","summary":"LaTeX Equation Renderer","tags":["Generators"],"description":"Render a LaTeX / TeX math expression into ready-to-use HTML. Type an equation and get the KaTeX markup you can copy into any page, plus a live preview. Runs entirely in your browser.\n\n[Try LaTeX Equation Renderer in your browser →](https://iotools.cloud/tool/latex-equation-renderer/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioLatexInput":{"type":"string","description":"LaTeX Code"},"ioDisplayMode":{"enum":["display","inline"],"description":"Display Mode"},"ioBackground":{"enum":["transparent","white","light","dark"],"description":"Background"},"ioFontScale":{"type":"number","description":"Font Scale","minimum":1,"maximum":5}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioHtml":{"type":"string","description":"Rendered HTML"},"ioEquationSvg":{"type":"string","description":"SVG source"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/maze-generator-svg":{"post":{"operationId":"run_maze_generator_svg","summary":"Maze Generator (SVG)","tags":["Generators"],"description":"Generate a random perfect maze as a scalable SVG. Choose Recursive Backtracker, Prim's or Kruskal's, set the grid size, cell size, wall thickness and colours, add a solution path, and reproduce any maze from a seed.\n\n[Try Maze Generator (SVG) in your browser →](https://iotools.cloud/tool/maze-generator-svg/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioAlgorithm":{"enum":["backtracker","prim","kruskal"],"description":"Algorithm"},"ioCols":{"type":"number","description":"Columns","minimum":5,"maximum":80},"ioRows":{"type":"number","description":"Rows","minimum":5,"maximum":80},"ioSeed":{"type":"string","description":"Seed"},"ioCellSize":{"type":"number","description":"Cell size (px)","minimum":8,"maximum":40},"ioWallThickness":{"type":"number","description":"Wall thickness (px)","minimum":1,"maximum":8},"ioWallColor":{"type":"string","description":"Wall colour"},"ioBgColor":{"type":"string","description":"Background"},"ioShowSolution":{"type":"boolean","description":"Show solution path"},"ioSolutionColor":{"type":"string","description":"Solution colour"},"ioShowEntries":{"type":"boolean","description":"Mark entrance & exit"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioMazeSvg":{"type":"string","description":"SVG source"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/merkle-tree-generator":{"post":{"operationId":"run_merkle_tree_generator","summary":"Merkle Tree Generator","tags":["Generators"],"description":"Build a Merkle tree from a list of leaves and compute its Merkle root using SHA-256, SHA-1 or Keccak-256. Choose UTF-8 or hex leaf encoding, the Bitcoin duplicate-last or promote odd-node rule, and raw or OpenZeppelin sorted pair concatenation.\n\n[Try Merkle Tree Generator in your browser →](https://iotools.cloud/tool/merkle-tree-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMerkleLeaves":{"type":"string","description":"Leaves (one per line)"},"ioMerkleHash":{"enum":["sha-256","sha-1","keccak-256"],"description":"Hash function"},"ioMerkleLeafEncoding":{"enum":["utf8","hex"],"description":"Leaf encoding"},"ioMerkleOddRule":{"enum":["duplicate","promote"],"description":"Odd-leaf rule"},"ioMerkleConcat":{"enum":["bytes","sorted"],"description":"Pair concatenation"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioMerkleRoot":{"type":"string","description":"Merkle root"},"ioMerkleLevels":{"type":"string","description":"Tree nodes"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/mock-http-response-builder":{"post":{"operationId":"run_mock_http_response_builder","summary":"Mock HTTP Response Builder","tags":["Generators"],"description":"Build a raw HTTP response — status line, headers and body — from simple fields. Pick a status code, choose a body type (JSON, HTML, XML, plain text or form), auto-add Content-Type and Content-Length, and copy or download the full response for API mocking and testing.\n\n[Try Mock HTTP Response Builder in your browser →](https://iotools.cloud/tool/mock-http-response-builder/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioHttpVersion":{"enum":["HTTP/1.0","HTTP/1.1","HTTP/2"],"description":"HTTP Version"},"ioStatusCode":{"enum":["100|Continue","101|Switching Protocols","200|OK","201|Created","202|Accepted","204|No Content","206|Partial Content","301|Moved Permanently","302|Found","303|See Other","304|Not Modified","307|Temporary Redirect","308|Permanent Redirect","400|Bad Request","401|Unauthorized","403|Forbidden","404|Not Found","405|Method Not Allowed","409|Conflict","410|Gone","418|I'm a teapot","422|Unprocessable Entity","429|Too Many Requests","500|Internal Server Error","501|Not Implemented","502|Bad Gateway","503|Service Unavailable","504|Gateway Timeout"],"description":"Status Code"},"ioReasonOverride":{"type":"string","description":"Reason Phrase"},"ioBodyType":{"enum":["none","text","json","xml","html","form"],"description":"Body Type"},"ioBody":{"type":"string","description":"Body"},"ioAutoContentType":{"type":"boolean","description":"Auto-set Content-Type from Body Type"},"ioAutoContentLength":{"type":"boolean","description":"Auto-calculate Content-Length"},"ioDate":{"type":"string","description":"Date Header"},"ioCustomHeaders":{"type":"string","description":"Custom Headers"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioMockHttpResponse":{"type":"string","description":"Full HTTP Response"},"ioMockHttpHeaders":{"type":"string","description":"Status Line + Headers Only"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-picker":{"post":{"operationId":"run_name_picker","summary":"Name Picker","tags":["Generators"],"description":"Paste your own list of names or items and randomly pick one or more — for raffles, giveaways, who-goes-first decisions and classroom picks — or split the list into random, evenly-sized teams.\n\n[Try Name Picker in your browser →](https://iotools.cloud/tool/name-picker/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioNamesList":{"type":"string","description":"Names"},"ioSeparator":{"enum":["line","comma","tab"],"description":"Separator"},"ioMode":{"enum":["pick","teams"],"description":"Mode"},"ioPickCount":{"type":"number","description":"Number to pick","minimum":1,"maximum":1000},"ioAllowDuplicates":{"type":"boolean","description":"Allow duplicates"},"ioTeamCount":{"type":"number","description":"Number of teams","minimum":2,"maximum":100},"ioExcludeNames":{"type":"string","description":"Exclude names"},"ioEnableWeights":{"type":"boolean","description":"Enable weighted names"}},"required":["ioNamesList"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/nanoid-generator":{"post":{"operationId":"run_nanoid_generator","summary":"Nano ID Generator","tags":["Generators"],"description":"Generate Nano IDs — tiny, secure, URL-friendly unique string IDs. Pick a length, count, and alphabet (URL-safe, alphanumeric, numeric, hex, no-look-alikes, or a custom set), and export as plain text, a JSON array, or CSV. IDs are built from a cryptographically-secure random source, entirely in your browser.\n\n[Try Nano ID Generator in your browser →](https://iotools.cloud/tool/nanoid-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioLength":{"type":"number","description":"ID length","minimum":2,"maximum":256},"ioCount":{"type":"number","description":"How many","minimum":1,"maximum":100},"ioAlphabetType":{"enum":["urlsafe","alphanumeric","lowercase","uppercase","numbers","hex_lower","hex_upper","nolookalikes","custom"],"description":"Alphabet"},"ioCustomAlphabet":{"type":"string","description":"Custom alphabet"},"ioOutputFormat":{"enum":["text","json","csv"],"description":"Output format"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNanoids":{"type":"string","description":"Generated Nano IDs"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/nginx-server-block-generator":{"post":{"operationId":"run_nginx_server_block_generator","summary":"Nginx Server Block Generator","tags":["Generators"],"description":"Generate an nginx server block (virtual host) from structured inputs — server name and aliases, listen port, static-file or reverse-proxy mode, SSL/TLS with HTTP→HTTPS redirect and HSTS, gzip compression, client_max_body_size, and access/error log paths. Runs entirely in your browser.\n\n[Try Nginx Server Block Generator in your browser →](https://iotools.cloud/tool/nginx-server-block-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioServerName":{"type":"string","description":"Server Name"},"ioServerAliases":{"type":"string","description":"Aliases"},"ioListenPort":{"type":"number","description":"Listen Port","minimum":1,"maximum":65535},"ioMode":{"enum":["static","proxy"],"description":"Mode"},"ioDocumentRoot":{"type":"string","description":"Document Root"},"ioIndexFiles":{"type":"string","description":"Index Files"},"ioProxyPass":{"type":"string","description":"Upstream URL"},"ioProxyWebsocket":{"type":"boolean","description":"Forward WebSocket headers (Upgrade / Connection)"},"ioEnableSsl":{"type":"boolean","description":"Enable SSL (HTTPS)"},"ioSslCertificate":{"type":"string","description":"Certificate Path"},"ioSslCertificateKey":{"type":"string","description":"Private Key Path"},"ioHttp2":{"type":"boolean","description":"Enable HTTP/2"},"ioRedirectHttp":{"type":"boolean","description":"Add HTTP → HTTPS redirect block"},"ioEnableHsts":{"type":"boolean","description":"Send HSTS header (Strict-Transport-Security)"},"ioEnableGzip":{"type":"boolean","description":"Enable gzip compression"},"ioClientMaxBodySize":{"type":"string","description":"Client Max Body Size"},"ioAccessLog":{"type":"string","description":"Access Log"},"ioErrorLog":{"type":"string","description":"Error Log"}},"required":["ioServerName"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Generated nginx Server Block"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/nonce-generator":{"post":{"operationId":"run_nonce_generator","summary":"Nonce Generator","tags":["Generators"],"description":"Generate cryptographically-random nonces (numbers used once) for CSP headers, OAuth/OIDC state parameters, CSRF tokens, session IDs and API idempotency keys — in hex, Base64, Base64url, alphanumeric or decimal-array format. Created in your browser with a CSPRNG and never transmitted.\n\n[Try Nonce Generator in your browser →](https://iotools.cloud/tool/nonce-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioLength":{"type":"number","description":"Nonce length","minimum":8,"maximum":128},"ioFormat":{"enum":["hex","base64","base64url","alphanumeric","decimal"],"description":"Output format"},"ioCount":{"type":"number","description":"How many","minimum":1,"maximum":100}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNonces":{"type":"string","description":"Generated nonce(s)"},"ioEntropy":{"type":"string","description":"Entropy"},"ioUsageExample":{"type":"string","description":"Usage examples (first nonce)"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/number-sequence-generator":{"post":{"operationId":"run_number_sequence_generator","summary":"Number Sequence Generator","tags":["Generators"],"description":"Generate arithmetic and geometric number sequences by a common difference or ratio — either the first N terms or every value up to an end value. Choose separators and pad with leading zeros.\n\n[Try Number Sequence Generator in your browser →](https://iotools.cloud/tool/number-sequence-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSequenceType":{"enum":["arithmetic","geometric"],"description":"Sequence type"},"ioStart":{"type":"string","description":"Start value"},"ioStep":{"type":"string","description":"Common difference (step)"},"ioRatio":{"type":"string","description":"Common ratio"},"ioMode":{"enum":["count","range"],"description":"Generate"},"ioCount":{"type":"number","description":"Number of terms","minimum":1,"maximum":10000},"ioEnd":{"type":"string","description":"End value"},"ioSeparator":{"enum":["newline","comma","comma-space","space","custom"],"description":"Separator"},"ioCustomSeparator":{"type":"string","description":"Custom separator"},"ioPadZeros":{"type":"boolean","description":"Pad with leading zeros"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Generated sequence"},"ioStats":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/numeronym-generator":{"post":{"operationId":"run_numeronym_generator","summary":"Numeronym Generator","tags":["Generators"],"description":"Generate numeronyms from words by keeping the first and last letter and replacing the middle letters with their count — turn 'internationalization' into 'i18n', 'kubernetes' into 'k8s', or 'accessibility' into 'a11y'. Handles single words or whole paragraphs and runs entirely in your browser.\n\n[Try Numeronym Generator in your browser →](https://iotools.cloud/tool/numeronym-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Input Text"},"ioMinLength":{"type":"number","description":"Minimum word length","minimum":3,"maximum":15}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutputText":{"type":"string","description":"Numeronyms"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/oauth-authorization-url-builder":{"post":{"operationId":"run_oauth_authorization_url_builder","summary":"OAuth Authorization URL Builder","tags":["Generators"],"description":"Build an OAuth 2.0 / OpenID Connect authorization-request URL from an authorization endpoint (or provider preset), client_id, redirect_uri, response_type and scopes — with optional PKCE code_challenge (S256), state and nonce parameters generated by a CSPRNG in your browser.\n\n[Try OAuth Authorization URL Builder in your browser →](https://iotools.cloud/tool/oauth-authorization-url-builder/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioProvider":{"enum":["google","github","microsoft","okta","custom"],"description":"Provider"},"ioAuthEndpoint":{"type":"string","description":"Authorization Endpoint"},"ioClientId":{"type":"string","description":"Client ID"},"ioRedirectUri":{"type":"string","description":"Redirect URI"},"ioResponseType":{"enum":["code","token","id_token","code id_token"],"description":"Response Type"},"ioScopes":{"type":"string","description":"Scopes"},"ioUsePkce":{"type":"boolean","description":"Add PKCE (code_challenge)"},"ioPkceMethod":{"enum":["S256","plain"],"description":"PKCE Method"},"ioCodeVerifierOverride":{"type":"string","description":"Code Verifier (optional override)"},"ioUseState":{"type":"boolean","description":"Add state parameter (CSRF protection)"},"ioStateOverride":{"type":"string","description":"State (optional override)"},"ioUseNonce":{"type":"boolean","description":"Add nonce parameter (OpenID Connect)"},"ioNonceOverride":{"type":"string","description":"Nonce (optional override)"},"ioExtraParams":{"type":"string","description":"Extra Parameters"}},"required":["ioClientId","ioRedirectUri"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioAuthUrl":{"type":"string","description":"Authorization URL"},"ioCodeVerifier":{"type":"string","description":"code_verifier (keep secret)"},"ioState":{"type":"string","description":"state"},"ioNonce":{"type":"string","description":"nonce"},"ioParamBreakdown":{"type":"string","description":"URL Breakdown"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/otp-code-generator":{"post":{"operationId":"run_otp_code_generator","summary":"OTP Code Generator","tags":["Generators"],"description":"Generate TOTP (time-based, RFC 6238) and HOTP (counter-based, RFC 4226) one-time passcodes from a Base32 secret — the same 2FA codes an authenticator app produces, computed entirely in your browser.\n\n[Try OTP Code Generator in your browser →](https://iotools.cloud/tool/otp-code-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMode":{"enum":["totp","hotp"],"description":"Mode"},"ioSecret":{"type":"string","description":"Secret (Base32)"},"ioAlgorithm":{"enum":["sha1","sha256","sha512"],"description":"Hash algorithm"},"ioDigits":{"enum":["6","7","8"],"description":"Digits"},"ioTimestamp":{"type":"number","description":"Unix timestamp (seconds)","minimum":0},"ioPeriod":{"type":"number","description":"Period (seconds)","minimum":1,"maximum":300},"ioCounter":{"type":"number","description":"Counter","minimum":0}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCode":{"type":"string","description":"Generated code"},"ioCounterUsed":{"type":"string","description":"Counter value used"},"ioSecondsRemaining":{"type":"string","description":"Seconds remaining in period (TOTP only)"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/package-json-generator":{"post":{"operationId":"run_package_json_generator","summary":"package.json Generator","tags":["Generators"],"description":"Generate a new package.json from form fields: name, version, description, author, license, ESM/CJS module type, entry point, Node engine, keywords, repository URL, scripts, dependencies and devDependencies. Outputs properly ordered, valid JSON ready to drop into a new project.\n\n[Try package.json Generator in your browser →](https://iotools.cloud/tool/package-json-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioPkgName":{"type":"string","description":"Name"},"ioPkgVersion":{"type":"string","description":"Version"},"ioPkgDescription":{"type":"string","description":"Description"},"ioPkgAuthor":{"type":"string","description":"Author"},"ioPkgLicense":{"enum":["MIT","Apache-2.0","BSD-2-Clause","BSD-3-Clause","ISC","GPL-3.0-or-later","LGPL-3.0-or-later","MPL-2.0","Unlicense","UNLICENSED"],"description":"License"},"ioPkgModuleType":{"enum":["esm","cjs"],"description":"Module System"},"ioPkgEntry":{"type":"string","description":"Entry File"},"ioPkgNodeVersion":{"type":"string","description":"Node Engine"},"ioPkgKeywords":{"type":"string","description":"Keywords"},"ioPkgRepository":{"type":"string","description":"Repository URL"},"ioScripts":{"type":"string","description":"npm scripts"},"ioDependencies":{"type":"string","description":"dependencies"},"ioDevDependencies":{"type":"string","description":"devDependencies"},"ioIndentStyle":{"enum":["2","4","tab"],"description":"Indent"},"ioPrivatePackage":{"type":"boolean","description":"Mark as private (prevents accidental npm publish)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Generated package.json"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/passphrase-generator":{"post":{"operationId":"run_passphrase_generator","summary":"Passphrase Generator","tags":["Generators"],"description":"Generate strong, memorable passphrases from random dictionary words. Choose the number of words, a separator, and optional capitalization or numbers. Built in your browser with a cryptographic RNG and never transmitted.\n\n[Try Passphrase Generator in your browser →](https://iotools.cloud/tool/passphrase-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCount":{"type":"number","description":"Total phrases","minimum":1,"maximum":100},"ioWordsLength":{"type":"number","description":"Words per phrase","minimum":2,"maximum":10},"ioWordMaxLength":{"type":"number","description":"Max word length","minimum":3,"maximum":45},"ioIncludeNumbers":{"type":"boolean","description":"Include numbers (each word may get a trailing digit)"},"ioUppercase":{"type":"boolean","description":"Uppercase (WORD)"},"ioTitlecase":{"type":"boolean","description":"Titlecase (Word)"},"ioSeparator":{"enum":["-","_","."," ","","!","?","*","+","=","|","~","@","#","$"],"description":"Word separator"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/pbkdf2-key-generator":{"post":{"operationId":"run_pbkdf2_key_generator","summary":"PBKDF2 Key Generator","tags":["Generators"],"description":"Derive a key from a password and salt using PBKDF2-HMAC (SHA-256, SHA-384, or SHA-512) with a configurable iteration count and key length. Salt is randomly generated by default; output is shown in hex and base64.\n\n[Try PBKDF2 Key Generator in your browser →](https://iotools.cloud/tool/pbkdf2-key-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioPassword":{"type":"string","description":"Password / passphrase"},"ioSaltMode":{"enum":["auto","custom"],"description":"Salt"},"ioCustomSalt":{"type":"string","description":"Custom salt"},"ioCustomSaltEncoding":{"enum":["text","hex"],"description":"Custom salt encoding"},"ioAlgorithm":{"enum":["sha256","sha384","sha512"],"description":"Hash algorithm"},"ioIterations":{"type":"number","description":"Iterations","minimum":1000,"maximum":1000000},"ioKeyLengthBits":{"type":"number","description":"Key length (bits)","minimum":8,"maximum":2048},"ioExpectedKey":{"type":"string","description":"Expected key (optional)"}},"required":["ioPassword"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioDerivedKeyHex":{"type":"string","description":"Derived key (hex)"},"ioDerivedKeyBase64":{"type":"string","description":"Derived key (base64)"},"ioSaltUsed":{"type":"string","description":"Salt used (hex)"},"ioMatch":{"type":"string","description":"Matches expected key?"},"ioSecurityNote":{"type":"string","description":"OWASP guidance"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/pi-generator":{"post":{"operationId":"run_pi_generator","summary":"Pi Generator","tags":["Generators"],"description":"Generate digits of Pi (π) to a chosen precision, up to 10,000 digits after the decimal point.\n\n[Try Pi Generator in your browser →](https://iotools.cloud/tool/pi-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioDigits":{"type":"number","description":"Digits after the decimal point","minimum":1,"maximum":10000}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Pi"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/pkce-code-verifier-challenge-generator":{"post":{"operationId":"run_pkce_code_verifier_challenge_generator","summary":"PKCE Code Verifier & Challenge Generator","tags":["Generators"],"description":"Generate an OAuth 2.0 PKCE code_verifier (a random 43-128 character string) and its code_challenge — base64url(SHA-256(verifier)) for S256, or the verifier itself for plain — per RFC 7636, using a CSPRNG in your browser.\n\n[Try PKCE Code Verifier & Challenge Generator in your browser →](https://iotools.cloud/tool/pkce-code-verifier-challenge-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioVerifierLength":{"type":"number","description":"Verifier Length","minimum":43,"maximum":128},"ioChallengeMethod":{"enum":["S256","plain"],"description":"Challenge Method"},"ioVerifierCharset":{"enum":["unreserved","base64url"],"description":"Verifier Charset"},"ioVerifierOverride":{"type":"string","description":"Code Verifier (optional override)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCodeVerifier":{"type":"string","description":"code_verifier"},"ioCodeChallenge":{"type":"string","description":"code_challenge"},"ioCodeChallengeMethod":{"type":"string","description":"code_challenge_method"},"ioPkceBreakdown":{"type":"string","description":"How this was generated"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/prettier-config-generator":{"post":{"operationId":"run_prettier_config_generator","summary":"Prettier Config Generator","tags":["Generators"],"description":"Generate a Prettier configuration file — JSON (.prettierrc.json), YAML (.prettierrc.yaml), a JS module (prettier.config.mjs/cjs), or a package.json \"prettier\" key — from core options (printWidth, tabWidth, quotes, semicolons, trailing commas), JSX and Markdown/HTML options, and per-language overrides.\n\n[Try Prettier Config Generator in your browser →](https://iotools.cloud/tool/prettier-config-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioFormat":{"enum":["json","yaml","esm","cjs","pkg"],"description":"Output Format"},"ioPrintWidth":{"type":"number","description":"printWidth","minimum":20,"maximum":200},"ioTabWidth":{"type":"number","description":"tabWidth","minimum":1,"maximum":16},"ioUseTabs":{"type":"boolean","description":"useTabs — indent with tabs instead of spaces"},"ioSemi":{"type":"boolean","description":"semi — print semicolons at end of statements"},"ioSingleQuote":{"type":"boolean","description":"singleQuote — use single quotes instead of double"},"ioQuoteProps":{"enum":["as-needed","consistent","preserve"],"description":"quoteProps"},"ioTrailingComma":{"enum":["all","es5","none"],"description":"trailingComma"},"ioBracketSpacing":{"type":"boolean","description":"bracketSpacing — spaces inside object literals { foo }"},"ioBracketSameLine":{"type":"boolean","description":"bracketSameLine — keep > of multi-line HTML/JSX on last line"},"ioArrowParens":{"enum":["always","avoid"],"description":"arrowParens"},"ioEndOfLine":{"enum":["lf","crlf","cr","auto"],"description":"endOfLine"},"ioJsxSingleQuote":{"type":"boolean","description":"jsxSingleQuote — use single quotes in JSX attributes"},"ioSingleAttributePerLine":{"type":"boolean","description":"singleAttributePerLine — one HTML/JSX attribute per line"},"ioProseWrap":{"enum":["preserve","always","never"],"description":"proseWrap"},"ioHtmlWhitespace":{"enum":["css","strict","ignore"],"description":"htmlWhitespaceSensitivity"},"ioOverrideMarkdown":{"type":"boolean","description":"Markdown (*.md, *.mdx) — proseWrap: always, printWidth: 100"},"ioOverrideHtml":{"type":"boolean","description":"HTML (*.html) — printWidth: 120, singleAttributePerLine: true"},"ioOverrideYaml":{"type":"boolean","description":"YAML (*.yml, *.yaml) — tabWidth: 2, singleQuote: false"},"ioOverrideJson":{"type":"boolean","description":"JSON (*.json) — printWidth: 200, trailingComma: none"},"ioIncludeHeader":{"type":"boolean","description":"Include descriptive header comment (JS/YAML formats only)"},"ioIncludeIgnore":{"type":"boolean","description":"Also generate a .prettierignore template"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Generated Config"},"ioIgnoreOutput":{"type":"string","description":".prettierignore"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/pwa-web-app-manifest-generator":{"post":{"operationId":"run_pwa_web_app_manifest_generator","summary":"PWA Web App Manifest Generator","tags":["Generators"],"description":"Generate a manifest.json for a Progressive Web App: name, short name, description, start URL, scope, display mode, orientation, theme/background colors, icon set, and categories. Copy or download a ready-to-use manifest plus the HTML &lt;link> tag.\n\n[Try PWA Web App Manifest Generator in your browser →](https://iotools.cloud/tool/pwa-web-app-manifest-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioAppName":{"type":"string","description":"Name"},"ioShortName":{"type":"string","description":"Short Name"},"ioDescription":{"type":"string","description":"Description"},"ioLang":{"type":"string","description":"Lang"},"ioDir":{"enum":["auto","ltr","rtl"],"description":"Text Direction"},"ioStartUrl":{"type":"string","description":"Start URL"},"ioScope":{"type":"string","description":"Scope"},"ioId":{"type":"string","description":"App ID"},"ioDisplay":{"enum":["standalone","fullscreen","minimal-ui","browser"],"description":"Display Mode"},"ioOrientation":{"enum":["any","natural","portrait","portrait-primary","portrait-secondary","landscape","landscape-primary","landscape-secondary"],"description":"Orientation"},"ioThemeColor":{"type":"string","description":"Theme Color"},"ioBackgroundColor":{"type":"string","description":"Background Color"},"ioIconsPath":{"type":"string","description":"Icons Base Path"},"ioIconFilename":{"type":"string","description":"Icon Filename Pattern"},"ioIconType":{"enum":["image/png","image/svg+xml","image/webp","image/jpeg"],"description":"Icon MIME Type"},"ioIconPurpose":{"enum":["any","maskable","any maskable","monochrome"],"description":"Icon Purpose"},"ioSize72":{"type":"boolean","description":"Include 72×72"},"ioSize96":{"type":"boolean","description":"Include 96×96"},"ioSize128":{"type":"boolean","description":"Include 128×128"},"ioSize144":{"type":"boolean","description":"Include 144×144"},"ioSize152":{"type":"boolean","description":"Include 152×152"},"ioSize192":{"type":"boolean","description":"Include 192×192"},"ioSize384":{"type":"boolean","description":"Include 384×384"},"ioSize512":{"type":"boolean","description":"Include 512×512"},"ioCategories":{"type":"string","description":"Categories"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioManifestOutput":{"type":"string","description":"manifest.json"},"ioLinkTag":{"type":"string","description":"HTML Link Tag"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ssh-key-generator":{"post":{"operationId":"run_ssh_key_generator","summary":"SSH Key Generator","tags":["Generators"],"description":"Generate a real SSH keypair (Ed25519, ECDSA P-256, or ECDSA P-384) in native OpenSSH format, with SHA-256 and MD5 fingerprints. Generated in your browser and never transmitted.\n\n[Try SSH Key Generator in your browser →](https://iotools.cloud/tool/ssh-key-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioAlgorithm":{"enum":["ed25519","ecdsa-p256","ecdsa-p384"],"description":"Algorithm"},"ioComment":{"type":"string","description":"Comment"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioPrivateKey":{"type":"string","description":"Private key"},"ioPublicKey":{"type":"string","description":"Public key"},"ioFingerprintSha256":{"type":"string","description":"SHA-256 fingerprint"},"ioFingerprintMd5":{"type":"string","description":"MD5 fingerprint"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/md5-hash-generator":{"post":{"operationId":"run_md5_hash_generator","summary":"MD5 Hash Generator","tags":["Generators"],"description":"Generate the MD5 hash of any text, in hexadecimal or base64, and optionally verify it against an expected hash.\n\n[Try MD5 Hash Generator in your browser →](https://iotools.cloud/tool/md5-hash-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Message to hash"},"ioOutputFormat":{"enum":["hex","hex-upper","base64"],"description":"Output format"},"ioExpectedHash":{"type":"string","description":"Expected hash (optional)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"MD5 hash"},"ioMatch":{"type":"string","description":"Matches expected hash?"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/sha-hash-generator":{"post":{"operationId":"run_sha_hash_generator","summary":"SHA Hash Generator","tags":["Generators"],"description":"Generate a SHA hash (SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA3-256, SHA3-512) of any text, in hexadecimal or base64, and optionally verify it against an expected hash.\n\n[Try SHA Hash Generator in your browser →](https://iotools.cloud/tool/sha-hash-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Message to hash"},"ioAlgorithm":{"enum":["sha1","sha224","sha256","sha384","sha512","sha3-256","sha3-512"],"description":"SHA variant"},"ioOutputFormat":{"enum":["hex","hex-upper","base64"],"description":"Output format"},"ioExpectedHash":{"type":"string","description":"Expected hash (optional)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Computed hash"},"ioMatch":{"type":"string","description":"Matches expected hash?"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/mac-address-generator":{"post":{"operationId":"run_mac_address_generator","summary":"MAC Address Generator","tags":["Generators"],"description":"Generate random MAC addresses in bulk — optionally locked to a vendor prefix (OUI) — with a colon, hyphen or period separator and upper- or lowercase output.\n\n[Try MAC Address Generator in your browser →](https://iotools.cloud/tool/mac-address-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCount":{"type":"number","description":"Number of addresses","minimum":1,"maximum":100},"ioPrefix":{"type":"string","description":"Prefix (OUI)"},"ioSeparator":{"enum":[":","-","."],"description":"Separator"},"ioUppercase":{"type":"boolean","description":"Uppercase output"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioAddresses":{"type":"string","description":"Generated addresses"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator":{"post":{"operationId":"run_name_generator","summary":"AI Name Generator","tags":["Generators"],"description":"Generate original names for characters, places, brands or projects with AI — set the complexity, the length and how many you need, and steer the theme in your own words.\n\n[Try AI Name Generator in your browser →](https://iotools.cloud/tool/name-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/aarakocra-names":{"post":{"operationId":"run_name_generator_aarakocra_names","summary":"Aarakocra Name Generator","tags":["Generators"],"description":"Generate avian Aarakocra names with AI — wind-swept, tribal and explained. Perfect for D&D characters, homebrew and fantasy worldbuilding.\n\n[Try Aarakocra Name Generator in your browser →](https://iotools.cloud/tool/name-generator/aarakocra-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/aasimar-names":{"post":{"operationId":"run_name_generator_aasimar_names","summary":"Aasimar Name Generator","tags":["Generators"],"description":"Generate celestial Aasimar names with AI — divine, otherworldly and explained. Perfect for D&D characters, fantasy fiction and worldbuilding.\n\n[Try Aasimar Name Generator in your browser →](https://iotools.cloud/tool/name-generator/aasimar-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/album-names":{"post":{"operationId":"run_name_generator_album_names","summary":"Album Name Generator","tags":["Generators"],"description":"Generate creative, evocative album names with AI — poetic, provocative and explained. Perfect for musicians, bands and concept records.\n\n[Try Album Name Generator in your browser →](https://iotools.cloud/tool/name-generator/album-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/angel-names":{"post":{"operationId":"run_name_generator_angel_names","summary":"Angel Name Generator","tags":["Generators"],"description":"Generate divine angel names with AI — celestial, meaningful and explained. Perfect for fantasy fiction, games and worldbuilding.\n\n[Try Angel Name Generator in your browser →](https://iotools.cloud/tool/name-generator/angel-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/animal-names":{"post":{"operationId":"run_name_generator_animal_names","summary":"Animal Name Generator","tags":["Generators"],"description":"Generate fantastical creature names with AI — exotic, believable and explained. Perfect for fantasy fiction, games and worldbuilding.\n\n[Try Animal Name Generator in your browser →](https://iotools.cloud/tool/name-generator/animal-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/arabic-names":{"post":{"operationId":"run_name_generator_arabic_names","summary":"Arabic Name Generator","tags":["Generators"],"description":"Generate authentic Arabic names with AI — meaningful, culturally grounded and explained. Perfect for characters, worldbuilding and naming inspiration.\n\n[Try Arabic Name Generator in your browser →](https://iotools.cloud/tool/name-generator/arabic-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/baby-names":{"post":{"operationId":"run_name_generator_baby_names","summary":"Baby Name Generator","tags":["Generators"],"description":"Generate meaningful baby names with AI — each with its origin and meaning explained. Steer the results towards a culture, a sound or a family tradition.\n\n[Try Baby Name Generator in your browser →](https://iotools.cloud/tool/name-generator/baby-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/bakery-names":{"post":{"operationId":"run_name_generator_bakery_names","summary":"Bakery Name Generator","tags":["Generators"],"description":"Generate charming bakery names with AI — warm, appetising and explained. Perfect for new shops, cafes and food-business branding.\n\n[Try Bakery Name Generator in your browser →](https://iotools.cloud/tool/name-generator/bakery-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/barbarian-names":{"post":{"operationId":"run_name_generator_barbarian_names","summary":"Barbarian Name Generator","tags":["Generators"],"description":"Generate fearsome barbarian names with AI — powerful, tribal and explained. Perfect for D&D characters, fantasy fiction and worldbuilding.\n\n[Try Barbarian Name Generator in your browser →](https://iotools.cloud/tool/name-generator/barbarian-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/blood-elf-names":{"post":{"operationId":"run_name_generator_blood_elf_names","summary":"Blood Elf Name Generator","tags":["Generators"],"description":"Generate Blood Elf names with AI — elegant, arcane and rooted in Thalassian sound, each with its meaning explained. Perfect for Warcraft roleplay, fan fiction and RPG characters.\n\n[Try Blood Elf Name Generator in your browser →](https://iotools.cloud/tool/name-generator/blood-elf-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/blood-hunter-names":{"post":{"operationId":"run_name_generator_blood_hunter_names","summary":"Blood Hunter Name Generator","tags":["Generators"],"description":"Generate Blood Hunter names with AI — dark, gothic and steeped in blood magic, each with a line of inspiration. Perfect for D&D characters and grimdark fiction.\n\n[Try Blood Hunter Name Generator in your browser →](https://iotools.cloud/tool/name-generator/blood-hunter-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/book-names":{"post":{"operationId":"run_name_generator_book_names","summary":"Book Name Generator","tags":["Generators"],"description":"Generate compelling book titles with AI — intriguing, memorable and genre-aware, each with a note on what it evokes. Perfect for novelists, authors and writing prompts.\n\n[Try Book Name Generator in your browser →](https://iotools.cloud/tool/name-generator/book-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/british-girl-names":{"post":{"operationId":"run_name_generator_british_girl_names","summary":"British Girl Name Generator","tags":["Generators"],"description":"Generate British girl names with AI — spanning Anglo-Saxon, Norman, Celtic and modern traditions, each with its origin and meaning. Perfect for baby-naming, characters and fiction.\n\n[Try British Girl Name Generator in your browser →](https://iotools.cloud/tool/name-generator/british-girl-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/cafe-names":{"post":{"operationId":"run_name_generator_cafe_names","summary":"Cafe Name Generator","tags":["Generators"],"description":"Generate catchy cafe names with AI — cozy, brandable and easy to remember, each with the idea behind it. Perfect for coffee shops, roasteries and small-business branding.\n\n[Try Cafe Name Generator in your browser →](https://iotools.cloud/tool/name-generator/cafe-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/changeling-names":{"post":{"operationId":"run_name_generator_changeling_names","summary":"Changeling Name Generator","tags":["Generators"],"description":"Generate Changeling names with AI — fluid, mutable and suited to a shapeshifter's many faces, each with a note on its flavour. Perfect for D&D characters and Eberron campaigns.\n\n[Try Changeling Name Generator in your browser →](https://iotools.cloud/tool/name-generator/changeling-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/chicken-names":{"post":{"operationId":"run_name_generator_chicken_names","summary":"Chicken Name Generator","tags":["Generators"],"description":"Generate chicken names with AI — funny, cute or punny for your backyard flock, each with the joke behind it. Perfect for hens, roosters and pet poultry.\n\n[Try Chicken Name Generator in your browser →](https://iotools.cloud/tool/name-generator/chicken-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/continent-names":{"post":{"operationId":"run_name_generator_continent_names","summary":"Continent Name Generator","tags":["Generators"],"description":"Generate continent names with AI — evocative, map-ready and geographically believable, each with a note on the land it names. Perfect for fantasy worldbuilding, maps and fiction.\n\n[Try Continent Name Generator in your browser →](https://iotools.cloud/tool/name-generator/continent-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/country-names":{"post":{"operationId":"run_name_generator_country_names","summary":"Country Name Generator","tags":["Generators"],"description":"Generate names for fictional countries, lands and nations with AI — culturally resonant, evocative and explained. Perfect for worldbuilding, maps and fantasy fiction.\n\n[Try Country Name Generator in your browser →](https://iotools.cloud/tool/name-generator/country-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/couple-names":{"post":{"operationId":"run_name_generator_couple_names","summary":"Couple Name Generator","tags":["Generators"],"description":"Generate cute couple names by blending two partners' names with AI — catchy, harmonious and explained. Perfect for ship names, nicknames and social handles.\n\n[Try Couple Name Generator in your browser →](https://iotools.cloud/tool/name-generator/couple-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/cow-names":{"post":{"operationId":"run_name_generator_cow_names","summary":"Cow Name Generator","tags":["Generators"],"description":"Generate friendly, punny and classic cow names with AI — each with a line on why it fits. Perfect for dairy cows, pet cattle, farms and 4-H projects.\n\n[Try Cow Name Generator in your browser →](https://iotools.cloud/tool/name-generator/cow-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/dark-elf-names":{"post":{"operationId":"run_name_generator_dark_elf_names","summary":"Dark Elf Name Generator","tags":["Generators"],"description":"Generate mysterious dark elf names with AI — melodic, shadowed and explained. Perfect for Skyrim, Elder Scrolls, Forgotten Realms and D&D characters.\n\n[Try Dark Elf Name Generator in your browser →](https://iotools.cloud/tool/name-generator/dark-elf-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/demon-names":{"post":{"operationId":"run_name_generator_demon_names","summary":"Demon Name Generator","tags":["Generators"],"description":"Generate menacing demon names with AI — dreadful, lore-inspired and explained. Perfect for D&D villains, fantasy fiction, occult horror and games.\n\n[Try Demon Name Generator in your browser →](https://iotools.cloud/tool/name-generator/demon-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/discord-names":{"post":{"operationId":"run_name_generator_discord_names","summary":"Discord Username Generator","tags":["Generators"],"description":"Generate catchy, available Discord usernames with AI — unique, readable and explained. Perfect for gaming handles, servers and new accounts.\n\n[Try Discord Username Generator in your browser →](https://iotools.cloud/tool/name-generator/discord-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/dragon-names":{"post":{"operationId":"run_name_generator_dragon_names","summary":"Dragon Name Generator","tags":["Generators"],"description":"Generate powerful dragon names with AI — elemental, ancient and explained. Perfect for D&D campaigns, fantasy fiction and worldbuilding.\n\n[Try Dragon Name Generator in your browser →](https://iotools.cloud/tool/name-generator/dragon-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/dragonborn-names":{"post":{"operationId":"run_name_generator_dragonborn_names","summary":"Dragonborn Name Generator","tags":["Generators"],"description":"Generate Dragonborn names with AI — draconic, proud and explained. Perfect for D&D characters, both metallic and chromatic ancestry, and fantasy fiction.\n\n[Try Dragonborn Name Generator in your browser →](https://iotools.cloud/tool/name-generator/dragonborn-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/drow-names":{"post":{"operationId":"run_name_generator_drow_names","summary":"Drow Name Generator","tags":["Generators"],"description":"Generate authentic Drow names with AI — exotic, house-bound and explained. Perfect for D&D characters, the Underdark and Forgotten Realms campaigns.\n\n[Try Drow Name Generator in your browser →](https://iotools.cloud/tool/name-generator/drow-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/druid-names":{"post":{"operationId":"run_name_generator_druid_names","summary":"Druid Name Generator","tags":["Generators"],"description":"Generate mystical, nature-inspired druid names with AI — Celtic-rooted, meaningful and explained. Perfect for D&D characters, fantasy fiction and worldbuilding.\n\n[Try Druid Name Generator in your browser →](https://iotools.cloud/tool/name-generator/druid-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/dwarf-names":{"post":{"operationId":"run_name_generator_dwarf_names","summary":"Dwarf Name Generator","tags":["Generators"],"description":"Generate sturdy dwarf names with AI — Norse-rooted, clan-worthy and explained. Perfect for D&D characters, fantasy fiction and worldbuilding.\n\n[Try Dwarf Name Generator in your browser →](https://iotools.cloud/tool/name-generator/dwarf-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/elf-names":{"post":{"operationId":"run_name_generator_elf_names","summary":"Elf Name Generator","tags":["Generators"],"description":"Generate elven names for wood elves, high elves and dark elves with AI — melodic, meaningful, and explained. Perfect for D&D characters and fantasy fiction.\n\n[Try Elf Name Generator in your browser →](https://iotools.cloud/tool/name-generator/elf-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/fairy-names":{"post":{"operationId":"run_name_generator_fairy_names","summary":"Fairy Name Generator","tags":["Generators"],"description":"Generate enchanting, whimsical fairy names with AI — nature-woven, melodic and explained. Perfect for D&D characters, fantasy fiction and storytelling.\n\n[Try Fairy Name Generator in your browser →](https://iotools.cloud/tool/name-generator/fairy-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/fantasy-city-names":{"post":{"operationId":"run_name_generator_fantasy_city_names","summary":"Fantasy City Name Generator","tags":["Generators"],"description":"Generate evocative fantasy city names with AI — each with a line of lore about the place it names. Built for worldbuilders, GMs and fantasy authors.\n\n[Try Fantasy City Name Generator in your browser →](https://iotools.cloud/tool/name-generator/fantasy-city-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/fantasy-town-names":{"post":{"operationId":"run_name_generator_fantasy_town_names","summary":"Fantasy Town Name Generator","tags":["Generators"],"description":"Generate charming fantasy town names with AI — evocative, geography-rooted and explained. Perfect for D&D settings, fantasy fiction and worldbuilding.\n\n[Try Fantasy Town Name Generator in your browser →](https://iotools.cloud/tool/name-generator/fantasy-town-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/firbolg-names":{"post":{"operationId":"run_name_generator_firbolg_names","summary":"Firbolg Name Generator","tags":["Generators"],"description":"Generate Firbolg names with AI — nature-bound, Celtic-flavoured and explained. Perfect for D&D characters, fantasy fiction and worldbuilding.\n\n[Try Firbolg Name Generator in your browser →](https://iotools.cloud/tool/name-generator/firbolg-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/french-names":{"post":{"operationId":"run_name_generator_french_names","summary":"French Name Generator","tags":["Generators"],"description":"Generate charming French names with AI — elegant, culturally grounded and explained. Perfect for characters, baby-name inspiration and worldbuilding.\n\n[Try French Name Generator in your browser →](https://iotools.cloud/tool/name-generator/french-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/german-names":{"post":{"operationId":"run_name_generator_german_names","summary":"German Name Generator","tags":["Generators"],"description":"Generate authentic German names with AI — heritage-rooted, meaningful and explained. Perfect for characters, baby-name inspiration and worldbuilding.\n\n[Try German Name Generator in your browser →](https://iotools.cloud/tool/name-generator/german-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/githyanki-names":{"post":{"operationId":"run_name_generator_githyanki_names","summary":"Githyanki Name Generator","tags":["Generators"],"description":"Generate harsh, otherworldly Githyanki names with AI — militaristic, psionic and explained. Perfect for D&D characters, fantasy fiction and worldbuilding.\n\n[Try Githyanki Name Generator in your browser →](https://iotools.cloud/tool/name-generator/githyanki-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/gnome-names":{"post":{"operationId":"run_name_generator_gnome_names","summary":"Gnome Name Generator","tags":["Generators"],"description":"Generate whimsical gnome names with AI — inventive, funny and explained. Perfect for D&D, Pathfinder and World of Warcraft characters.\n\n[Try Gnome Name Generator in your browser →](https://iotools.cloud/tool/name-generator/gnome-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/goblin-names":{"post":{"operationId":"run_name_generator_goblin_names","summary":"Goblin Name Generator","tags":["Generators"],"description":"Generate cunning, chaotic goblin names with AI — mischievous, memorable and explained. Perfect for D&D campaigns and fantasy fiction.\n\n[Try Goblin Name Generator in your browser →](https://iotools.cloud/tool/name-generator/goblin-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/greek-names":{"post":{"operationId":"run_name_generator_greek_names","summary":"Greek Name Generator","tags":["Generators"],"description":"Generate authentic Greek names with AI — rooted in history and mythology, with each meaning explained. Perfect for characters, worldbuilding and baby-name inspiration.\n\n[Try Greek Name Generator in your browser →](https://iotools.cloud/tool/name-generator/greek-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/half-elf-names":{"post":{"operationId":"run_name_generator_half_elf_names","summary":"Half-Elf Name Generator","tags":["Generators"],"description":"Generate half-elf names with AI — blending elven melody with human grounding, each meaning explained. Perfect for D&D characters and fantasy fiction.\n\n[Try Half-Elf Name Generator in your browser →](https://iotools.cloud/tool/name-generator/half-elf-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/half-orc-names":{"post":{"operationId":"run_name_generator_half_orc_names","summary":"Half-Orc Name Generator","tags":["Generators"],"description":"Generate fierce half-orc names with AI — guttural orcish strength with a human edge, each explained. Perfect for D&D and Pathfinder characters.\n\n[Try Half-Orc Name Generator in your browser →](https://iotools.cloud/tool/name-generator/half-orc-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/halfling-names":{"post":{"operationId":"run_name_generator_halfling_names","summary":"Halfling Name Generator","tags":["Generators"],"description":"Generate charming halfling names with AI — cheerful, homely and explained. Perfect for D&D characters, Pathfinder and cozy fantasy fiction.\n\n[Try Halfling Name Generator in your browser →](https://iotools.cloud/tool/name-generator/halfling-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/harry-potter-names":{"post":{"operationId":"run_name_generator_harry_potter_names","summary":"Harry Potter Name Generator","tags":["Generators"],"description":"Generate witch and wizard names with AI in the style of the Harry Potter universe — magical, distinctive and explained. Perfect for fan fiction and roleplay.\n\n[Try Harry Potter Name Generator in your browser →](https://iotools.cloud/tool/name-generator/harry-potter-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/high-elf-names":{"post":{"operationId":"run_name_generator_high_elf_names","summary":"High-Elf Name Generator","tags":["Generators"],"description":"Generate noble high-elf names with AI — elegant, melodic and explained. Perfect for D&D characters, fantasy fiction and worldbuilding.\n\n[Try High-Elf Name Generator in your browser →](https://iotools.cloud/tool/name-generator/high-elf-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/human-names":{"post":{"operationId":"run_name_generator_human_names","summary":"Human Name Generator","tags":["Generators"],"description":"Generate human character names for D&D and fantasy fiction with AI — spanning cultures from the Sword Coast to Chult, each pronounceable, distinctive and explained.\n\n[Try Human Name Generator in your browser →](https://iotools.cloud/tool/name-generator/human-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/island-names":{"post":{"operationId":"run_name_generator_island_names","summary":"Island Name Generator","tags":["Generators"],"description":"Generate evocative island, atoll and archipelago names with AI — rooted in local culture and natural beauty, each catchy, pronounceable and explained. Perfect for worldbuilding and fiction.\n\n[Try Island Name Generator in your browser →](https://iotools.cloud/tool/name-generator/island-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/japanese-names":{"post":{"operationId":"run_name_generator_japanese_names","summary":"Japanese Name Generator","tags":["Generators"],"description":"Generate authentic Japanese names with AI — family name and given name, traditional and modern, each drawing on Japanese culture and mythology and explained.\n\n[Try Japanese Name Generator in your browser →](https://iotools.cloud/tool/name-generator/japanese-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/kenku-name-generator":{"post":{"operationId":"run_name_generator_kenku_name_generator","summary":"Kenku Name Generator","tags":["Generators"],"description":"Generate kenku names for D&D with AI — onomatopoeic, borrowed-sound names true to the crow-folk's mimicry, each explained. Perfect for tabletop characters and fantasy fiction.\n\n[Try Kenku Name Generator in your browser →](https://iotools.cloud/tool/name-generator/kenku-name-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/kingdom-names":{"post":{"operationId":"run_name_generator_kingdom_names","summary":"Kingdom Name Generator","tags":["Generators"],"description":"Generate majestic kingdom, empire and dynasty names with AI — steeped in history, myth and symbolism, each authoritative and explained. Perfect for fantasy fiction and worldbuilding.\n\n[Try Kingdom Name Generator in your browser →](https://iotools.cloud/tool/name-generator/kingdom-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/kitsune-names":{"post":{"operationId":"run_name_generator_kitsune_names","summary":"Kitsune Name Generator","tags":["Generators"],"description":"Generate mystical Japanese kitsune fox-spirit names with AI — steeped in folklore, magic and the nine tails, each meaningful and explained. Perfect for fantasy fiction and tabletop characters.\n\n[Try Kitsune Name Generator in your browser →](https://iotools.cloud/tool/name-generator/kitsune-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/knight-names":{"post":{"operationId":"run_name_generator_knight_names","summary":"Knight Name Generator","tags":["Generators"],"description":"Generate valiant knight names with AI — noble titles and European roots ringing with chivalry and honour, each explained. Perfect for medieval and fantasy fiction.\n\n[Try Knight Name Generator in your browser →](https://iotools.cloud/tool/name-generator/knight-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/kobold-names":{"post":{"operationId":"run_name_generator_kobold_names","summary":"Kobold Name Generator","tags":["Generators"],"description":"Generate kobold names for D&D with AI — draconic, tribal and pronounceable, each hinting at the kobold's role and explained. Perfect for tabletop characters and fantasy fiction.\n\n[Try Kobold Name Generator in your browser →](https://iotools.cloud/tool/name-generator/kobold-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/korean-names":{"post":{"operationId":"run_name_generator_korean_names","summary":"Korean Name Generator","tags":["Generators"],"description":"Generate authentic Korean names with AI — family name plus given name, in Hangul and romanised form, each with its meaning explained. Perfect for characters, pen names and cultural research.\n\n[Try Korean Name Generator in your browser →](https://iotools.cloud/tool/name-generator/korean-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/last-names":{"post":{"operationId":"run_name_generator_last_names","summary":"Last Name Generator","tags":["Generators"],"description":"Generate realistic last names with AI — surnames spanning cultures and origins, each with its meaning explained. Perfect for characters, pen names and worldbuilding.\n\n[Try Last Name Generator in your browser →](https://iotools.cloud/tool/name-generator/last-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/legendary-creature-names":{"post":{"operationId":"run_name_generator_legendary_creature_names","summary":"Legendary Creature Name Generator","tags":["Generators"],"description":"Generate legendary creature names with AI — grand, mythic and explained. Perfect for fantasy fiction, tabletop campaigns and worldbuilding.\n\n[Try Legendary Creature Name Generator in your browser →](https://iotools.cloud/tool/name-generator/legendary-creature-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/mage-names":{"post":{"operationId":"run_name_generator_mage_names","summary":"Mage Name Generator","tags":["Generators"],"description":"Generate mystical mage names with AI — arcane, otherworldly and explained. Perfect for D&D characters, fantasy fiction and RPGs.\n\n[Try Mage Name Generator in your browser →](https://iotools.cloud/tool/name-generator/mage-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/mermaid-names":{"post":{"operationId":"run_name_generator_mermaid_names","summary":"Mermaid Name Generator","tags":["Generators"],"description":"Generate enchanting mermaid names with AI — oceanic, melodic and explained. Perfect for fantasy fiction, games and worldbuilding.\n\n[Try Mermaid Name Generator in your browser →](https://iotools.cloud/tool/name-generator/mermaid-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/middle-names":{"post":{"operationId":"run_name_generator_middle_names","summary":"Middle Name Generator","tags":["Generators"],"description":"Generate middle names with AI — each pairing naturally with the full name and explained. Perfect for expecting parents, characters and honouring family.\n\n[Try Middle Name Generator in your browser →](https://iotools.cloud/tool/name-generator/middle-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/norse-names":{"post":{"operationId":"run_name_generator_norse_names","summary":"Norse Name Generator","tags":["Generators"],"description":"Generate authentic Norse names with AI — rooted in Viking naming conventions and mythology, each with its meaning explained. Perfect for characters, fiction and worldbuilding.\n\n[Try Norse Name Generator in your browser →](https://iotools.cloud/tool/name-generator/norse-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/orc-names":{"post":{"operationId":"run_name_generator_orc_names","summary":"Orc Name Generator","tags":["Generators"],"description":"Generate fierce orc names with AI — harsh, guttural and explained. Perfect for D&D characters, fantasy fiction and RPGs.\n\n[Try Orc Name Generator in your browser →](https://iotools.cloud/tool/name-generator/orc-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/project-names":{"post":{"operationId":"run_name_generator_project_names","summary":"Project Name Generator","tags":["Generators"],"description":"Generate memorable project names with AI — each catchy, on-mission and explained. Perfect for codenames, initiatives, hackathons and product launches.\n\n[Try Project Name Generator in your browser →](https://iotools.cloud/tool/name-generator/project-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/random-names":{"post":{"operationId":"run_name_generator_random_names","summary":"Realistic Name Generator","tags":["Generators"],"description":"Generate random names for people with AI — any culture, any gender, each with its origin explained. Perfect for characters, test data and placeholder identities.\n\n[Try Realistic Name Generator in your browser →](https://iotools.cloud/tool/name-generator/random-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/restaurant-names":{"post":{"operationId":"run_name_generator_restaurant_names","summary":"Restaurant Name Generator","tags":["Generators"],"description":"Generate catchy restaurant names with AI — each tied to your cuisine and explained. Perfect for cafes, bistros, food trucks and new dining concepts.\n\n[Try Restaurant Name Generator in your browser →](https://iotools.cloud/tool/name-generator/restaurant-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/roman-names":{"post":{"operationId":"run_name_generator_roman_names","summary":"Roman Name Generator","tags":["Generators"],"description":"Generate authentic ancient Roman names with AI — following the praenomen, nomen and cognomen convention, each explained. Perfect for history, fiction and games.\n\n[Try Roman Name Generator in your browser →](https://iotools.cloud/tool/name-generator/roman-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/samurai-names":{"post":{"operationId":"run_name_generator_samurai_names","summary":"Samurai Name Generator","tags":["Generators"],"description":"Generate authentic Japanese samurai names with AI — each with its meaning and pronunciation explained. Perfect for characters, fiction and games.\n\n[Try Samurai Name Generator in your browser →](https://iotools.cloud/tool/name-generator/samurai-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/school-names":{"post":{"operationId":"run_name_generator_school_names","summary":"School Name Generator","tags":["Generators"],"description":"Generate distinctive school names with AI — each evoking learning and community, and explained. Perfect for fictional academies, real institutions and worldbuilding.\n\n[Try School Name Generator in your browser →](https://iotools.cloud/tool/name-generator/school-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/ship-names":{"post":{"operationId":"run_name_generator_ship_names","summary":"Ship Name Generator","tags":["Generators"],"description":"Generate evocative ship names with AI — traditional or modern, for any vessel, each explained. Perfect for boats, fiction, games and worldbuilding.\n\n[Try Ship Name Generator in your browser →](https://iotools.cloud/tool/name-generator/ship-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/song-names":{"post":{"operationId":"run_name_generator_song_names","summary":"Song Name Generator","tags":["Generators"],"description":"Generate catchy song titles with AI — matched to your lyrics, mood or genre, each explained. Perfect for songwriters, producers and playlist ideas.\n\n[Try Song Name Generator in your browser →](https://iotools.cloud/tool/name-generator/song-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/spanish-names":{"post":{"operationId":"run_name_generator_spanish_names","summary":"Spanish Name Generator","tags":["Generators"],"description":"Generate authentic Spanish names with AI — first names paired with two traditional surnames, spanning Spain's regions, with the meaning and origin of each explained.\n\n[Try Spanish Name Generator in your browser →](https://iotools.cloud/tool/name-generator/spanish-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/species-names":{"post":{"operationId":"run_name_generator_species_names","summary":"Species Name Generator","tags":["Generators"],"description":"Generate imaginative species names for alien life forms, mythical creatures and fantastical beings with AI — evocative, original, and explained. Perfect for worldbuilding and sci-fi.\n\n[Try Species Name Generator in your browser →](https://iotools.cloud/tool/name-generator/species-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/succubus-names":{"post":{"operationId":"run_name_generator_succubus_names","summary":"Succubus Name Generator","tags":["Generators"],"description":"Generate seductive, mysterious succubus names with AI — alluring, demonic and explained. Perfect for fantasy characters, horror fiction and tabletop campaigns.\n\n[Try Succubus Name Generator in your browser →](https://iotools.cloud/tool/name-generator/succubus-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/superhero-names":{"post":{"operationId":"run_name_generator_superhero_names","summary":"Superhero Name Generator","tags":["Generators"],"description":"Generate catchy superhero names with AI — powers hinted at, symbolism built in, and each one explained. Perfect for comics, games and original characters.\n\n[Try Superhero Name Generator in your browser →](https://iotools.cloud/tool/name-generator/superhero-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/tabaxi-names":{"post":{"operationId":"run_name_generator_tabaxi_names","summary":"Tabaxi Name Generator","tags":["Generators"],"description":"Generate Tabaxi names with AI — descriptive cat-folk phrases that capture a personality or life experience, each one explained. Perfect for D&D characters.\n\n[Try Tabaxi Name Generator in your browser →](https://iotools.cloud/tool/name-generator/tabaxi-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/team-names":{"post":{"operationId":"run_name_generator_team_names","summary":"Team Name Generator","tags":["Generators"],"description":"Generate distinctive team names with AI — memorable, unifying and explained. Perfect for sports squads, esports rosters, work groups and clubs.\n\n[Try Team Name Generator in your browser →](https://iotools.cloud/tool/name-generator/team-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/tiefling-names":{"post":{"operationId":"run_name_generator_tiefling_names","summary":"Tiefling Name Generator","tags":["Generators"],"description":"Generate Tiefling names with AI — infernal, evocative and explained, blending harsh and melodic sounds. Perfect for D&D characters and fantasy fiction.\n\n[Try Tiefling Name Generator in your browser →](https://iotools.cloud/tool/name-generator/tiefling-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/troll-names":{"post":{"operationId":"run_name_generator_troll_names","summary":"Troll Name Generator","tags":["Generators"],"description":"Generate troll names with AI — hulking, mythic and explained, from menacing to mischievous. Perfect for fantasy characters, games and folklore-inspired worlds.\n\n[Try Troll Name Generator in your browser →](https://iotools.cloud/tool/name-generator/troll-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/vampire-names":{"post":{"operationId":"run_name_generator_vampire_names","summary":"Vampire Name Generator","tags":["Generators"],"description":"Generate darkly alluring, immortal vampire names with AI — seductive, gothic and explained. Perfect for tabletop characters, urban fantasy and horror fiction.\n\n[Try Vampire Name Generator in your browser →](https://iotools.cloud/tool/name-generator/vampire-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/warforged-names":{"post":{"operationId":"run_name_generator_warforged_names","summary":"Warforged Name Generator","tags":["Generators"],"description":"Generate Warforged names with AI — mechanical, purpose-driven and explained. Perfect for D&D Eberron characters and construct NPCs.\n\n[Try Warforged Name Generator in your browser →](https://iotools.cloud/tool/name-generator/warforged-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/warrior-cat-names":{"post":{"operationId":"run_name_generator_warrior_cat_names","summary":"Warrior Cat Name Generator","tags":["Generators"],"description":"Generate Warrior Cats names for cats and Clans with AI — nature-inspired, descriptive and explained. Perfect for fan fiction and roleplay.\n\n[Try Warrior Cat Name Generator in your browser →](https://iotools.cloud/tool/name-generator/warrior-cat-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/werewolf-names":{"post":{"operationId":"run_name_generator_werewolf_names","summary":"Werewolf Name Generator","tags":["Generators"],"description":"Generate fierce werewolf names with AI — primal, mysterious and explained. Perfect for tabletop characters, urban fantasy and horror stories.\n\n[Try Werewolf Name Generator in your browser →](https://iotools.cloud/tool/name-generator/werewolf-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/witch-names":{"post":{"operationId":"run_name_generator_witch_names","summary":"Witch Name Generator","tags":["Generators"],"description":"Generate mystical witch names with AI — atmospheric, powerful and explained. Perfect for tabletop characters, fantasy fiction and games.\n\n[Try Witch Name Generator in your browser →](https://iotools.cloud/tool/name-generator/witch-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/wizard-names":{"post":{"operationId":"run_name_generator_wizard_names","summary":"Wizard Name Generator","tags":["Generators"],"description":"Generate wizard names with AI — arcane, ancient-sounding and explained. Perfect for D&D spellcasters, fantasy fiction and games.\n\n[Try Wizard Name Generator in your browser →](https://iotools.cloud/tool/name-generator/wizard-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/world-names":{"post":{"operationId":"run_name_generator_world_names","summary":"World Name Generator","tags":["Generators"],"description":"Generate evocative names for fictional worlds and realms with AI — wondrous, memorable and explained. Perfect for worldbuilding, tabletop settings and fantasy fiction.\n\n[Try World Name Generator in your browser →](https://iotools.cloud/tool/name-generator/world-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/name-generator/yuan-ti-names":{"post":{"operationId":"run_name_generator_yuan_ti_names","summary":"Yuan-ti Name Generator","tags":["Generators"],"description":"Generate serpentine yuan-ti names with AI — hissing, Aztec-flavoured and explained. Perfect for D&D characters and snake-cult NPCs.\n\n[Try Yuan-ti Name Generator in your browser →](https://iotools.cloud/tool/name-generator/yuan-ti-names/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComplexity":{"enum":["simple","balanced","elaborate"],"description":"Complexity"},"ioLength":{"enum":["short","medium","long"],"description":"Name length"},"ioContext":{"type":"string","description":"Extra context"},"ioDescribe":{"type":"boolean","description":"Include a short description for each name"},"ioCount":{"type":"number","description":"How many names","minimum":1,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNames":{"type":"string","description":"Names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/password-generator":{"post":{"operationId":"run_password_generator","summary":"Password Generator","tags":["Generators"],"description":"Generate a strong random password of any length from 6 to 128 characters — choose uppercase, lowercase, numbers and symbols, and optionally exclude similar or ambiguous characters. Created in your browser with a cryptographic RNG and never transmitted.\n\n[Try Password Generator in your browser →](https://iotools.cloud/tool/password-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioLength":{"type":"number","description":"Password length","minimum":6,"maximum":128},"ioSymbols":{"type":"boolean","description":"Include symbols (e.g. @#$%)"},"ioNumbers":{"type":"boolean","description":"Include numbers (e.g. 123456)"},"ioLowercase":{"type":"boolean","description":"Include lowercase characters (e.g. abcdefgh)"},"ioUppercase":{"type":"boolean","description":"Include uppercase characters (e.g. ABCDEFGH)"},"ioExcludeSimilar":{"type":"boolean","description":"Exclude similar characters (i, l, 1, L, o, 0, O)"},"ioExcludeAmbiguous":{"type":"boolean","description":"Exclude ambiguous characters ( { } [ ] ( ) / \\ ' \" ` ~ , ; : . &lt; > )"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioPassword":{"type":"string","description":"Generated password"},"ioStrength":{"type":"string","description":"Strength"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/phone-number-generator":{"post":{"operationId":"run_phone_number_generator","summary":"Phone Number Generator","tags":["Generators"],"description":"Generate realistic fake phone numbers for the US, UK, Canada, Australia, Germany, France, Japan, India and Brazil — in international, national or digits-only format, for testing forms and seeding data.\n\n[Try Phone Number Generator in your browser →](https://iotools.cloud/tool/phone-number-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCount":{"type":"number","description":"How many numbers","minimum":1,"maximum":50},"ioCountry":{"enum":["random","us","ca","uk","au","de","fr","jp","in","br"],"description":"Country"},"ioFormat":{"enum":["international","national","digits"],"description":"Format"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Generated phone numbers"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/qr-code-generator":{"post":{"operationId":"run_qr_code_generator","summary":"QR Code Generator","tags":["Generators"],"description":"Generate a QR code as a crisp, scalable SVG — plain text, a phone number, a pre-filled email, or Wi-Fi credentials — with your own colours, quiet zone and error-correction level. Runs entirely in your browser.\n\n[Try QR Code Generator in your browser →](https://iotools.cloud/tool/qr-code-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioFormat":{"enum":["text","phone","email","wifi"],"description":"Type"},"ioText":{"type":"string","description":"Message"},"ioPhone":{"type":"string","description":"Phone number"},"ioEmail":{"type":"string","description":"Email address"},"ioEmailSubject":{"type":"string","description":"Subject"},"ioEmailCc":{"type":"string","description":"CC"},"ioEmailBcc":{"type":"string","description":"BCC"},"ioEmailBody":{"type":"string","description":"Message body"},"ioWifiSsid":{"type":"string","description":"Network name (SSID)"},"ioWifiPassword":{"type":"string","description":"Password"},"ioWifiSecurity":{"enum":["WPA","WEP","nopass"],"description":"Security"},"ioEcLevel":{"enum":["L","M","Q","H"],"description":"Error correction"},"ioMargin":{"type":"number","description":"Space around","minimum":0,"maximum":20},"ioDotSize":{"type":"number","description":"Dot size","minimum":1,"maximum":20},"ioBackground":{"type":"string","description":"Background"},"ioColor":{"type":"string","description":"QR colour"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSvg":{"type":"string","description":"SVG source"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/batch-qr-code-generator":{"post":{"operationId":"run_batch_qr_code_generator","summary":"Batch QR Code Generator","tags":["Generators"],"description":"Generate a QR code for every line of a list — URLs, serial numbers, contact details, anything — tiled into one combined, scalable SVG you can copy or download in a single file. Runs entirely in your browser.\n\n[Try Batch QR Code Generator in your browser →](https://iotools.cloud/tool/batch-qr-code-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioLines":{"type":"string","description":"Text values (one per line)"},"ioEcLevel":{"enum":["L","M","Q","H"],"description":"Error correction"},"ioColumns":{"type":"number","description":"Codes per row","minimum":1,"maximum":10},"ioShowLabels":{"type":"boolean","description":"Show text below each code"},"ioMargin":{"type":"number","description":"Space around","minimum":0,"maximum":20},"ioDotSize":{"type":"number","description":"Dot size","minimum":1,"maximum":20},"ioBackground":{"type":"string","description":"Background"},"ioColor":{"type":"string","description":"QR colour"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSvg":{"type":"string","description":"SVG source"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/random-address-generator":{"post":{"operationId":"run_random_address_generator","summary":"Random Address Generator","tags":["Generators"],"description":"Generate random, realistic-looking street addresses — street number, street name, city, state/province and ZIP/postal code — for the US, UK, Canada, Australia or Germany. Fabricated test data only, not real locations. Great for form testing, seeding databases and mock fixtures.\n\n[Try Random Address Generator in your browser →](https://iotools.cloud/tool/random-address-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCountry":{"enum":["random","us","uk","ca","au","de"],"description":"Country"},"ioCount":{"type":"number","description":"Number of addresses","minimum":1,"maximum":50},"ioFormat":{"enum":["full","single","json"],"description":"Output Format"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Generated Addresses"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/random-bitcoin-address-generator":{"post":{"operationId":"run_random_bitcoin_address_generator","summary":"Random Bitcoin Address Generator","tags":["Generators"],"description":"Generate random, syntactically-valid-looking Bitcoin addresses (Legacy P2PKH, P2SH, Bech32 SegWit, or Bech32m Taproot) for test data, fixtures, and UI demos. These are randomly generated — no private key exists for them, nobody controls them, and they hold no funds; never use one as a real receiving address.\n\n[Try Random Bitcoin Address Generator in your browser →](https://iotools.cloud/tool/random-bitcoin-address-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCount":{"type":"number","description":"Number of addresses","minimum":1,"maximum":50},"ioAddressType":{"enum":["random","p2pkh","p2sh","bech32","bech32m"],"description":"Address type"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Generated Bitcoin Addresses"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/random-color-generator":{"post":{"operationId":"run_random_color_generator","summary":"Random Color Generator","tags":["Generators"],"description":"Generate one or many random colors, each shown with its hex, RGB, and HSL values. Optionally lock hue, saturation, or lightness ranges to bias results toward pastel, vivid, or dark palettes.\n\n[Try Random Color Generator in your browser →](https://iotools.cloud/tool/random-color-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioColorCount":{"type":"number","description":"Number of Colors","minimum":1,"maximum":20},"ioLockHue":{"type":"boolean","description":"Lock Hue Range"},"ioHueMin":{"type":"number","description":"Min Hue (0-360)","minimum":0,"maximum":360},"ioHueMax":{"type":"number","description":"Max Hue (0-360)","minimum":0,"maximum":360},"ioLockSaturation":{"type":"boolean","description":"Lock Saturation Range"},"ioSaturationMin":{"type":"number","description":"Min Saturation % (0-100)","minimum":0,"maximum":100},"ioSaturationMax":{"type":"number","description":"Max Saturation % (0-100)","minimum":0,"maximum":100},"ioLockLightness":{"type":"boolean","description":"Lock Lightness Range"},"ioLightnessMin":{"type":"number","description":"Min Lightness % (0-100)","minimum":0,"maximum":100},"ioLightnessMax":{"type":"number","description":"Max Lightness % (0-100)","minimum":0,"maximum":100}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioColorTable":{"type":"string","description":"Generated Colors"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/random-email-generator":{"post":{"operationId":"run_random_email_generator","summary":"Random Email Generator","tags":["Generators"],"description":"Generate batches of fake, well-formed email addresses for testing, mockups and demos. Choose realistic-name or random-string local parts, a name format, and common, fictional or custom domains. Not real inboxes.\n\n[Try Random Email Generator in your browser →](https://iotools.cloud/tool/random-email-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCount":{"type":"number","description":"Number of Emails","minimum":1,"maximum":100},"ioUsernameStyle":{"enum":["realistic","random"],"description":"Username Style"},"ioEmailFormat":{"enum":["first.last","firstlast","first_last","f.last","flast"],"description":"Name Format"},"ioDomainType":{"enum":["common","fictional","custom"],"description":"Domain Type"},"ioCustomDomain":{"type":"string","description":"Custom Domain"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Generated Emails"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/random-generator":{"post":{"operationId":"run_random_generator","summary":"Random Generator","tags":["Generators"],"description":"Pick random entries from any list — or shuffle the whole thing. The general-purpose randomizer behind the specialised pickers: paste anything, one item per line, and draw.\n\n[Try Random Generator in your browser →](https://iotools.cloud/tool/random-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioListItems":{"type":"string","description":"List items"},"ioMode":{"enum":["pick","shuffle"],"description":"Mode"},"ioPickCount":{"type":"number","description":"Items to pick","minimum":1,"maximum":100},"ioRemoveDuplicatedItems":{"type":"boolean","description":"Remove duplicated items"}},"required":["ioListItems"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/random-generator/numbers":{"post":{"operationId":"run_random_generator_numbers","summary":"Random Number Generator","tags":["Generators"],"description":"Generate one or many random numbers in any range — integers or decimals with configurable precision, with or without repeats. Great for draws, sampling and testing.\n\n[Try Random Number Generator in your browser →](https://iotools.cloud/tool/random-generator/numbers/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCount":{"type":"number","description":"Number count","minimum":1,"maximum":100},"ioMin":{"type":"number","description":"Min"},"ioMax":{"type":"number","description":"Max"},"ioAllowRepeat":{"type":"boolean","description":"Allow repeated numbers"},"ioNumberTypes":{"enum":["integer","decimal"],"description":"Number type"},"ioPrecision":{"type":"number","description":"Decimal places","minimum":0,"maximum":10}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNumbers":{"type":"string","description":"Generated numbers"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/random-generator/random-animals":{"post":{"operationId":"run_random_generator_random_animals","summary":"Random Animal Generator","tags":["Generators"],"description":"Pick random animals from across the globe, each with a photo. Great for drawing and writing prompts, classroom games, trivia and \"guess the animal\" icebreakers.\n\n[Try Random Animal Generator in your browser →](https://iotools.cloud/tool/random-generator/random-animals/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioEntriesCount":{"type":"number","description":"Count","minimum":1,"maximum":40},"ioFormattingStyle":{"enum":["capital","lowerCase","upperCase"],"description":"Name format"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioEntries":{"type":"string","description":"Random animals"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/random-generator/random-birthday":{"post":{"operationId":"run_random_generator_random_birthday","summary":"Random Birthday Generator","tags":["Generators"],"description":"Generate random birth dates constrained by age range, month or zodiac sign — with the age and star sign of every result. Ideal for test data, characters and personas.\n\n[Try Random Birthday Generator in your browser →](https://iotools.cloud/tool/random-generator/random-birthday/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioEntriesCount":{"type":"number","description":"Count","minimum":1,"maximum":40},"ioMinAge":{"type":"number","description":"Minimum age","minimum":0,"maximum":120},"ioMaxAge":{"type":"number","description":"Maximum age","minimum":0,"maximum":120},"ioMonth":{"enum":["any","1","2","3","4","5","6","7","8","9","10","11","12"],"description":"Month"},"ioZodiac":{"enum":["any","Aries","Taurus","Gemini","Cancer","Leo","Virgo","Libra","Scorpio","Sagittarius","Capricorn","Aquarius","Pisces"],"description":"Zodiac sign"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioBirthdays":{"type":"string","description":"Random birthdays"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/random-generator/random-celebrities":{"post":{"operationId":"run_random_generator_random_celebrities","summary":"Random Celebrity Generator","tags":["Generators"],"description":"Pick random celebrities — actors, musicians, athletes and public figures — each with a photo. Great for charades, guessing games, drawing prompts and party icebreakers.\n\n[Try Random Celebrity Generator in your browser →](https://iotools.cloud/tool/random-generator/random-celebrities/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioEntriesCount":{"type":"number","description":"Count","minimum":1,"maximum":40}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioEntries":{"type":"string","description":"Random celebrities"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/random-generator/random-foods":{"post":{"operationId":"run_random_generator_random_foods","summary":"Random Food Generator","tags":["Generators"],"description":"Pick random dishes from cuisines around the world, each with a photo. Beat can't-decide-what-to-eat paralysis, plan themed dinners or find your next recipe to try.\n\n[Try Random Food Generator in your browser →](https://iotools.cloud/tool/random-generator/random-foods/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioEntriesCount":{"type":"number","description":"Count","minimum":1,"maximum":40},"ioFormattingStyle":{"enum":["capital","lowerCase","upperCase"],"description":"Name format"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioEntries":{"type":"string","description":"Random foods"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/random-generator/random-mlb-teams":{"post":{"operationId":"run_random_generator_random_mlb_teams","summary":"Random MLB Team Generator","tags":["Generators"],"description":"Pick one or more Major League Baseball teams at random, each with the story behind its name. Handy for fantasy drafts, trivia nights and pick'em games.\n\n[Try Random MLB Team Generator in your browser →](https://iotools.cloud/tool/random-generator/random-mlb-teams/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioEntriesCount":{"type":"number","description":"Count","minimum":1,"maximum":30}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioTeams":{"type":"string","description":"Random MLB teams"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/random-generator/random-movies":{"post":{"operationId":"run_random_generator_random_movies","summary":"Random Movie Generator","tags":["Generators"],"description":"Pick random movies from 500 acclaimed titles — poster, year, genre and IMDb rating included. End the what-should-we-watch debate or build a watchlist in one click.\n\n[Try Random Movie Generator in your browser →](https://iotools.cloud/tool/random-generator/random-movies/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioEntriesCount":{"type":"number","description":"Count","minimum":1,"maximum":40},"ioMinRating":{"enum":["0","7","8"],"description":"Minimum IMDb rating"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioMovies":{"type":"string","description":"Random movies"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/random-generator/random-name-picker":{"post":{"operationId":"run_random_generator_random_name_picker","summary":"Random Name Picker","tags":["Generators"],"description":"Draw one or more winners at random from a list of names — for giveaways, raffles, classroom picks and who-goes-first decisions. Paste or upload the list and pick.\n\n[Try Random Name Picker in your browser →](https://iotools.cloud/tool/random-generator/random-name-picker/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioNameList":{"type":"string","description":"Name list"},"ioNameSeparator":{"enum":["newline",","," ","|",";"],"description":"Name separator"},"ioPickCount":{"type":"number","description":"Winners to pick","minimum":1,"maximum":40}},"required":["ioNameList"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioWinners":{"type":"string","description":"Winners"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/random-generator/random-nba-teams":{"post":{"operationId":"run_random_generator_random_nba_teams","summary":"Random NBA Team Generator","tags":["Generators"],"description":"Pick one or more NBA basketball teams at random, each with the story behind its name. Handy for fantasy drafts, trivia nights and pick'em games.\n\n[Try Random NBA Team Generator in your browser →](https://iotools.cloud/tool/random-generator/random-nba-teams/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioEntriesCount":{"type":"number","description":"Count","minimum":1,"maximum":30}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioTeams":{"type":"string","description":"Random NBA teams"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/random-generator/random-nfl-teams":{"post":{"operationId":"run_random_generator_random_nfl_teams","summary":"Random NFL Team Generator","tags":["Generators"],"description":"Pick one or more NFL football teams at random, each with the story behind its name. Handy for fantasy drafts, trivia nights and pick'em games.\n\n[Try Random NFL Team Generator in your browser →](https://iotools.cloud/tool/random-generator/random-nfl-teams/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioEntriesCount":{"type":"number","description":"Count","minimum":1,"maximum":32}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioTeams":{"type":"string","description":"Random NFL teams"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/random-generator/random-objects":{"post":{"operationId":"run_random_generator_random_objects","summary":"Random Object Generator","tags":["Generators"],"description":"Pick random everyday objects, each with a photo. Perfect for drawing and writing prompts, pictionary, improv games, scavenger hunts and memory training.\n\n[Try Random Object Generator in your browser →](https://iotools.cloud/tool/random-generator/random-objects/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioEntriesCount":{"type":"number","description":"Count","minimum":1,"maximum":40},"ioFormattingStyle":{"enum":["capital","lowerCase","upperCase"],"description":"Name format"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioEntries":{"type":"string","description":"Random objects"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/random-generator/random-team-generator":{"post":{"operationId":"run_random_generator_random_team_generator","summary":"Random Team Generator","tags":["Generators"],"description":"Split a list of names into random, evenly-sized teams. Paste or upload the names, choose how many teams, and get a fair draw — no picking captains, no arguments.\n\n[Try Random Team Generator in your browser →](https://iotools.cloud/tool/random-generator/random-team-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioListItems":{"type":"string","description":"List names"},"ioNumberOfTeams":{"type":"number","description":"Number of teams","minimum":2,"maximum":100},"ioRemoveDuplicatedItems":{"type":"boolean","description":"Remove duplicated names"}},"required":["ioListItems"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioTeams":{"type":"string","description":"Teams"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/random-generator/random-us-zip-codes":{"post":{"operationId":"run_random_generator_random_us_zip_codes","summary":"Random US Zip Code Generator","tags":["Generators"],"description":"Generate random real US zip codes — optionally limited to one state — with the city, county and state each code belongs to. Useful for test data, sampling and geography games.\n\n[Try Random US Zip Code Generator in your browser →](https://iotools.cloud/tool/random-generator/random-us-zip-codes/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioEntriesCount":{"type":"number","description":"Count","minimum":1,"maximum":40},"ioState":{"enum":["any","Alabama","Alaska","Arizona","Arkansas","California","Colorado","Connecticut","Delaware","District Of Columbia","Florida","Georgia","Hawaii","Idaho","Illinois","Indiana","Iowa","Kansas","Kentucky","Louisiana","Maine","Maryland","Massachusetts","Michigan","Minnesota","Mississippi","Missouri","Montana","Nebraska","Nevada","New Hampshire","New Jersey","New Mexico","New York","North Carolina","North Dakota","Ohio","Oklahoma","Oregon","Pennsylvania","Rhode Island","South Carolina","South Dakota","Tennessee","Texas","Utah","Vermont","Virginia","Washington","West Virginia","Wisconsin","Wyoming"],"description":"State"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioZipCodes":{"type":"string","description":"Random zip codes"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/random-pokemon-generator":{"post":{"operationId":"run_random_pokemon_generator","summary":"Random Pokémon Generator","tags":["Generators"],"description":"Roll a random Pokémon team from the full Pokédex, filtered by generation, type and base stats (HP, Attack, Defence, Sp. Attack, Sp. Defence, Speed). Great for Nuzlocke runs, randomiser challenges and drafting a team you'd never have picked yourself.\n\n[Try Random Pokémon Generator in your browser →](https://iotools.cloud/tool/random-pokemon-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCount":{"type":"number","description":"Pokémon per team","minimum":1,"maximum":20},"ioGeneration":{"enum":["","1","2","3","4","5","6","7","8","9"],"description":"Generation"},"ioType":{"enum":["","normal","fire","water","electric","grass","ice","fighting","poison","ground","flying","psychic","bug","rock","ghost","dragon","dark","steel","fairy"],"description":"Type"},"ioHitPoints":{"enum":["","0-50","51-100","101-150","151-9999"],"description":"Hit points"},"ioSpeed":{"enum":["","0-50","51-100","101-150","151-9999"],"description":"Speed"},"ioAttack":{"enum":["","0-50","51-100","101-150","151-9999"],"description":"Attack"},"ioSpecialAttack":{"enum":["","0-50","51-100","101-150","151-9999"],"description":"Sp. Attack"},"ioDefence":{"enum":["","0-50","51-100","101-150","151-9999"],"description":"Defence"},"ioSpecialDefence":{"enum":["","0-50","51-100","101-150","151-9999"],"description":"Sp. Defence"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioTeam":{"type":"string","description":"Your team"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/random-port-generator":{"post":{"operationId":"run_random_port_generator","summary":"Random Port Generator","tags":["Generators"],"description":"Generate random, unused TCP/UDP port numbers above the reserved range — pick from the registered or dynamic/private IANA ranges and skip ports common services already use.\n\n[Try Random Port Generator in your browser →](https://iotools.cloud/tool/random-port-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCount":{"type":"number","description":"How many ports","minimum":1,"maximum":50},"ioRange":{"enum":["any","registered","dynamic"],"description":"Range"},"ioAvoidCommon":{"type":"boolean","description":"Avoid ports common services use (3306, 8080, …)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioPorts":{"type":"string","description":"Generated ports"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/random-name-generator":{"post":{"operationId":"run_random_name_generator","summary":"Random Name Generator","tags":["Generators"],"description":"Generate random names from themed dictionaries — names, languages, adjectives, animals, colors, countries, Star Wars characters, Pokémon or music artists. Pick a dictionary, a count and a case style.\n\n[Try Random Name Generator in your browser →](https://iotools.cloud/tool/random-name-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioDictionary":{"enum":["names","languages","adjectives","animals","colors","countries","starWars","pokemon","musicArtists"],"description":"Dictionary"},"ioFormattingStyle":{"enum":["capital","lowerCase","upperCase"],"description":"Name format"},"ioEntriesCount":{"type":"number","description":"Count","minimum":1,"maximum":40}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Generated names"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/yes-or-no":{"post":{"operationId":"run_yes_or_no","summary":"Yes or No","tags":["Generators"],"description":"Generate one or many random Yes/No answers — like a coin flip for decisions. Optionally bias the odds away from a fair 50/50 split.\n\n[Try Yes or No in your browser →](https://iotools.cloud/tool/yes-or-no/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCount":{"type":"number","description":"How many answers?","minimum":1,"maximum":100},"ioYesProbability":{"type":"number","description":"Chance of Yes (%)","minimum":0,"maximum":100}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Result"},"ioSummary":{"type":"string","description":"Summary"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/react-native-shadow-generator":{"post":{"operationId":"run_react_native_shadow_generator","summary":"React Native Shadow Generator","tags":["Generators"],"description":"Generate matching iOS shadow props (shadowColor, shadowOffset, shadowOpacity, shadowRadius) and the Android elevation for React Native from one depth value, with a live preview and copy-ready StyleSheet, style-object or boxShadow output.\n\n[Try React Native Shadow Generator in your browser →](https://iotools.cloud/tool/react-native-shadow-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMode":{"enum":["depth","manual"],"description":"Shadow Values"},"ioDepth":{"type":"number","description":"Shadow Depth","minimum":1,"maximum":24},"ioColor":{"type":"string","description":"Shadow Color"},"ioOffsetX":{"type":"number","description":"Offset X (px)","minimum":-20,"maximum":20},"ioOffsetY":{"type":"number","description":"Offset Y (px)","minimum":-20,"maximum":20},"ioOpacity":{"type":"number","description":"Shadow Opacity (%)","minimum":0,"maximum":100},"ioRadius":{"type":"number","description":"Shadow Radius (px)","minimum":0,"maximum":40},"ioElevation":{"type":"number","description":"Android Elevation","minimum":0,"maximum":24},"ioFormat":{"enum":["stylesheet","object","boxshadow"],"description":"Output Format"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCode":{"type":"string","description":"React Native Style"},"ioPreviewHtml":{"type":"string","description":"Web Equivalent (HTML)"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/readme-badge-generator":{"post":{"operationId":"run_readme_badge_generator","summary":"README Badge Generator","tags":["Generators"],"description":"Generate shields.io-style SVG badges for GitHub READMEs — pick a preset (version, license, build, coverage...) or fully customize the label, message, colors and style, and get SVG, Markdown, HTML and a data-URL to copy.\n\n[Try README Badge Generator in your browser →](https://iotools.cloud/tool/readme-badge-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioBadgeTemplate":{"enum":["custom","version","license","build","coverage","downloads","stars","love"],"description":"Preset"},"ioBadgeLabel":{"type":"string","description":"Label"},"ioBadgeMessage":{"type":"string","description":"Message"},"ioLabelColor":{"type":"string","description":"Label Color"},"ioMessageColorPreset":{"enum":["#4c1","#97ca00","#a4a61d","#dfb317","#fe7d37","#e05d44","#007ec6","#9f9f9f","#464aff","custom"],"description":"Message Color"},"ioMessageColor":{"type":"string","description":"Custom Color"},"ioBadgeStyle":{"enum":["flat","flat-square","for-the-badge","plastic"],"description":"Style"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioBadgeUrl":{"type":"string","description":"Data URL"},"ioBadgeMarkdown":{"type":"string","description":"Markdown"},"ioBadgeHtml":{"type":"string","description":"HTML"},"ioBadgeSvg":{"type":"string","description":"SVG Source"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/responsive-image-srcset-sizes-generator":{"post":{"operationId":"run_responsive_image_srcset_sizes_generator","summary":"Responsive Image srcset/sizes Generator","tags":["Generators"],"description":"Generate the srcset and sizes attributes for a responsive &lt;img> tag from a base filename/URL pattern and a list of target widths — plus a ready-to-paste &lt;img> tag with loading=\"lazy\" and decoding=\"async\".\n\n[Try Responsive Image srcset/sizes Generator in your browser →](https://iotools.cloud/tool/responsive-image-srcset-sizes-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioImageUrl":{"type":"string","description":"Image Filename or URL Pattern"},"ioWidths":{"type":"string","description":"Target Widths (px)"},"ioSizes":{"type":"string","description":"sizes Attribute"},"ioAlt":{"type":"string","description":"Alt Text"},"ioLazy":{"type":"boolean","description":"Add loading=\"lazy\" and decoding=\"async\""}},"required":["ioImageUrl","ioWidths"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSrcset":{"type":"string","description":"srcset Attribute Value"},"ioSizesOutput":{"type":"string","description":"sizes Attribute Value"},"ioImgTag":{"type":"string","description":"Complete &lt;img> Tag"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/review-generator":{"post":{"operationId":"run_review_generator","summary":"Review Generator","tags":["Generators"],"description":"Generate realistic-looking placeholder product reviews — pick a category, rating distribution, and length, then export as plain text, JSON, CSV, or Markdown. For mockups, UI testing, and sample datasets.\n\n[Try Review Generator in your browser →](https://iotools.cloud/tool/review-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioProductName":{"type":"string","description":"Product Name"},"ioCategory":{"enum":["general","electronics","home","books","clothing","food","health","sports","toys","software"],"description":"Product Category"},"ioRatingDist":{"enum":["positive","mixed","negative","all5","specific"],"description":"Rating Distribution"},"ioSpecificRating":{"type":"number","description":"Star Rating","minimum":1,"maximum":5},"ioReviewLength":{"enum":["mixed","short","medium","long"],"description":"Review Length"},"ioNumReviews":{"type":"number","description":"Number of Reviews","minimum":1,"maximum":50},"ioIncludeNames":{"type":"boolean","description":"Include Reviewer Names"},"ioIncludeDates":{"type":"boolean","description":"Include Dates"},"ioIncludeVerified":{"type":"boolean","description":"Include \"Verified Purchase\" Badge"},"ioOutputFormat":{"enum":["text","json","csv","markdown"],"description":"Output Format"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioStatus":{"type":"string","description":"Status"},"ioReviewsOutput":{"type":"string","description":"Generated Reviews"},"ioSummaryStats":{"type":"string","description":"Summary Statistics"},"ioRatingDistribution":{"type":"string","description":"Rating Distribution"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ripemd-160-hash-generator":{"post":{"operationId":"run_ripemd_160_hash_generator","summary":"RIPEMD-160 Hash Generator","tags":["Generators"],"description":"Generate the RIPEMD-160 hash of any text, in hexadecimal or base64, and optionally verify it against an expected hash.\n\n[Try RIPEMD-160 Hash Generator in your browser →](https://iotools.cloud/tool/ripemd-160-hash-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Message to hash"},"ioOutputFormat":{"enum":["hex","hex-upper","base64"],"description":"Output format"},"ioExpectedHash":{"type":"string","description":"Expected hash (optional)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"RIPEMD-160 hash"},"ioMatch":{"type":"string","description":"Matches expected hash?"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/robots-txt-generator":{"post":{"operationId":"run_robots_txt_generator","summary":"Robots.txt Generator","tags":["Generators"],"description":"Generate a valid robots.txt file: a default rule group for all crawlers, an optional rule group for one specific bot (Googlebot, GPTBot, etc.), Crawl-delay, and one or more Sitemap URLs. Produces spec-correct output ready to copy or download.\n\n[Try Robots.txt Generator in your browser →](https://iotools.cloud/tool/robots-txt-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioComment":{"type":"string","description":"Header Comment (optional)"},"ioDefaultDisallow":{"type":"string","description":"Disallow paths"},"ioDefaultAllow":{"type":"string","description":"Allow paths (optional)"},"ioDefaultCrawlDelay":{"type":"number","description":"Crawl-delay (seconds, optional)","minimum":0},"ioBotAgent":{"enum":["","Googlebot","Googlebot-Image","Bingbot","YandexBot","DuckDuckBot","Baiduspider","GPTBot","ChatGPT-User","Google-Extended","CCBot","anthropic-ai","ClaudeBot","PerplexityBot","Twitterbot","AhrefsBot","SemrushBot","Applebot","__custom__"],"description":"User-agent"},"ioBotAgentCustom":{"type":"string","description":"Custom user-agent"},"ioBotDisallow":{"type":"string","description":"Disallow paths"},"ioBotAllow":{"type":"string","description":"Allow paths (optional)"},"ioBotCrawlDelay":{"type":"number","description":"Crawl-delay (seconds, optional)","minimum":0},"ioSitemapUrls":{"type":"string","description":"Sitemap URL(s)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Generated robots.txt"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/routing-number-generator":{"post":{"operationId":"run_routing_number_generator","summary":"Routing Number Generator","tags":["Generators"],"description":"Generate random, checksum-valid fake ABA bank routing numbers for testing and development. Pick how many to create and an optional Federal Reserve district. For test data only — never real bank accounts.\n\n[Try Routing Number Generator in your browser →](https://iotools.cloud/tool/routing-number-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCount":{"type":"number","description":"Number of routing numbers","minimum":1,"maximum":50},"ioDistrict":{"enum":["random","01","02","03","04","05","06","07","08","09","10","11","12"],"description":"Federal Reserve district"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioRoutingNumbers":{"type":"string","description":"Generated routing numbers"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/rss-atom-feed-generator":{"post":{"operationId":"run_rss_atom_feed_generator","summary":"RSS / Atom Feed Generator","tags":["Generators"],"description":"Generate a valid RSS 2.0 or Atom 1.0 feed from feed metadata and a simple key:value item list. Handles XML escaping, RFC 822 / RFC 3339 dates, categories, GUIDs and CDATA content — ready to serve or paste into a feed reader. Runs entirely in your browser.\n\n[Try RSS / Atom Feed Generator in your browser →](https://iotools.cloud/tool/rss-atom-feed-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioFeedType":{"enum":["rss","atom"],"description":"Feed Type"},"ioFeedTitle":{"type":"string","description":"Title"},"ioFeedLink":{"type":"string","description":"Site URL"},"ioFeedDescription":{"type":"string","description":"Description"},"ioFeedSelfUrl":{"type":"string","description":"Self URL"},"ioFeedLanguage":{"type":"string","description":"Language"},"ioFeedCopyright":{"type":"string","description":"Copyright"},"ioFeedId":{"type":"string","description":"Feed ID"},"ioFeedAuthorName":{"type":"string","description":"Author Name"},"ioFeedAuthorEmail":{"type":"string","description":"Author Email"},"ioFeedUpdatedNow":{"type":"boolean","description":"Use current time as build/updated timestamp"},"ioItemsInput":{"type":"string","description":"Items"}},"required":["ioFeedTitle"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Generated Feed XML"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/sitemap-xml-generator":{"post":{"operationId":"run_sitemap_xml_generator","summary":"Sitemap XML Generator","tags":["Generators"],"description":"Generate a sitemaps.org-compliant XML sitemap (or sitemap index) from a list of URLs, one per line. Supports per-URL lastmod/changefreq/priority via an optional CSV header row, plus global defaults, with proper XML escaping of query strings and special characters. Runs entirely in your browser.\n\n[Try Sitemap XML Generator in your browser →](https://iotools.cloud/tool/sitemap-xml-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMode":{"enum":["sitemap","sitemapindex"],"description":"Mode"},"ioUrls":{"type":"string","description":"URLs"},"ioIndexUrls":{"type":"string","description":"Sitemap URLs"},"ioDefaultChangefreq":{"enum":["","always","hourly","daily","weekly","monthly","yearly","never"],"description":"Change Frequency"},"ioDefaultPriority":{"enum":["","1.0","0.9","0.8","0.7","0.6","0.5","0.4","0.3","0.2","0.1","0.0"],"description":"Priority"},"ioAutoLastmod":{"type":"boolean","description":"Use today's date as lastmod for URLs without one"},"ioAutoLastmodIndex":{"type":"boolean","description":"Use today's date as lastmod for every sitemap"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Generated Sitemap XML"},"ioSummary":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/spf-dkim-dmarc-record-generator":{"post":{"operationId":"run_spf_dkim_dmarc_record_generator","summary":"SPF / DKIM / DMARC Record Generator","tags":["Generators"],"description":"Generate SPF, DKIM and DMARC DNS TXT records for your domain — pick email providers for SPF, count DNS lookups against the RFC 7208 limit, build a DKIM record from a public key, and set a DMARC rollout policy.\n\n[Try SPF / DKIM / DMARC Record Generator in your browser →](https://iotools.cloud/tool/spf-dkim-dmarc-record-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioDomain":{"type":"string","description":"Domain"},"ioTtl":{"type":"number","description":"TTL","minimum":60},"ioSpfEnable":{"type":"boolean","description":"Generate SPF record"},"ioSpfGoogle":{"type":"boolean","description":"Google Workspace (include:_spf.google.com)"},"ioSpfMicrosoft":{"type":"boolean","description":"Microsoft 365 (include:spf.protection.outlook.com)"},"ioSpfSendgrid":{"type":"boolean","description":"SendGrid (include:sendgrid.net)"},"ioSpfMailchimp":{"type":"boolean","description":"Mailchimp (include:servers.mcsv.net)"},"ioSpfMailgun":{"type":"boolean","description":"Mailgun (include:mailgun.org)"},"ioSpfSes":{"type":"boolean","description":"Amazon SES (include:amazonses.com)"},"ioSpfZoho":{"type":"boolean","description":"Zoho Mail (include:zoho.com)"},"ioSpfPostmark":{"type":"boolean","description":"Postmark (include:spf.mtasv.net)"},"ioSpfMechA":{"type":"boolean","description":"Authorize A records of this domain (a)"},"ioSpfMechMx":{"type":"boolean","description":"Authorize MX records of this domain (mx)"},"ioSpfIp4":{"type":"string","description":"Extra IPv4"},"ioSpfIp6":{"type":"string","description":"Extra IPv6"},"ioSpfCustomIncludes":{"type":"string","description":"Extra includes"},"ioSpfAll":{"enum":["~all","-all","?all"],"description":"All Mechanism"},"ioDkimEnable":{"type":"boolean","description":"Generate DKIM record"},"ioDkimSelector":{"type":"string","description":"Selector"},"ioDkimKeyType":{"enum":["rsa","ed25519"],"description":"Key Type"},"ioDkimPublicKey":{"type":"string","description":"Public Key (base64)"},"ioDmarcEnable":{"type":"boolean","description":"Generate DMARC record"},"ioDmarcPolicy":{"enum":["none","quarantine","reject"],"description":"Policy"},"ioDmarcSubdomainPolicy":{"enum":["inherit","none","quarantine","reject"],"description":"Subdomain Policy"},"ioDmarcPct":{"type":"number","description":"Percent (pct)","minimum":1,"maximum":100},"ioDmarcRua":{"type":"string","description":"Aggregate (rua)"},"ioDmarcRuf":{"type":"string","description":"Forensic (ruf)"},"ioDmarcAdkim":{"enum":["r","s"],"description":"DKIM Alignment"},"ioDmarcAspf":{"enum":["r","s"],"description":"SPF Alignment"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSpfOutput":{"type":"string","description":"SPF Record"},"ioDkimOutput":{"type":"string","description":"DKIM Record"},"ioDmarcOutput":{"type":"string","description":"DMARC Record"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/rsa-key-generator":{"post":{"operationId":"run_rsa_key_generator","summary":"RSA Key Generator","tags":["Generators"],"description":"Generate an RSA public/private key pair — 2048, 3072 or 4096-bit — in PEM format, ready for SSH, TLS, JWT signing and more.\n\n[Try RSA Key Generator in your browser →](https://iotools.cloud/tool/rsa-key-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioKeyLength":{"enum":["2048","3072","4096"],"description":"Key length"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioPublicKey":{"type":"string","description":"Public key (PEM)"},"ioPrivateKey":{"type":"string","description":"Private key (PEM)"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/share-links-generator":{"post":{"operationId":"run_share_links_generator","summary":"Share Links Generator","tags":["Generators"],"description":"Generate ready-to-use social share links for Facebook, X (Twitter), LinkedIn, Pinterest, Reddit, WhatsApp, Telegram, Tumblr, Weibo, VKontakte and email — no share widget or third-party script required.\n\n[Try Share Links Generator in your browser →](https://iotools.cloud/tool/share-links-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioNetwork":{"enum":["all","email","facebook","twitter","linkedin","pinterest","reddit","whatsapp","tumblr","telegram","weibo","vkontakte"],"description":"Platform"},"ioUrl":{"type":"string","description":"URL"},"ioThumbnailUrl":{"type":"string","description":"Thumbnail image URL"},"ioPhone":{"type":"string","description":"Phone number"},"ioText":{"type":"string","description":"Text"},"ioTitle":{"type":"string","description":"Title"},"ioDescription":{"type":"string","description":"Description"},"ioSummary":{"type":"string","description":"Summary"},"ioSource":{"type":"string","description":"Source"},"ioEmailRecipient":{"type":"string","description":"Recipient"},"ioEmailSubject":{"type":"string","description":"Subject"},"ioEmailCc":{"type":"string","description":"CC"},"ioEmailBcc":{"type":"string","description":"BCC"},"ioEmailBody":{"type":"string","description":"Body"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioEmailLink":{"type":"string","description":"Email"},"ioFacebookLink":{"type":"string","description":"Facebook"},"ioTwitterLink":{"type":"string","description":"X (Twitter)"},"ioLinkedinLink":{"type":"string","description":"LinkedIn"},"ioPinterestLink":{"type":"string","description":"Pinterest"},"ioRedditLink":{"type":"string","description":"Reddit"},"ioWhatsappLink":{"type":"string","description":"WhatsApp"},"ioTumblrLink":{"type":"string","description":"Tumblr"},"ioTelegramLink":{"type":"string","description":"Telegram"},"ioWeiboLink":{"type":"string","description":"Weibo"},"ioVkontakteLink":{"type":"string","description":"VKontakte"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/slug-generator":{"post":{"operationId":"run_slug_generator","summary":"Slug Generator","tags":["Generators"],"description":"Turn any string into a clean, URL-safe slug — one per line for bulk conversion. Transliterates accents, strips special characters and joins words with a dash or underscore.\n\n[Try Slug Generator in your browser →](https://iotools.cloud/tool/slug-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"String(s)"},"ioReplacement":{"enum":["-","_"],"description":"Replacement"},"ioLowercase":{"type":"boolean","description":"To Lowercase"},"ioStrict":{"type":"boolean","description":"Strip Special Characters"}},"required":["ioInputText"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Generated Slug(s)"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/tfn-generator":{"post":{"operationId":"run_tfn_generator","summary":"TFN Generator","tags":["Generators"],"description":"Generate valid, random Australian Tax File Numbers (TFN) that pass the ATO modulus-11 checksum — sample data for testing forms, validators and test suites.\n\n[Try TFN Generator in your browser →](https://iotools.cloud/tool/tfn-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCount":{"type":"number","description":"Number of TFNs","minimum":1,"maximum":50},"ioFormat":{"enum":["plain","spaced"],"description":"Format"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Generated TFNs"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/token-generator":{"post":{"operationId":"run_token_generator","summary":"Token Generator","tags":["Generators"],"description":"Generate a random token — API key, session token, CSRF token or app secret — of 1 to 512 characters, from letters, numbers and symbols. Created in your browser with a cryptographic RNG and never transmitted.\n\n[Try Token Generator in your browser →](https://iotools.cloud/tool/token-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioLength":{"type":"number","description":"Token length","minimum":1,"maximum":512},"ioSymbols":{"type":"boolean","description":"Include symbols (e.g. @#$%)"},"ioNumbers":{"type":"boolean","description":"Include numbers (e.g. 123456)"},"ioLowercase":{"type":"boolean","description":"Include lowercase characters (e.g. abcdefgh)"},"ioUppercase":{"type":"boolean","description":"Include uppercase characters (e.g. ABCDEFGH)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioToken":{"type":"string","description":"Generated token"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/vcard-contact-file-generator":{"post":{"operationId":"run_vcard_contact_file_generator","summary":"vCard Contact File Generator","tags":["Generators"],"description":"Generate an RFC-compliant .vcf vCard contact file (version 3.0 or 4.0) from name, phone, email, address, and organization fields — ready to import into any contacts app.\n\n[Try vCard Contact File Generator in your browser →](https://iotools.cloud/tool/vcard-contact-file-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioVcardVersion":{"enum":["3.0","4.0"],"description":"vCard Version"},"ioFirstName":{"type":"string","description":"First Name"},"ioLastName":{"type":"string","description":"Last Name"},"ioMiddleName":{"type":"string","description":"Middle Name"},"ioPrefix":{"type":"string","description":"Prefix"},"ioSuffix":{"type":"string","description":"Suffix"},"ioNickname":{"type":"string","description":"Nickname"},"ioOrganization":{"type":"string","description":"Organization"},"ioJobTitle":{"type":"string","description":"Job Title"},"ioDepartment":{"type":"string","description":"Department"},"ioPhone1Type":{"enum":["cell","work","home","fax","other"],"description":"Phone 1 Type"},"ioPhone1":{"type":"string","description":"Phone 1"},"ioPhone2Type":{"enum":["work","cell","home","fax","other"],"description":"Phone 2 Type"},"ioPhone2":{"type":"string","description":"Phone 2"},"ioEmail1Type":{"enum":["home","work","other"],"description":"Email 1 Type"},"ioEmail1":{"type":"string","description":"Email 1"},"ioEmail2Type":{"enum":["work","home","other"],"description":"Email 2 Type"},"ioEmail2":{"type":"string","description":"Email 2"},"ioAddressType":{"enum":["home","work","other"],"description":"Address Type"},"ioStreet":{"type":"string","description":"Street"},"ioCity":{"type":"string","description":"City"},"ioRegion":{"type":"string","description":"State / Region"},"ioPostalCode":{"type":"string","description":"Postal Code"},"ioCountry":{"type":"string","description":"Country"},"ioWebsite":{"type":"string","description":"Website"},"ioBirthday":{"type":"string","description":"Birthday"},"ioPhotoUrl":{"type":"string","description":"Photo URL"},"ioNote":{"type":"string","description":"Note"}},"required":["ioFirstName"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioVcardOutput":{"type":"string","description":"Generated vCard"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/vin-generator":{"post":{"operationId":"run_vin_generator","summary":"VIN Generator","tags":["Generators"],"description":"Generate synthetic, checksum-valid 17-character VINs (Vehicle Identification Numbers) for QA and testing — test databases, VIN-field validation and mock vehicle records. Pick a region and model year, choose how many, and get VINs with a correctly computed ISO 3779 check digit. Not real vehicle identifiers.\n\n[Try VIN Generator in your browser →](https://iotools.cloud/tool/vin-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioRegion":{"enum":["random","na","eu","asia"],"description":"Region"},"ioModelYear":{"enum":["random","2026","2025","2024","2023","2022","2021","2020","2019","2018","2017","2016","2015","2014","2013","2012","2011","2010","2009","2008","2007","2006","2005","2004","2003","2002","2001","2000"],"description":"Model year"},"ioCount":{"type":"number","description":"How many to generate","minimum":1,"maximum":50}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Generated VINs"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/webauthn-credential-generator":{"post":{"operationId":"run_webauthn_credential_generator","summary":"WebAuthn Credential Generator","tags":["Generators"],"description":"Generate random, realistically-shaped WebAuthn credential IDs for testing and documentation, rendered as Base64url, Base64, hex and a decimal byte array — or decode a pasted Base64url credential ID into all four. Synthetic test data, generated in your browser with a CSPRNG; not a real passkey ceremony.\n\n[Try WebAuthn Credential Generator in your browser →](https://iotools.cloud/tool/webauthn-credential-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMode":{"enum":["generate","decode"],"description":"Mode"},"ioByteLength":{"enum":["16","32","64","128"],"description":"Byte length"},"ioBatchCount":{"type":"number","description":"How many","minimum":1,"maximum":10},"ioDecodeInput":{"type":"string","description":"Base64url credential ID"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutputBase64url":{"type":"string","description":"Base64url"},"ioOutputBase64":{"type":"string","description":"Base64 (standard)"},"ioOutputHex":{"type":"string","description":"Hex"},"ioOutputBytes":{"type":"string","description":"Raw byte array"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/webhook-test-payload-generator":{"post":{"operationId":"run_webhook_test_payload_generator","summary":"Webhook Test Payload Generator","tags":["Generators"],"description":"Generate realistic sample webhook payloads for GitHub, Stripe, Shopify, Slack, Twilio and SendGrid — complete with provider-correct headers, HMAC signatures and a ready-to-run cURL command.\n\n[Try Webhook Test Payload Generator in your browser →](https://iotools.cloud/tool/webhook-test-payload-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioPlatform":{"enum":["github","stripe","shopify","slack","twilio","sendgrid"],"description":"Platform"},"ioGithubEvent":{"enum":["push","pull_request","issues","star","release"],"description":"Event Type"},"ioStripeEvent":{"enum":["payment_intent.succeeded","charge.refunded","invoice.payment_failed","customer.subscription.created","checkout.session.completed"],"description":"Event Type"},"ioShopifyEvent":{"enum":["orders/create","orders/paid","orders/cancelled","products/create","customers/create"],"description":"Event Type"},"ioSlackEvent":{"enum":["message","app_mention","reaction_added","team_join","url_verification"],"description":"Event Type"},"ioTwilioEvent":{"enum":["sms.inbound","sms.status","voice.inbound","voice.status"],"description":"Event Type"},"ioSendgridEvent":{"enum":["delivered","bounce","open","click","spamreport"],"description":"Event Type"},"ioSecret":{"type":"string","description":"Webhook Secret"},"ioTargetUrl":{"type":"string","description":"Target URL"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioPayloadOutput":{"type":"string","description":"Payload"},"ioHeadersOutput":{"type":"string","description":"Headers"},"ioCurlOutput":{"type":"string","description":"cURL Command"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/weighted-random-picker":{"post":{"operationId":"run_weighted_random_picker","summary":"Weighted Random Picker","tags":["Generators"],"description":"Pick a random winner from a list where each item can carry a weight, so heavier items are more likely to be drawn. Enter one item per line as 'name:weight' (weight optional, defaults to 1), draw one or several winners with or without replacement, and see each item's exact probability.\n\n[Try Weighted Random Picker in your browser →](https://iotools.cloud/tool/weighted-random-picker/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioItems":{"type":"string","description":"Items"},"ioPickCount":{"type":"number","description":"Number to pick","minimum":1,"maximum":1000},"ioAllowDuplicates":{"type":"boolean","description":"Allow duplicates"}},"required":["ioItems"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Picked"},"ioBreakdown":{"type":"string","description":"Probability breakdown"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/word-cloud-generator":{"post":{"operationId":"run_word_cloud_generator","summary":"Word Cloud Generator","tags":["Generators"],"description":"Turn any text into a word cloud — word frequency drives font size, with shape, palette, rotation and stop-word filtering options. Generates a self-contained SVG entirely in your browser.\n\n[Try Word Cloud Generator in your browser →](https://iotools.cloud/tool/word-cloud-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Text"},"ioShape":{"enum":["rectangle","circle","ellipse"],"description":"Shape"},"ioCanvasSize":{"enum":["600x400","900x600","1200x800","800x800","1600x600"],"description":"Canvas size"},"ioMaxWords":{"type":"number","description":"Max words","minimum":10,"maximum":300},"ioMinFontSize":{"type":"number","description":"Min font size (px)","minimum":8,"maximum":60},"ioMaxFontSize":{"type":"number","description":"Max font size (px)","minimum":30,"maximum":200},"ioRotation":{"enum":["none","mixed","random"],"description":"Rotation"},"ioSeed":{"type":"number","description":"Layout seed"},"ioPalette":{"enum":["vibrant","pastel","ocean","sunset","forest","monochrome","grayscale"],"description":"Color palette"},"ioFontFamily":{"enum":["Inter, Arial, sans-serif","Georgia, 'Times New Roman', serif","'Courier New', Courier, monospace","Impact, 'Arial Black', sans-serif","'Comic Sans MS', 'Marker Felt', cursive"],"description":"Font family"},"ioBgColor":{"type":"string","description":"Background"},"ioIgnoreStopWords":{"type":"boolean","description":"Exclude common stop words"},"ioCaseSensitive":{"type":"boolean","description":"Case sensitive"},"ioMinWordLength":{"type":"number","description":"Min word length","minimum":1,"maximum":30},"ioCustomStopWords":{"type":"string","description":"Custom exclusions"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSvg":{"type":"string","description":"SVG source"},"ioSummary":{"type":"string","description":"Summary"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/word-combiner":{"post":{"operationId":"run_word_combiner","summary":"Word Combiner","tags":["Generators"],"description":"Combine two or more word lists into every possible combination (a Cartesian product). Great for brainstorming domain names, usernames, product names, or keyword lists — paste one word per line, pick a separator, and get every pairing back.\n\n[Try Word Combiner in your browser →](https://iotools.cloud/tool/word-combiner/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioWordList1":{"type":"string","description":"Word List 1"},"ioWordList2":{"type":"string","description":"Word List 2"},"ioShowList3":{"type":"boolean","description":"Add a third list"},"ioWordList3":{"type":"string","description":"Word List 3"},"ioShowList4":{"type":"boolean","description":"Add a fourth list"},"ioWordList4":{"type":"string","description":"Word List 4"},"ioSeparator":{"enum":[" ","-","_","none","custom"],"description":"Separator"},"ioCustomSeparator":{"type":"string","description":"Custom Separator"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCount":{"type":"string","description":"Combinations"},"ioOutput":{"type":"string","description":"Combined Words"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/uuid-generator":{"post":{"operationId":"run_uuid_generator","summary":"UUID Generator","tags":["Generators"],"description":"Generate RFC 9562 / RFC 4122 UUIDs — v4 (random), v1 (time-based), v5 (namespace + SHA-1), v7 (time-ordered) and the nil UUID — in bulk, upper or lower case. Generated in your browser with a cryptographic RNG.\n\n[Try UUID Generator in your browser →](https://iotools.cloud/tool/uuid-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioVersion":{"enum":["v4","v7","v1","v5","nil"],"description":"Version"},"ioNamespace":{"type":"string","description":"Namespace"},"ioName":{"type":"string","description":"Name"},"ioCount":{"type":"number","description":"How many","minimum":1,"maximum":100},"ioUppercase":{"type":"boolean","description":"Uppercase"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioUuids":{"type":"string","description":"Generated UUIDs"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/word-generator":{"post":{"operationId":"run_word_generator","summary":"Word Generator","tags":["Generators"],"description":"Generate random English words filtered by type (noun, verb, adjective, adverb), starting letters, and length.\n\n[Try Word Generator in your browser →](https://iotools.cloud/tool/word-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCount":{"type":"number","description":"Number of Words","minimum":1,"maximum":100},"ioWordType":{"enum":["any","noun","verb","adjective","adverb"],"description":"Word Type"},"ioStartsWith":{"type":"string","description":"Starts With"},"ioMinLength":{"type":"number","description":"Min Length","minimum":1,"maximum":30},"ioMaxLength":{"type":"number","description":"Max Length","minimum":1,"maximum":30}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Generated Words"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/zalgo-text-generator":{"post":{"operationId":"run_zalgo_text_generator","summary":"Zalgo Text Generator","tags":["Generators"],"description":"Turn plain text into glitchy, corrupted Zalgo text by stacking Unicode combining marks — control the chaos level and whether it bleeds above, through or below the line.\n\n[Try Zalgo Text Generator in your browser →](https://iotools.cloud/tool/zalgo-text-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioText":{"type":"string","description":"Input text"},"ioChaos":{"type":"number","description":"Chaos level","minimum":1,"maximum":10},"ioTop":{"type":"boolean","description":"Damage top of the text"},"ioMiddle":{"type":"boolean","description":"Damage middle of the text"},"ioBottom":{"type":"boolean","description":"Damage bottom of the text"},"ioSkipSpaces":{"type":"boolean","description":"Skip spaces"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Zalgo text"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ulid-generator":{"post":{"operationId":"run_ulid_generator","summary":"ULID Generator","tags":["Generators"],"description":"Generate ULIDs — 26-character, Crockford Base32, lexicographically-sortable unique identifiers with a millisecond timestamp and 80 bits of cryptographically-random payload. Batch-generate as plain text, JSON, or YAML, entirely in your browser.\n\n[Try ULID Generator in your browser →](https://iotools.cloud/tool/ulid-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCount":{"type":"number","description":"How many to generate","minimum":1,"maximum":1000},"ioOutputFormat":{"enum":["text","json","yaml"],"description":"Output Format"},"ioTimestamp":{"type":"string","description":"Timestamp"},"ioRandomHex":{"type":"string","description":"Fixed random payload (optional)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string","description":"Generated ULIDs"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/roll-the-dice":{"post":{"operationId":"run_roll_the_dice","summary":"Roll The Dice","tags":["Generators"],"description":"Roll one or many virtual dice, with any number of sides. Get the individual results plus the total and average, generated fresh every time.\n\n[Try Roll The Dice in your browser →](https://iotools.cloud/tool/roll-the-dice/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCount":{"type":"number","description":"How many dice to roll?","minimum":1,"maximum":100},"ioSides":{"type":"number","description":"Number of sides","minimum":2,"maximum":100}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Result"},"ioSummary":{"type":"string","description":"Summary"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/tarot-birth-card":{"post":{"operationId":"run_tarot_birth_card","summary":"Tarot Birth Card Calculator","tags":["Generators"],"description":"Find your Tarot birth card(s) from your date of birth. Uses the classic numerological reduction (month + day + year, digit-summed to a Major Arcana number) to reveal your birth card(s), their keywords and traditional meaning.\n\n[Try Tarot Birth Card Calculator in your browser →](https://iotools.cloud/tool/tarot-birth-card/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioBirthDate":{"type":"string","description":"Date of Birth"}},"required":["ioBirthDate"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Your Birth Card(s)"},"ioCards":{"type":"string","description":"Card Details"},"ioCalculation":{"type":"string","description":"How It Was Calculated"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/svg-sprite-sheet-generator":{"post":{"operationId":"run_svg_sprite_sheet_generator","summary":"SVG Sprite Sheet Generator","tags":["Generators"],"description":"Combine multiple pasted SVG icons into a single sprite sheet using &lt;symbol id> elements, each keeping its own viewBox. Emits the sprite markup plus ready-to-use &lt;use> reference snippets (external file, inline, or CSS background).\n\n[Try SVG Sprite Sheet Generator in your browser →](https://iotools.cloud/tool/svg-sprite-sheet-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSvgInput":{"type":"string","description":"SVG Documents"},"ioRemoveFills":{"type":"boolean","description":"Remove fill & stroke attributes"},"ioOptimize":{"type":"boolean","description":"Optimize & minify"},"ioSnippetType":{"enum":["external","inline","css"],"description":"Usage Snippet Type"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSpriteCode":{"type":"string","description":"Sprite Sheet SVG"},"ioUsageCode":{"type":"string","description":"Usage Snippets"},"ioStats":{"type":"string","description":"Size Comparison"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/svg-wave-generator":{"post":{"operationId":"run_svg_wave_generator","summary":"SVG Wave Generator","tags":["Generators"],"description":"Generate a decorative SVG wave — a section divider or hero background — from a chosen shape, amplitude, frequency, layers and colours. Copy the SVG, a CSS background-image snippet, or ready-to-paste HTML. Runs entirely in your browser.\n\n[Try SVG Wave Generator in your browser →](https://iotools.cloud/tool/svg-wave-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioWaveStyle":{"enum":["sine","layered","zigzag","hills","asymmetric","blob"],"description":"Wave style"},"ioAmplitude":{"type":"number","description":"Amplitude","minimum":20,"maximum":200},"ioFrequency":{"type":"number","description":"Frequency","minimum":1,"maximum":10},"ioWidth":{"type":"number","description":"Width","minimum":200,"maximum":3000},"ioHeight":{"type":"number","description":"Height","minimum":50,"maximum":600},"ioFlipVertical":{"type":"boolean","description":"Flip vertical"},"ioFlipHorizontal":{"type":"boolean","description":"Flip horizontal"},"ioLayers":{"type":"number","description":"Number of layers","minimum":1,"maximum":4},"ioColor1":{"type":"string","description":"Layer 1 colour"},"ioOpacity1":{"type":"number","description":"Layer 1 opacity","minimum":10,"maximum":100},"ioColor2":{"type":"string","description":"Layer 2 colour"},"ioOpacity2":{"type":"number","description":"Layer 2 opacity","minimum":10,"maximum":100},"ioColor3":{"type":"string","description":"Layer 3 colour"},"ioOpacity3":{"type":"number","description":"Layer 3 opacity","minimum":10,"maximum":100},"ioColor4":{"type":"string","description":"Layer 4 colour"},"ioOpacity4":{"type":"number","description":"Layer 4 opacity","minimum":10,"maximum":100},"ioBgColor":{"type":"string","description":"Background colour"},"ioAnimate":{"type":"boolean","description":"Animate waves"},"ioAnimSpeed":{"enum":["slow","medium","fast"],"description":"Speed"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSvg":{"type":"string","description":"SVG code"},"ioCss":{"type":"string","description":"CSS background"},"ioHtml":{"type":"string","description":"HTML snippet"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/svg-blob-generator":{"post":{"operationId":"run_svg_blob_generator","summary":"SVG Blob Generator","tags":["Generators"],"description":"Generate organic SVG blob shapes for backgrounds, hero sections and logos. Control the edge count, growth and colors, fill with a solid or gradient, then copy the SVG or the CSS clip-path. Seeded, so the same seed always gives the same blob.\n\n[Try SVG Blob Generator in your browser →](https://iotools.cloud/tool/svg-blob-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSeed":{"type":"string","description":"Seed"},"ioEdges":{"type":"number","description":"Edge count","minimum":3,"maximum":20},"ioGrowth":{"type":"number","description":"Growth","minimum":1,"maximum":9},"ioSize":{"type":"number","description":"Size (px)","minimum":100,"maximum":2000},"ioFillType":{"enum":["solid","gradient","outline"],"description":"Fill type"},"ioColor":{"type":"string","description":"Color"},"ioColor2":{"type":"string","description":"Second color"},"ioGradientAngle":{"type":"number","description":"Gradient angle","minimum":0,"maximum":360},"ioStrokeWidth":{"type":"number","description":"Outline width","minimum":1,"maximum":40},"ioBackground":{"enum":["transparent","solid"],"description":"Background"},"ioBgColor":{"type":"string","description":"Background color"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSvg":{"type":"string","description":"SVG code"},"ioCss":{"type":"string","description":"CSS clip-path"},"ioHtml":{"type":"string","description":"HTML snippet"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/sha3-hash-generator":{"post":{"operationId":"run_sha3_hash_generator","summary":"SHA-3 Hash Generator","tags":["Generators"],"description":"Generate a FIPS-202 SHA-3 hash (SHA3-224, SHA3-256, SHA3-384, SHA3-512) of any text, in hexadecimal or base64, and optionally verify it against an expected hash.\n\n[Try SHA-3 Hash Generator in your browser →](https://iotools.cloud/tool/sha3-hash-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Message to hash"},"ioOutputSize":{"enum":["224","256","384","512"],"description":"SHA-3 output size"},"ioOutputFormat":{"enum":["hex","hex-upper","base64"],"description":"Output format"},"ioExpectedHash":{"type":"string","description":"Expected hash (optional)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"SHA-3 hash"},"ioMatch":{"type":"string","description":"Matches expected hash?"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/small-text-generator":{"post":{"operationId":"run_small_text_generator","summary":"Small Text Generator","tags":["Generators"],"description":"Turn plain text into Unicode small text — superscript, subscript, or small-caps lookalike characters you can paste into social-media bios, captions, and usernames.\n\n[Try Small Text Generator in your browser →](https://iotools.cloud/tool/small-text-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Input Text"},"ioTextStyle":{"enum":["superscript","subscript","smallcaps"],"description":"Text Style"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutputText":{"type":"string","description":"Small Text"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/snowflake-id-generator":{"post":{"operationId":"run_snowflake_id_generator","summary":"Snowflake ID Generator","tags":["Generators"],"description":"Generate unique 64-bit Snowflake IDs (Twitter, Discord, or Unix epoch) in decimal, hex, binary, JSON, or CSV — or decode an existing Snowflake ID back into its timestamp, machine ID, and sequence.\n\n[Try Snowflake ID Generator in your browser →](https://iotools.cloud/tool/snowflake-id-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMode":{"enum":["generate","decode"],"description":"Mode"},"ioEpoch":{"enum":["twitter","discord","unix"],"description":"Epoch"},"ioCount":{"type":"number","description":"Count","minimum":1,"maximum":100},"ioMachineId":{"type":"number","description":"Machine ID","minimum":0,"maximum":1023},"ioOutputFormat":{"enum":["decimal","hex","binary","json","csv"],"description":"Output Format"},"ioDecodeInput":{"type":"string","description":"Snowflake ID"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Generated Snowflake IDs"},"ioDecoded":{"type":"string","description":"Decoded Snowflake"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/sql-create-table-generator":{"post":{"operationId":"run_sql_create_table_generator","summary":"SQL CREATE TABLE Generator","tags":["Generators"],"description":"Generate a CREATE TABLE SQL statement from simple column definitions. Supports MySQL, PostgreSQL, SQLite, and SQL Server dialects with per-dialect type mapping, auto-increment, primary/foreign keys, and indexes.\n\n[Try SQL CREATE TABLE Generator in your browser →](https://iotools.cloud/tool/sql-create-table-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioDialect":{"enum":["mysql","postgresql","sqlite","mssql"],"description":"SQL Dialect"},"ioTableName":{"type":"string","description":"Table Name"},"ioColumns":{"type":"string","description":"Columns"},"ioIndexes":{"type":"string","description":"Indexes (optional)"},"ioIfNotExists":{"type":"boolean","description":"Add IF NOT EXISTS"},"ioPrettyPrint":{"type":"boolean","description":"Pretty-print output"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSqlOutput":{"type":"string","description":"CREATE TABLE Statement"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ssh-config-file-generator":{"post":{"operationId":"run_ssh_config_file_generator","summary":"SSH Config File Generator","tags":["Generators"],"description":"Generate a ready-to-paste ~/.ssh/config Host block from a simple form — set the Host alias, HostName, User, Port, IdentityFile, ProxyJump, ServerAliveInterval, StrictHostKeyChecking and ForwardAgent/IdentitiesOnly options, plus a global Host * block. Runs entirely in your browser.\n\n[Try SSH Config File Generator in your browser →](https://iotools.cloud/tool/ssh-config-file-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioHost":{"type":"string","description":"Host alias"},"ioHostName":{"type":"string","description":"HostName"},"ioUser":{"type":"string","description":"User"},"ioPort":{"type":"number","description":"Port"},"ioIdentityFile":{"type":"string","description":"IdentityFile"},"ioProxyJump":{"type":"string","description":"ProxyJump"},"ioServerAliveInterval":{"type":"number","description":"ServerAliveInterval"},"ioStrictHostKeyChecking":{"enum":["","yes","accept-new","no","ask"],"description":"StrictHostKeyChecking"},"ioForwardAgent":{"type":"boolean","description":"ForwardAgent"},"ioIdentitiesOnly":{"type":"boolean","description":"IdentitiesOnly"},"ioAddKeysToAgent":{"type":"boolean","description":"Add keys to agent automatically (Host * → AddKeysToAgent yes)"},"ioUseKeychain":{"type":"boolean","description":"Store passphrases in macOS keychain (Host * → UseKeychain yes)"},"ioIncludeHeader":{"type":"boolean","description":"Include descriptive header comment"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Generated ~/.ssh/config"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/svg-filter-effects-generator":{"post":{"operationId":"run_svg_filter_effects_generator","summary":"SVG Filter Effects Generator","tags":["Generators"],"description":"Visually build an SVG &lt;filter> — blur, hue rotate, saturate, drop shadow, turbulence, emboss and more — with a live preview on text, shapes or your own image, and copy the ready-to-use SVG and CSS. Runs entirely in your browser.\n\n[Try SVG Filter Effects Generator in your browser →](https://iotools.cloud/tool/svg-filter-effects-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioFilterType":{"enum":["blur","hueRotate","saturate","luminanceToAlpha","turbulence","dropShadow","emboss"],"description":"Filter"},"ioFilterId":{"type":"string","description":"Filter ID"},"ioBlurStdDev":{"type":"number","description":"Blur amount (stdDeviation, px)","minimum":0,"maximum":30},"ioHueRotateAngle":{"type":"number","description":"Angle (deg)","minimum":0,"maximum":360},"ioSaturateValue":{"type":"number","description":"Amount (0 = grayscale, 1 = original)","minimum":0,"maximum":3},"ioTurbType":{"enum":["turbulence","fractalNoise"],"description":"Noise type"},"ioTurbBaseFrequency":{"type":"number","description":"Base frequency","minimum":0.005,"maximum":0.5},"ioTurbOctaves":{"type":"number","description":"Octaves","minimum":1,"maximum":10},"ioTurbScale":{"type":"number","description":"Displacement scale","minimum":0,"maximum":200},"ioShadowDx":{"type":"number","description":"Offset X (px)","minimum":-50,"maximum":50},"ioShadowDy":{"type":"number","description":"Offset Y (px)","minimum":-50,"maximum":50},"ioShadowBlur":{"type":"number","description":"Blur radius (px)","minimum":0,"maximum":50},"ioShadowColor":{"type":"string","description":"Shadow color"},"ioShadowOpacity":{"type":"number","description":"Shadow opacity","minimum":0,"maximum":1},"ioEmbossStyle":{"enum":["emboss","engrave","sharpen","edge"],"description":"Kernel"},"ioPreviewTarget":{"enum":["text","shapes","image"],"description":"Preview on"},"ioImage":{"type":"string","contentEncoding":"base64","description":"Image"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSvg":{"type":"string","description":"Preview SVG"},"ioFilterCode":{"type":"string","description":"Filter definition (embed in your own SVG/HTML)"},"ioCssCode":{"type":"string","description":"CSS usage"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/svg-loading-spinner-generator":{"post":{"operationId":"run_svg_loading_spinner_generator","summary":"SVG Loading Spinner Generator","tags":["Generators"],"description":"Generate a self-contained animated SVG loading spinner — circle stroke, dual ring, dotted ring, pulse/bouncing dots, bar loader or ripple — with your own size, colours and speed. Copy the SVG or download it as a .svg file. Runs entirely in your browser.\n\n[Try SVG Loading Spinner Generator in your browser →](https://iotools.cloud/tool/svg-loading-spinner-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSpinnerType":{"enum":["circle-stroke","dual-ring","dotted-ring","pulse-dots","bouncing-dots","bar-loader","ripple"],"description":"Spinner type"},"ioSize":{"type":"number","description":"Size (px)","minimum":16,"maximum":256},"ioStrokeWidth":{"type":"number","description":"Stroke width (px)","minimum":1,"maximum":30},"ioPrimaryColor":{"type":"string","description":"Primary colour"},"ioSecondaryColor":{"type":"string","description":"Track / secondary colour"},"ioSpeed":{"type":"number","description":"Speed (sec)","minimum":0.2,"maximum":5},"ioAriaLabel":{"type":"string","description":"ARIA label"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSvg":{"type":"string","description":"SVG source"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/svg-noise-texture-generator":{"post":{"operationId":"run_svg_noise_texture_generator","summary":"SVG Noise Texture Generator","tags":["Generators"],"description":"Generate a scalable SVG noise or grain texture using the native feTurbulence filter — pick fractal noise or turbulence, tune frequency, octaves, seed, contrast and opacity, in monochrome or a colour tint. Copy the SVG or download it.\n\n[Try SVG Noise Texture Generator in your browser →](https://iotools.cloud/tool/svg-noise-texture-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioNoiseType":{"enum":["fractalNoise","turbulence"],"description":"Type"},"ioBaseFrequency":{"type":"number","description":"Base Frequency","minimum":1,"maximum":200},"ioNumOctaves":{"type":"number","description":"Octaves","minimum":1,"maximum":8},"ioSeed":{"type":"number","description":"Seed","minimum":0,"maximum":100},"ioStitchTiles":{"type":"boolean","description":"Stitch Tiles (seamless)"},"ioColorMode":{"enum":["mono","color"],"description":"Color"},"ioBgColor":{"type":"string","description":"Background"},"ioFgColor":{"type":"string","description":"Noise Tint"},"ioNoiseOpacity":{"type":"number","description":"Noise Opacity %","minimum":1,"maximum":100},"ioContrast":{"type":"number","description":"Contrast","minimum":50,"maximum":300},"ioWidth":{"type":"number","description":"Width","minimum":50,"maximum":2000},"ioHeight":{"type":"number","description":"Height","minimum":50,"maximum":2000}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSvg":{"type":"string","description":"SVG source"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/svg-pattern-generator":{"post":{"operationId":"run_svg_pattern_generator","summary":"SVG Pattern Generator","tags":["Generators"],"description":"Generate a seamless, tileable SVG background pattern — dots, stripes, grid, chevrons, hexagons, triangles, diamonds, crosses, waves, or checkerboard — with custom colours, spacing, stroke, opacity, and rotation. Copy or download the standalone SVG.\n\n[Try SVG Pattern Generator in your browser →](https://iotools.cloud/tool/svg-pattern-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioPatternType":{"enum":["dots","lines-h","lines-v","diagonal","grid","chevron","hexagons","triangles","diamonds","crosses","waves","checkerboard"],"description":"Pattern type"},"ioFgColor":{"type":"string","description":"Foreground"},"ioBgColor":{"type":"string","description":"Background"},"ioStrokeWidth":{"type":"number","description":"Stroke / element size","minimum":1,"maximum":20},"ioSpacing":{"type":"number","description":"Spacing (px)","minimum":5,"maximum":100},"ioOpacity":{"type":"number","description":"Opacity","minimum":1,"maximum":10},"ioRotation":{"type":"number","description":"Rotation (deg)","minimum":0,"maximum":360}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSvg":{"type":"string","description":"SVG source"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/tailwind-css-color-scale-generator":{"post":{"operationId":"run_tailwind_css_color_scale_generator","summary":"Tailwind CSS Color Scale Generator","tags":["Generators"],"description":"Generate a Tailwind-style 50-950 color scale from any base hex color, interpolated in perceptually-even OKLCH space. Export as a Tailwind config, CSS custom properties, SCSS variables or JSON, in modern oklch() or classic hex.\n\n[Try Tailwind CSS Color Scale Generator in your browser →](https://iotools.cloud/tool/tailwind-css-color-scale-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioBaseColor":{"type":"string","description":"Base Color"},"ioColorName":{"type":"string","description":"Name"},"ioScaleStyle":{"enum":["v4","v3"],"description":"Style"},"ioInclude950":{"type":"boolean","description":"Include 950 stop"},"ioChromaBoost":{"type":"number","description":"Chroma","minimum":0,"maximum":150},"ioExportFormat":{"enum":["tailwind","css","scss","json"],"description":"Export Format"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioExportCode":{"type":"string","description":"Export Code"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/tsconfig-json-generator":{"post":{"operationId":"run_tsconfig_json_generator","summary":"tsconfig.json Generator","tags":["Generators"],"description":"Generate a TypeScript tsconfig.json from form fields: target, module, moduleResolution, JSX, lib, project layout (rootDir, outDir, baseUrl, path aliases, include/exclude), and every strictness, linting, and emit/interop compiler option. Start from a preset (Node.js, React, Next.js, Library, Strictest) or build a custom config; output is commented, ready-to-drop JSONC.\n\n[Try tsconfig.json Generator in your browser →](https://iotools.cloud/tool/tsconfig-json-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioPreset":{"enum":["custom","node","node-cjs","react","nextjs","library","strictest"],"description":"Preset Profile"},"ioTarget":{"enum":["ES5","ES2015","ES2016","ES2017","ES2018","ES2019","ES2020","ES2021","ES2022","ES2023","ESNext"],"description":"target"},"ioModule":{"enum":["ESNext","ES2022","ES2020","ES2015","NodeNext","Node16","CommonJS","AMD","UMD","Preserve"],"description":"module"},"ioModuleResolution":{"enum":["Bundler","NodeNext","Node16","Node","Classic"],"description":"moduleResolution"},"ioJsx":{"enum":["","react-jsx","react-jsxdev","react","preserve","react-native"],"description":"jsx"},"ioLib":{"type":"string","description":"lib"},"ioRootDir":{"type":"string","description":"rootDir"},"ioOutDir":{"type":"string","description":"outDir"},"ioBaseUrl":{"type":"string","description":"baseUrl"},"ioPaths":{"type":"string","description":"paths"},"ioInclude":{"type":"string","description":"include"},"ioExclude":{"type":"string","description":"exclude"},"ioStrict":{"type":"boolean","description":"strict — enable all strict type-checking options"},"ioNoImplicitAny":{"type":"boolean","description":"noImplicitAny"},"ioStrictNullChecks":{"type":"boolean","description":"strictNullChecks"},"ioStrictFunctionTypes":{"type":"boolean","description":"strictFunctionTypes"},"ioStrictBindCallApply":{"type":"boolean","description":"strictBindCallApply"},"ioStrictPropertyInitialization":{"type":"boolean","description":"strictPropertyInitialization"},"ioNoImplicitThis":{"type":"boolean","description":"noImplicitThis"},"ioAlwaysStrict":{"type":"boolean","description":"alwaysStrict — emit \"use strict\""},"ioNoUncheckedIndexedAccess":{"type":"boolean","description":"noUncheckedIndexedAccess"},"ioNoImplicitOverride":{"type":"boolean","description":"noImplicitOverride"},"ioExactOptionalPropertyTypes":{"type":"boolean","description":"exactOptionalPropertyTypes"},"ioNoUnusedLocals":{"type":"boolean","description":"noUnusedLocals"},"ioNoUnusedParameters":{"type":"boolean","description":"noUnusedParameters"},"ioNoFallthroughCasesInSwitch":{"type":"boolean","description":"noFallthroughCasesInSwitch"},"ioNoImplicitReturns":{"type":"boolean","description":"noImplicitReturns"},"ioEsModuleInterop":{"type":"boolean","description":"esModuleInterop"},"ioAllowSyntheticDefaultImports":{"type":"boolean","description":"allowSyntheticDefaultImports"},"ioForceConsistentCasing":{"type":"boolean","description":"forceConsistentCasingInFileNames"},"ioSkipLibCheck":{"type":"boolean","description":"skipLibCheck"},"ioResolveJsonModule":{"type":"boolean","description":"resolveJsonModule"},"ioIsolatedModules":{"type":"boolean","description":"isolatedModules"},"ioVerbatimModuleSyntax":{"type":"boolean","description":"verbatimModuleSyntax"},"ioAllowJs":{"type":"boolean","description":"allowJs"},"ioCheckJs":{"type":"boolean","description":"checkJs"},"ioDeclaration":{"type":"boolean","description":"declaration — emit .d.ts files"},"ioDeclarationMap":{"type":"boolean","description":"declarationMap"},"ioSourceMap":{"type":"boolean","description":"sourceMap"},"ioNoEmit":{"type":"boolean","description":"noEmit — let bundler emit files"},"ioIncludeComments":{"type":"boolean","description":"Include inline comments explaining each option"},"ioIncludeHeader":{"type":"boolean","description":"Include descriptive header comment"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Generated tsconfig.json"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/username-generator":{"post":{"operationId":"run_username_generator","summary":"Username Generator","tags":["Generators"],"description":"Generate unique, available-looking usernames from a base word or interest — adjective + noun combos, leetspeak, portmanteaus, prefixes and more, filtered by platform character limits (Twitter, Instagram, TikTok, Reddit, Discord, GitHub, Twitch, YouTube).\n\n[Try Username Generator in your browser →](https://iotools.cloud/tool/username-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioBaseWord":{"type":"string","description":"Base Word / Keyword"},"ioPlatform":{"enum":["any","twitter","instagram","tiktok","reddit","discord","gaming","twitch","github","youtube"],"description":"Platform"},"ioStyle":{"enum":["all","cool","funny","professional","aesthetic","leet","dark","cute","retro","minimal","random"],"description":"Style"},"ioIncludeNumbers":{"type":"boolean","description":"Include numbers"},"ioIncludeSeparators":{"type":"boolean","description":"Include underscores / dots"},"ioMaxLength":{"type":"number","description":"Max length","minimum":3,"maximum":39}},"required":["ioBaseWord"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioUsernames":{"type":"string","description":"Generated usernames"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/aztec-code-generator":{"post":{"operationId":"run_aztec_code_generator","summary":"Aztec Code Generator","tags":["Generators"],"description":"Generate an Aztec Code 2D barcode from text, a URL, or any short string — configurable error correction and module size, output as a scalable SVG. Runs entirely in your browser.\n\n[Try Aztec Code Generator in your browser →](https://iotools.cloud/tool/aztec-code-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Text to encode"},"ioErrorCorrection":{"enum":["23","36","50"],"description":"Error correction"},"ioModuleSize":{"type":"number","description":"Module size","minimum":1,"maximum":10}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSvg":{"type":"string","description":"SVG source"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/data-matrix-generator":{"post":{"operationId":"run_data_matrix_generator","summary":"Data Matrix Generator","tags":["Generators"],"description":"Generate a Data Matrix 2D barcode from text, a serial number, or any short string — square or rectangular symbol shape, configurable module size, output as a scalable SVG. Runs entirely in your browser.\n\n[Try Data Matrix Generator in your browser →](https://iotools.cloud/tool/data-matrix-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Data"},"ioShape":{"enum":["square","rectangular"],"description":"Shape"},"ioModuleSize":{"type":"number","description":"Module size","minimum":1,"maximum":10}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSvg":{"type":"string","description":"SVG source"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/pdf417-barcode-generator":{"post":{"operationId":"run_pdf417_barcode_generator","summary":"PDF417 Barcode Generator","tags":["Generators"],"description":"Encode text, IDs, or shipping data into a PDF417 2D barcode — configurable error correction, columns, row height, and module scale, output as a scalable SVG. Runs entirely in your browser.\n\n[Try PDF417 Barcode Generator in your browser →](https://iotools.cloud/tool/pdf417-barcode-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputData":{"type":"string","description":"Data"},"ioErrorCorrection":{"enum":["0","1","2","3","4","5","6","7","8"],"description":"Error correction level"},"ioColumns":{"type":"number","description":"Columns (0 = auto)","minimum":0,"maximum":30},"ioRowHeight":{"type":"number","description":"Row height multiplier","minimum":1,"maximum":10},"ioScale":{"type":"number","description":"Module width / scale","minimum":1,"maximum":5}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSvg":{"type":"string","description":"SVG source"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/1099-vs-w2-income-comparison-calculator":{"post":{"operationId":"run_1099_vs_w2_income_comparison_calculator","summary":"1099 vs W2 Income Comparison Calculator","tags":["Calculators"],"description":"Compare annual take-home pay as a W2 employee vs a 1099 independent contractor for the same gross income — federal tax, self-employment tax, FICA, state tax, retirement, health insurance and business expenses, side by side.\n\n[Try 1099 vs W2 Income Comparison Calculator in your browser →](https://iotools.cloud/tool/1099-vs-w2-income-comparison-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioFilingStatus":{"enum":["single","mfj","mfs","hoh"],"description":"Filing Status"},"ioAnnualGrossIncome":{"type":"number","description":"Annual Gross Income ($)","minimum":0,"maximum":99999999},"ioStateTaxRate":{"type":"number","description":"State Tax Rate (%)","minimum":0,"maximum":15},"ioEmployerHealthInsurance":{"type":"number","description":"Employer Health Insurance ($/month)","minimum":0,"maximum":99999},"ioEmployer401kMatch":{"type":"number","description":"Employer 401k Match (%)","minimum":0,"maximum":100},"ioOtherW2Benefits":{"type":"number","description":"Other W2 Benefits ($/year)","minimum":0,"maximum":999999},"ioHealthInsuranceCost":{"type":"number","description":"Health Insurance Cost ($/month)","minimum":0,"maximum":99999},"ioRetirementContributions":{"type":"number","description":"Retirement Contributions ($/year)","minimum":0,"maximum":999999},"ioBusinessExpenses":{"type":"number","description":"Business Expenses ($/year)","minimum":0,"maximum":999999},"ioHomeOfficeDeduction":{"type":"number","description":"Home Office Deduction ($/year)","minimum":0,"maximum":999999}},"required":["ioAnnualGrossIncome"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioComparisonTable":{"type":"string","description":"Comparison"},"ioSummary":{"type":"string","description":"Summary"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/3d-printing-filament-time-estimator":{"post":{"operationId":"run_3d_printing_filament_time_estimator","summary":"3D Printing Filament & Time Estimator","tags":["Calculators"],"description":"Estimate filament length, weight, cost and print time for a 3D print from its bounding-box dimensions, material and slicer settings — plus a cost comparison across 8 common filaments.\n\n[Try 3D Printing Filament & Time Estimator in your browser →](https://iotools.cloud/tool/3d-printing-filament-time-estimator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioLengthMm":{"type":"number","description":"Length (mm)","minimum":0.1},"ioWidthMm":{"type":"number","description":"Width (mm)","minimum":0.1},"ioHeightMm":{"type":"number","description":"Height (mm)","minimum":0.1},"ioMaterial":{"enum":["pla","abs","petg","tpu","nylon","pc","asa","hips"],"description":"Material"},"ioDiameterMm":{"enum":["1.75","2.85","3.00"],"description":"Filament Diameter"},"ioCostPerKg":{"type":"number","description":"Filament Cost ($/kg)","minimum":0},"ioInfillPercent":{"type":"number","description":"Infill (%)","minimum":0,"maximum":100},"ioWallCount":{"type":"number","description":"Wall Count","minimum":1,"maximum":10},"ioLayerHeightMm":{"type":"number","description":"Layer Height (mm)","minimum":0.05,"maximum":0.6},"ioNozzleWidthMm":{"type":"number","description":"Nozzle / Line Width (mm)","minimum":0.1,"maximum":1.2},"ioPrintSpeedMmS":{"type":"number","description":"Print Speed (mm/s)","minimum":5,"maximum":500},"ioTopBottomLayers":{"type":"number","description":"Top/Bottom Solid Layers","minimum":0,"maximum":20}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string"},"ioMaterialComparison":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ab-test-significance-calculator":{"post":{"operationId":"run_ab_test_significance_calculator","summary":"A/B Test Significance Calculator","tags":["Calculators"],"description":"Run a two-proportion z-test on your A/B test results. Enter visitors and conversions for a control and a variant to get the conversion rates, z-score, p-value, statistical significance, relative uplift and confidence interval.\n\n[Try A/B Test Significance Calculator in your browser →](https://iotools.cloud/tool/ab-test-significance-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioControlVisitors":{"type":"number","description":"Visitors","minimum":0},"ioControlConversions":{"type":"number","description":"Conversions","minimum":0},"ioVariantVisitors":{"type":"number","description":"Visitors","minimum":0},"ioVariantConversions":{"type":"number","description":"Conversions","minimum":0},"ioConfidenceLevel":{"enum":["90","95","99"],"description":"Confidence"},"ioTailType":{"enum":["two","one"],"description":"Hypothesis"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/adc-dac-converter-calculator":{"post":{"operationId":"run_adc_dac_converter_calculator","summary":"ADC / DAC Converter Calculator","tags":["Calculators"],"description":"Calculate LSB step size, quantized ADC code and reconstructed DAC output voltage for any bit depth and reference voltage. Shows the code in decimal, binary and hex, plus quantization error and ideal SNR.\n\n[Try ADC / DAC Converter Calculator in your browser →](https://iotools.cloud/tool/adc-dac-converter-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioBits":{"type":"number","description":"Resolution (bits)","minimum":4,"maximum":32},"ioVref":{"type":"number","description":"Reference Voltage — Vref (V)","minimum":0},"ioVin":{"type":"number","description":"Analog Input — Vin (V)","minimum":0},"ioCode":{"type":"number","description":"Digital Code (for DAC)","minimum":0},"ioScale":{"enum":["pow","max"],"description":"Full-Scale Convention"},"ioRounding":{"enum":["floor","round"],"description":"ADC Quantization"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/age-calculator":{"post":{"operationId":"run_age_calculator","summary":"Age Calculator","tags":["Calculators"],"description":"Calculate exact age in years, months and days between a date of birth and any date — plus total days, weeks, months, day of the week born, and a countdown to the next birthday.\n\n[Try Age Calculator in your browser →](https://iotools.cloud/tool/age-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioBirthDate":{"type":"string","description":"Date of Birth"},"ioAsOfDate":{"type":"string","description":"As of Date"}},"required":["ioBirthDate"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Age Breakdown"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/area-of-square-calculator":{"post":{"operationId":"run_area_of_square_calculator","summary":"Area of Square Calculator","tags":["Calculators"],"description":"Calculate a square's area, perimeter and diagonal from its side length — area = side², perimeter = 4 × side, diagonal = side × √2. Pick any unit; it's carried through as a label, no conversion needed.\n\n[Try Area of Square Calculator in your browser →](https://iotools.cloud/tool/area-of-square-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSideLength":{"type":"number","description":"Side length","minimum":0},"ioUnit":{"enum":["mm","cm","m","km","in","ft","yd"],"description":"Unit"}},"required":["ioSideLength"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/aspect-ratio-calculator":{"post":{"operationId":"run_aspect_ratio_calculator","summary":"Aspect Ratio Calculator","tags":["Calculators"],"description":"Simplify a width x height pair into its smallest whole-number aspect ratio (e.g. 1920x1080 -> 16:9), or solve a missing width/height from a known ratio like 16:9. Exact GCD math, no rounding drift.\n\n[Try Aspect Ratio Calculator in your browser →](https://iotools.cloud/tool/aspect-ratio-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioWidth":{"type":"number","description":"Width","minimum":0},"ioHeight":{"type":"number","description":"Height","minimum":0},"ioRatioWidth":{"type":"number","description":"Ratio width","minimum":0},"ioRatioHeight":{"type":"number","description":"Ratio height","minimum":0}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/audio-file-size-calculator":{"post":{"operationId":"run_audio_file_size_calculator","summary":"Audio File Size Calculator","tags":["Calculators"],"description":"Estimate an audio file's size from its duration and format — uncompressed WAV/PCM (sample rate, bit depth, channels) or compressed MP3/AAC/OGG/FLAC at a given bitrate — with a byte/KB/MB/GB breakdown.\n\n[Try Audio File Size Calculator in your browser →](https://iotools.cloud/tool/audio-file-size-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioHours":{"type":"number","description":"Hours","minimum":0,"maximum":99},"ioMinutes":{"type":"number","description":"Minutes","minimum":0,"maximum":59},"ioSeconds":{"type":"number","description":"Seconds","minimum":0,"maximum":59},"ioAudioFormat":{"enum":["mp3","aac","ogg","wav","flac"],"description":"Audio format"},"ioBitrateKbps":{"enum":["64","96","128","160","192","256","320"],"description":"Bitrate"},"ioSampleRate":{"enum":["22050","44100","48000","96000"],"description":"Sample rate"},"ioBitDepth":{"enum":["16","24","32"],"description":"Bit depth"},"ioChannels":{"enum":["1","2"],"description":"Channels"},"ioFlacCompression":{"type":"number","description":"FLAC compression (% of WAV size)","minimum":30,"maximum":70}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioFileSize":{"type":"string","description":"Estimated file size"},"ioSizeDetails":{"type":"string","description":"Breakdown"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/bandwidth-download-calculator":{"post":{"operationId":"run_bandwidth_download_calculator","summary":"Bandwidth & Download Time Calculator","tags":["Calculators"],"description":"Calculate download or transfer time from a file size and connection speed — correctly converts bits (Mbps/Gbps) to bytes (MB/GB) and shows a human-readable time breakdown plus the effective transfer rate.\n\n[Try Bandwidth & Download Time Calculator in your browser →](https://iotools.cloud/tool/bandwidth-download-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioFileSize":{"type":"number","description":"File size","minimum":0},"ioFileSizeUnit":{"enum":["KB","MB","GB","TB"],"description":"File size unit"},"ioSpeed":{"type":"number","description":"Connection speed","minimum":0},"ioSpeedUnit":{"enum":["Kbps","Mbps","Gbps"],"description":"Speed unit"}},"required":["ioFileSize","ioSpeed"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/battery-life-runtime-calculator":{"post":{"operationId":"run_battery_life_runtime_calculator","summary":"Battery Life / Runtime Calculator","tags":["Calculators"],"description":"Estimate how long a battery will power a device from its capacity (Wh or mAh + voltage) and the device's power draw, with a real-world usable-capacity derating factor.\n\n[Try Battery Life / Runtime Calculator in your browser →](https://iotools.cloud/tool/battery-life-runtime-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioBatteryCapacity":{"type":"number","description":"Battery Capacity","minimum":0.01},"ioCapacityUnit":{"enum":["mAh","Wh"],"description":"Capacity Unit"},"ioVoltage":{"type":"number","description":"Battery Voltage (V)","minimum":0.01},"ioPowerDraw":{"type":"number","description":"Device Power Draw (W)","minimum":0.001},"ioEfficiency":{"type":"number","description":"Usable Capacity (%)","minimum":0,"maximum":100}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioRuntime":{"type":"string","description":"Estimated Runtime"},"ioRuntimeDetails":{"type":"string","description":"Breakdown"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/batting-average-calculator":{"post":{"operationId":"run_batting_average_calculator","summary":"Batting Average Calculator","tags":["Calculators"],"description":"Calculate a baseball or softball batting average from hits and at bats — AVG = hits ÷ at bats, rounded to the standard three decimal places.\n\n[Try Batting Average Calculator in your browser →](https://iotools.cloud/tool/batting-average-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioHits":{"type":"number","description":"Hits","minimum":0},"ioAtBats":{"type":"number","description":"At bats","minimum":1}},"required":["ioHits","ioAtBats"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioBattingAverage":{"type":"string","description":"Batting average (AVG)"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/belt-length-calculator":{"post":{"operationId":"run_belt_length_calculator","summary":"Belt Length Calculator","tags":["Calculators"],"description":"Calculate the belt length for a two-pulley drive from the pulley diameters and centre distance, for open or crossed belts. Also reports the wrap (contact) angle on each pulley, the speed ratio, and — from a driver speed — the driven pulley speed and belt linear speed. Works in mm, cm or inches.\n\n[Try Belt Length Calculator in your browser →](https://iotools.cloud/tool/belt-length-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioUnit":{"enum":["mm","cm","in"],"description":"Units"},"ioSmallDiameter":{"type":"number","description":"Small Pulley Diameter (D₁)","minimum":0},"ioLargeDiameter":{"type":"number","description":"Large Pulley Diameter (D₂)","minimum":0},"ioCenterDistance":{"type":"number","description":"Centre Distance (C)","minimum":0},"ioBeltType":{"enum":["open","crossed"],"description":"Belt Arrangement"},"ioDriverRpm":{"type":"number","description":"Small Pulley Speed (rpm, optional)","minimum":0}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string","description":"Belt & Drive Geometry"},"ioBreakdown":{"type":"string","description":"Formula & Breakdown"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/bicycle-gear-ratio-calculator":{"post":{"operationId":"run_bicycle_gear_ratio_calculator","summary":"Bicycle Gear Ratio Calculator","tags":["Calculators"],"description":"Calculate bicycle gear ratio, gear inches, and development (distance traveled per pedal revolution) from chainring teeth, cog teeth, and wheel size — 700c, 650b, 26\", 29er, or a custom diameter.\n\n[Try Bicycle Gear Ratio Calculator in your browser →](https://iotools.cloud/tool/bicycle-gear-ratio-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioChainringTeeth":{"type":"number","description":"Chainring teeth","minimum":1},"ioCogTeeth":{"type":"number","description":"Cog teeth","minimum":1},"ioWheelSize":{"enum":["700c","650b","26in","29er","custom"],"description":"Wheel size"},"ioCustomWheelDiameter":{"type":"number","description":"Custom wheel diameter (inches)","minimum":1}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/big-integer-calculator":{"post":{"operationId":"run_big_integer_calculator","summary":"Big Integer Calculator","tags":["Calculators"],"description":"Add, subtract, multiply, divide, exponentiate, or find the modulo of integers of any size — beyond JavaScript's safe-integer limit — using exact arbitrary-precision arithmetic.\n\n[Try Big Integer Calculator in your browser →](https://iotools.cloud/tool/big-integer-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioNumberA":{"type":"string","description":"Number A"},"ioOperation":{"enum":["add","subtract","multiply","divide","power","modulo"],"description":"Operation"},"ioNumberB":{"type":"string","description":"Number B"}},"required":["ioNumberA","ioNumberB"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/bitwise-calculator":{"post":{"operationId":"run_bitwise_calculator","summary":"Bitwise Calculator","tags":["Calculators"],"description":"Run AND, OR, XOR, NOT, left shift or right shift on two integers and see the exact decimal, hexadecimal and binary result — using arbitrary-precision BigInt math, with no 32-bit truncation.\n\n[Try Bitwise Calculator in your browser →](https://iotools.cloud/tool/bitwise-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioNumberA":{"type":"string","description":"Number A"},"ioOperation":{"enum":["and","or","xor","not","lshift","rshift"],"description":"Operation"},"ioNumberB":{"type":"string","description":"Number B"}},"required":["ioNumberA"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/bitwise-shift-calculator":{"post":{"operationId":"run_bitwise_shift_calculator","summary":"Bitwise Shift Calculator","tags":["Calculators"],"description":"Left-shift or right-shift an integer — arithmetic/signed >> or logical/unsigned >>> — at a chosen bit width (8/16/32/64), showing the before/after binary pattern plus the decimal and hex result.\n\n[Try Bitwise Shift Calculator in your browser →](https://iotools.cloud/tool/bitwise-shift-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioValue":{"type":"string","description":"Value"},"ioShiftAmount":{"type":"number","description":"Shift Amount","minimum":0,"maximum":64},"ioShiftDirection":{"enum":["left","right-arithmetic","right-logical"],"description":"Shift Direction"},"ioBitWidth":{"enum":["8","16","32","64"],"description":"Bit Width"}},"required":["ioValue","ioShiftAmount"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResultTable":{"type":"string","description":"Shift Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/black-scholes-option-pricing-calculator":{"post":{"operationId":"run_black_scholes_option_pricing_calculator","summary":"Black-Scholes Option Pricing Calculator","tags":["Calculators"],"description":"Price European call and put options with the Black-Scholes-Merton model. Enter spot price, strike price, days to expiry, volatility, risk-free rate and dividend yield to get option prices, delta, gamma, theta, vega, rho, breakeven, intrinsic value and time value.\n\n[Try Black-Scholes Option Pricing Calculator in your browser →](https://iotools.cloud/tool/black-scholes-option-pricing-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSpotPrice":{"type":"number","description":"Spot Price ($)","minimum":0.0001},"ioStrikePrice":{"type":"number","description":"Strike Price ($)","minimum":0.0001},"ioDaysToExpiry":{"type":"number","description":"Days to Expiry","minimum":0},"ioVolatility":{"type":"number","description":"Volatility (%)","minimum":0.01,"maximum":1000},"ioRiskFreeRate":{"type":"number","description":"Risk-Free Rate (%)","minimum":-100,"maximum":100},"ioDividendYield":{"type":"number","description":"Dividend Yield (%)","minimum":0,"maximum":100}},"required":["ioSpotPrice","ioStrikePrice","ioDaysToExpiry","ioVolatility","ioRiskFreeRate"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/blood-alcohol-content-estimator":{"post":{"operationId":"run_blood_alcohol_content_estimator","summary":"Blood Alcohol Content (BAC) Estimator","tags":["Calculators"],"description":"Estimate blood alcohol content from body weight, sex, standard drinks consumed and hours elapsed, using the Widmark formula. A rough educational estimate only — never a substitute for a breathalyzer, and never a basis for deciding whether to drive.\n\n[Try Blood Alcohol Content (BAC) Estimator in your browser →](https://iotools.cloud/tool/blood-alcohol-content-estimator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSex":{"enum":["male","female"],"description":"Biological Sex"},"ioWeight":{"type":"number","description":"Body Weight","minimum":20,"maximum":400},"ioWeightUnit":{"enum":["kg","lb"],"description":"Weight Unit"},"ioDrinks":{"type":"number","description":"Standard Drinks Consumed","minimum":0,"maximum":30},"ioHoursSinceFirstDrink":{"type":"number","description":"Hours Since First Drink","minimum":0,"maximum":24}},"required":["ioWeight"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string","description":"Estimated BAC"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/bmi-calculator":{"post":{"operationId":"run_bmi_calculator","summary":"BMI Calculator","tags":["Calculators"],"description":"Calculate Body Mass Index (BMI) from your weight and height in metric or imperial units, with instant WHO category classification (Underweight, Normal, Overweight, Obese).\n\n[Try BMI Calculator in your browser →](https://iotools.cloud/tool/bmi-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioWeight":{"type":"number","description":"Weight","minimum":0.1},"ioWeightUnit":{"enum":["kg","lb"],"description":"Weight Unit"},"ioHeight":{"type":"number","description":"Height","minimum":0.1},"ioHeightUnit":{"enum":["cm","in"],"description":"Height Unit"}},"required":["ioWeight","ioHeight"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/bolt-torque-calculator":{"post":{"operationId":"run_bolt_torque_calculator","summary":"Bolt Torque Calculator","tags":["Calculators"],"description":"Work out the tightening torque for a bolted joint using T = K·F·d. Pick a thread size (ISO metric coarse/fine or UNC) and a property class (8.8, 10.9, 12.9, A2-70, SAE 5/8) and the preload is derived from proof load automatically, or enter a target clamp load directly. Results in N·m, lbf·ft, lbf·in and kgf·m, with the resulting bolt stress. Runs entirely in your browser.\n\n[Try Bolt Torque Calculator in your browser →](https://iotools.cloud/tool/bolt-torque-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMode":{"enum":["grade","preload"],"description":"Preload source"},"ioThread":{"enum":["M3","M4","M5","M6","M8","M8x1","M10","M10x1.25","M12","M12x1.25","M14","M16","M16x1.5","M18","M20","M20x1.5","M22","M24","M27","M30","M33","M36","1/4-20","5/16-18","3/8-16","1/2-13","5/8-11","3/4-10","custom"],"description":"Thread size"},"ioDiameter":{"type":"number","description":"Nominal diameter (mm)","minimum":0.5,"maximum":200},"ioStressArea":{"type":"number","description":"Tensile stress area Aₛ (mm²)","minimum":0.1,"maximum":40000},"ioGrade":{"enum":["4.6","4.8","5.8","8.8","9.8","10.9","12.9","A2-70","A2-80","SAE5","SAE8"],"description":"Bolt grade / property class"},"ioPreloadPercent":{"type":"number","description":"Preload target (% of proof load)","minimum":25,"maximum":100},"ioPreload":{"type":"number","description":"Target preload F (N)","minimum":1,"maximum":10000000},"ioCondition":{"enum":["0.30","0.25","0.22","0.20","0.18","0.16","0.12","0.10","custom"],"description":"Joint condition (nut factor K)"},"ioNutFactor":{"type":"number","description":"Nut factor K","minimum":0.01,"maximum":1}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioTorque":{"type":"string","description":"Tightening torque"},"ioTorqueTable":{"type":"string","description":"Torque in other units"},"ioPreloadUsed":{"type":"string","description":"Preload (clamp load)"},"ioBoltStress":{"type":"string","description":"Resulting bolt stress"},"ioNotes":{"type":"string","description":"Notes & warnings"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/bmr-tdee-calculator":{"post":{"operationId":"run_bmr_tdee_calculator","summary":"BMR & TDEE Calculator","tags":["Calculators"],"description":"Calculate your Basal Metabolic Rate (BMR) and Total Daily Energy Expenditure (TDEE) using the Mifflin-St Jeor equation, plus calorie targets for weight loss and gain based on your activity level.\n\n[Try BMR & TDEE Calculator in your browser →](https://iotools.cloud/tool/bmr-tdee-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioWeight":{"type":"number","description":"Weight","minimum":1},"ioWeightUnit":{"enum":["kg","lb"],"description":"Weight unit"},"ioHeight":{"type":"number","description":"Height","minimum":1},"ioHeightUnit":{"enum":["cm","in"],"description":"Height unit"},"ioAge":{"type":"number","description":"Age","minimum":1,"maximum":120},"ioSex":{"enum":["male","female"],"description":"Sex"},"ioActivityLevel":{"enum":["1.2","1.375","1.55","1.725","1.9"],"description":"Activity level"}},"required":["ioWeight","ioHeight","ioAge"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string","description":"BMR & TDEE Results"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/body-fat-calculator":{"post":{"operationId":"run_body_fat_calculator","summary":"Body Fat Calculator","tags":["Calculators"],"description":"Estimate body fat percentage from tape-measure circumferences using the US Navy method — no calipers needed. Get your body fat %, ACE category, and category range instantly.\n\n[Try Body Fat Calculator in your browser →](https://iotools.cloud/tool/body-fat-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSex":{"enum":["male","female"],"description":"Sex"},"ioUnits":{"enum":["metric","imperial"],"description":"Units"},"ioHeight":{"type":"number","description":"Height","minimum":0.1},"ioWaist":{"type":"number","description":"Waist","minimum":0.1},"ioNeck":{"type":"number","description":"Neck","minimum":0.1},"ioHip":{"type":"number","description":"Hip","minimum":0.1}},"required":["ioHeight","ioWaist","ioNeck","ioHip"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/break-even-point-calculator":{"post":{"operationId":"run_break_even_point_calculator","summary":"Break-Even Point Calculator","tags":["Calculators"],"description":"Calculate the break-even point for your business — units and revenue needed to cover fixed costs — from fixed costs, price per unit and variable cost per unit. Also shows contribution margin and contribution margin ratio.\n\n[Try Break-Even Point Calculator in your browser →](https://iotools.cloud/tool/break-even-point-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioFixedCosts":{"type":"number","description":"Fixed Costs ($)","minimum":0},"ioPricePerUnit":{"type":"number","description":"Price per Unit ($)","minimum":0},"ioVariableCostPerUnit":{"type":"number","description":"Variable Cost per Unit ($)","minimum":0}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Break-Even Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/cache-ttl-calculator":{"post":{"operationId":"run_cache_ttl_calculator","summary":"Cache TTL Calculator","tags":["Calculators"],"description":"Convert a cache TTL between seconds, minutes, hours, days and weeks, and generate the matching Cache-Control: max-age header with a human-readable duration breakdown.\n\n[Try Cache TTL Calculator in your browser →](https://iotools.cloud/tool/cache-ttl-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioValue":{"type":"number","description":"TTL Value","minimum":0},"ioUnit":{"enum":["seconds","minutes","hours","days","weeks"],"description":"Unit"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/cagr-calculator":{"post":{"operationId":"run_cagr_calculator","summary":"CAGR Calculator","tags":["Calculators"],"description":"Calculate the Compound Annual Growth Rate between a start and end value over a number of years, or project a future value forward from a known CAGR.\n\n[Try CAGR Calculator in your browser →](https://iotools.cloud/tool/cagr-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMode":{"enum":["cagr","project"],"description":"Mode"},"ioStartValue":{"type":"number","description":"Start Value ($)","minimum":0.01},"ioEndValue":{"type":"number","description":"End Value ($)","minimum":0.01},"ioCagrRate":{"type":"number","description":"CAGR (%)","minimum":-100,"maximum":1000},"ioYears":{"type":"number","description":"Number of Years","minimum":1,"maximum":100}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/calorie-burn-calculator":{"post":{"operationId":"run_calorie_burn_calculator","summary":"Calorie Burn Calculator","tags":["Calculators"],"description":"Estimate calories burned during exercise from your activity, body weight and duration, using the standard MET (Metabolic Equivalent of Task) formula and published Compendium of Physical Activities values.\n\n[Try Calorie Burn Calculator in your browser →](https://iotools.cloud/tool/calorie-burn-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioActivity":{"enum":["walking_slow","walking_moderate","walking_brisk","walking_very_brisk","hiking","hiking_backpack","stair_climbing_slow","stair_climbing_fast","jogging","running_6mph","running_7mph","running_8mph","running_9mph","running_10mph","cycling_leisure","cycling_moderate","cycling_vigorous","cycling_racing","spinning","rowing_moderate","rowing_vigorous","elliptical_moderate","elliptical_vigorous","swimming_leisure","swimming_freestyle_moderate","swimming_freestyle_vigorous","swimming_butterfly","jump_rope_moderate","jump_rope_fast","basketball_casual","basketball_game","soccer_casual","soccer_competitive","tennis_doubles","tennis_singles","badminton","pickleball","squash","racquetball","table_tennis","volleyball_casual","volleyball_beach","baseball","football_touch","football_tackle","golf_walking","golf_cart","bowling","ice_hockey","ice_skating","rock_climbing_ascend","rock_climbing_rappel","skiing_downhill_moderate","skiing_downhill_vigorous","skiing_cross_country","snowboarding","skateboarding","surfing","weights_light","weights_moderate","weights_vigorous","calisthenics_light","calisthenics_vigorous","circuit_training","crossfit","hiit","kettlebell","yoga_hatha","yoga_power","pilates","tai_chi","stretching","boxing_bag","boxing_sparring","kickboxing","karate","aerobic_dance_moderate","aerobic_dance_vigorous","zumba","dance_ballroom","dance_general","standing_light","sitting_desk","cooking","washing_dishes","vacuuming","sweeping","heavy_cleaning","painting","carpentry","mowing_push","mowing_riding","gardening","raking","shoveling_snow","chopping_wood","walking_dog","playing_with_kids","groceries_upstairs","construction_work","driving","sleeping"],"description":"Activity"},"ioWeight":{"type":"number","description":"Body weight","minimum":0.1},"ioWeightUnit":{"enum":["kg","lb"],"description":"Weight Unit"},"ioDuration":{"type":"number","description":"Duration (minutes)","minimum":1}},"required":["ioWeight","ioDuration"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/carbon-footprint-estimator":{"post":{"operationId":"run_carbon_footprint_estimator","summary":"Carbon Footprint Estimator","tags":["Calculators"],"description":"Estimate your annual personal CO2e emissions from flights, car travel, home energy, diet and spending, broken down by category and compared against country per-capita averages, using published EPA/DEFRA/IPCC-style emission factors.\n\n[Try Carbon Footprint Estimator in your browser →](https://iotools.cloud/tool/carbon-footprint-estimator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioShortFlightKm":{"type":"number","description":"Short-haul flights (km/yr, passenger-km)","minimum":0},"ioLongFlightKm":{"type":"number","description":"Long-haul flights (km/yr, passenger-km)","minimum":0},"ioCarDistance":{"type":"number","description":"Car travel (per year)","minimum":0},"ioDistanceUnit":{"enum":["km","mi"],"description":"Distance unit"},"ioCarType":{"enum":["gasoline","diesel","hybrid","phev","ev","none"],"description":"Car type"},"ioElectricityKwh":{"type":"number","description":"Electricity (kWh/yr)","minimum":0},"ioNaturalGasTherms":{"type":"number","description":"Natural gas (therms/yr)","minimum":0},"ioGridRegion":{"enum":["us","ca","uk","de","fr","au","cn","in","world"],"description":"Grid region"},"ioDiet":{"enum":["heavy","average","low","vegetarian","vegan"],"description":"Diet"},"ioGoodsSpending":{"type":"number","description":"Goods & services ($/yr)","minimum":0},"ioCompareCountry":{"enum":["us","ca","au","de","uk","fr","cn","in","world","paris"],"description":"Compare to"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/churn-rate-retention-calculator":{"post":{"operationId":"run_churn_rate_retention_calculator","summary":"Churn Rate & Retention Calculator","tags":["Calculators"],"description":"Calculate customer churn rate and retention rate from customers at the start of a period and customers lost — with an optional annualized rate projection and net-new customer tracking.\n\n[Try Churn Rate & Retention Calculator in your browser →](https://iotools.cloud/tool/churn-rate-retention-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioPeriod":{"enum":["monthly","quarterly","annual"],"description":"Period Length"},"ioCustomersStart":{"type":"number","description":"Customers at Period Start","minimum":0},"ioCustomersLost":{"type":"number","description":"Customers Lost","minimum":0},"ioCustomersNew":{"type":"number","description":"New Customers (optional)","minimum":0}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Churn & Retention Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/circle-ellipse-calculator":{"post":{"operationId":"run_circle_ellipse_calculator","summary":"Circle & Ellipse Calculator","tags":["Calculators"],"description":"Calculate a circle's radius, diameter, circumference and area from any single known value, plus optional sector arc length and area — or an ellipse's area, perimeter (Ramanujan approximation), eccentricity, foci distance and semi-latus rectum from its semi-major/semi-minor axes.\n\n[Try Circle & Ellipse Calculator in your browser →](https://iotools.cloud/tool/circle-ellipse-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioShape":{"enum":["circle","ellipse"],"description":"Shape"},"ioUnit":{"enum":["mm","cm","m","in","ft","yd"],"description":"Unit"},"ioPrecision":{"enum":["0","1","2","3","4","5","6","8","10"],"description":"Decimal precision"},"ioCircleSolveFrom":{"enum":["radius","diameter","circumference","area"],"description":"Solve circle from"},"ioRadius":{"type":"number","description":"Radius","minimum":0},"ioDiameter":{"type":"number","description":"Diameter","minimum":0},"ioCircumference":{"type":"number","description":"Circumference","minimum":0},"ioAreaInput":{"type":"number","description":"Area","minimum":0},"ioSectorAngle":{"type":"number","description":"Sector angle (°)","minimum":0,"maximum":360},"ioSemiMajor":{"type":"number","description":"Semi-major axis (a)","minimum":0},"ioSemiMinor":{"type":"number","description":"Semi-minor axis (b)","minimum":0}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string","description":"Results"},"ioSectorResults":{"type":"string","description":"Sector & Segment (circle only)"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/cloud-bandwidth-cost-estimator":{"post":{"operationId":"run_cloud_bandwidth_cost_estimator","summary":"Cloud Bandwidth Cost Estimator","tags":["Calculators"],"description":"Estimate monthly egress bandwidth costs across AWS, Google Cloud, Azure, Cloudflare, DigitalOcean and Backblaze B2 using tiered list pricing, with a side-by-side cost comparison.\n\n[Try Cloud Bandwidth Cost Estimator in your browser →](https://iotools.cloud/tool/cloud-bandwidth-cost-estimator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioProvider":{"enum":["aws","gcp","azure","cloudflare","digitalocean","backblaze"],"description":"Provider"},"ioEgress":{"type":"number","description":"Monthly Egress","minimum":0},"ioUnit":{"enum":["gb","tb","pb"],"description":"Unit"},"ioFreeAllowance":{"type":"number","description":"Free Allowance Override (GB)","minimum":0}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioTierBreakdown":{"type":"string","description":"Tier Breakdown (Selected Provider)"},"ioComparison":{"type":"string","description":"Provider Comparison"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/camera-depth-of-field-calculator":{"post":{"operationId":"run_camera_depth_of_field_calculator","summary":"Camera Depth of Field (DoF) Calculator","tags":["Calculators"],"description":"Calculate a camera's depth of field from focal length, aperture, subject distance and sensor size. Get the hyperfocal distance, near and far focus limits, total depth of field, and which side of the subject has more DoF. Pure optics math — no camera or photo upload needed.\n\n[Try Camera Depth of Field (DoF) Calculator in your browser →](https://iotools.cloud/tool/camera-depth-of-field-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSensor":{"enum":["fullframe","apsc-canon","apsc-nikon","mft","1inch","phone","medium-format","custom"],"description":"Sensor Size"},"ioCoC":{"type":"number","description":"Circle of Confusion (mm)","minimum":0.001,"maximum":1},"ioFocalLength":{"type":"number","description":"Focal Length (mm)","minimum":1,"maximum":2000},"ioAperture":{"type":"number","description":"Aperture (f-number)","minimum":0.5},"ioDistance":{"type":"number","description":"Subject Distance","minimum":0.01},"ioDistanceUnit":{"enum":["m","ft"],"description":"Distance Unit"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Result"},"ioSummary":{"type":"string","description":"Depth of Field Details"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/compound-interest-calculator":{"post":{"operationId":"run_compound_interest_calculator","summary":"Compound Interest Calculator","tags":["Calculators"],"description":"Project the future value of an investment with compound interest — pick a compounding frequency (annually to continuous), add optional monthly contributions, and see a year-by-year growth table.\n\n[Try Compound Interest Calculator in your browser →](https://iotools.cloud/tool/compound-interest-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioPrincipal":{"type":"number","description":"Principal Amount ($)","minimum":0},"ioRate":{"type":"number","description":"Annual Interest Rate (%)","minimum":0,"maximum":100},"ioTime":{"type":"number","description":"Time Period (Years)","minimum":1,"maximum":100},"ioFrequency":{"enum":["1","4","12","52","365","continuous"],"description":"Compounding Frequency"},"ioContribution":{"type":"number","description":"Monthly Contribution ($)","minimum":0}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Summary"},"ioSchedule":{"type":"string","description":"Year-by-Year Growth"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/compression-ratio-calculator":{"post":{"operationId":"run_compression_ratio_calculator","summary":"Compression Ratio Calculator","tags":["Calculators"],"description":"Calculate the compression ratio between an original and compressed file size — with space saved, percentage saved, decimal ratio and a compression-quality rating.\n\n[Try Compression Ratio Calculator in your browser →](https://iotools.cloud/tool/compression-ratio-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioOriginalSize":{"type":"number","description":"Original Size","minimum":0.01},"ioOriginalUnit":{"enum":["B","KB","MB","GB","TB"],"description":"Unit"},"ioCompressedSize":{"type":"number","description":"Compressed Size","minimum":0.01},"ioCompressedUnit":{"enum":["B","KB","MB","GB","TB"],"description":"Unit"}},"required":["ioOriginalSize","ioCompressedSize"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioRatio":{"type":"string","description":"Compression Ratio"},"ioDetails":{"type":"string","description":"Breakdown"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/concrete-volume-bags-calculator":{"post":{"operationId":"run_concrete_volume_bags_calculator","summary":"Concrete Volume & Bags Calculator","tags":["Calculators"],"description":"Calculate the concrete volume of a slab or footing from length, width and depth, and convert it into the number of premix bags to buy — for six standard US and metric bag sizes.\n\n[Try Concrete Volume & Bags Calculator in your browser →](https://iotools.cloud/tool/concrete-volume-bags-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioLength":{"type":"number","description":"Length","minimum":0},"ioWidth":{"type":"number","description":"Width","minimum":0},"ioUnit":{"enum":["feet","meters","inches"],"description":"Length/width unit"},"ioDepth":{"type":"number","description":"Depth / thickness (inches)","minimum":0},"ioBagSize":{"enum":["lb40","lb60","lb80","kg20","kg25","kg30"],"description":"Premix bag size"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/confidence-interval-calculator":{"post":{"operationId":"run_confidence_interval_calculator","summary":"Confidence Interval Calculator","tags":["Calculators"],"description":"Calculate a confidence interval for a sample mean or a sample proportion. Enter your sample statistics and confidence level to get the point estimate, margin of error and interval bounds.\n\n[Try Confidence Interval Calculator in your browser →](https://iotools.cloud/tool/confidence-interval-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMode":{"enum":["mean","proportion"],"description":"What are you estimating?"},"ioSampleSize":{"type":"number","description":"Sample Size (n)","minimum":1},"ioSampleMean":{"type":"number","description":"Sample Mean (x̄)"},"ioSampleStdDev":{"type":"number","description":"Sample Standard Deviation (s)","minimum":0},"ioSuccesses":{"type":"number","description":"Successes (x)","minimum":0},"ioProportionMethod":{"enum":["wilson","wald"],"description":"CI Method"},"ioConfidenceLevel":{"enum":["90","95","99"],"description":"Confidence Level"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/container-garden-planner":{"post":{"operationId":"run_container_garden_planner","summary":"Container Garden Planner","tags":["Calculators"],"description":"Estimate how many plants fit in a round or rectangular container based on each plant's recommended spacing — pick from 25 common herbs, greens, vegetables and fruits.\n\n[Try Container Garden Planner in your browser →](https://iotools.cloud/tool/container-garden-planner/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioContainerShape":{"enum":["round","rectangular"],"description":"Container shape"},"ioDiameter":{"type":"number","description":"Diameter (cm)","minimum":1},"ioLength":{"type":"number","description":"Length (cm)","minimum":1},"ioWidth":{"type":"number","description":"Width (cm)","minimum":1},"ioPlantType":{"enum":["basil","chives","cilantro","dill","mint","oregano","parsley","rosemary","sage","thyme","arugula","kale","lettuce","spinach","chard","pepper","carrots","tomato_cherry","chili","cucumber","eggplant","beans","green_onion","radish","strawberry"],"description":"Plant"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResultTable":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/css-specificity-calculator":{"post":{"operationId":"run_css_specificity_calculator","summary":"CSS Specificity Calculator","tags":["Calculators"],"description":"Calculate the CSS specificity of one or more selectors as an (A, B, C) triple — ID, class/attribute/pseudo-class, and type/pseudo-element counts — to debug why a style rule isn't winning.\n\n[Try CSS Specificity Calculator in your browser →](https://iotools.cloud/tool/css-specificity-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSelectors":{"type":"string","description":"CSS Selectors"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string","description":"Specificity"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/customer-lifetime-value-calculator":{"post":{"operationId":"run_customer_lifetime_value_calculator","summary":"Customer Lifetime Value Calculator","tags":["Calculators"],"description":"Calculate Customer Lifetime Value (CLV / LTV) with the e-commerce model (average order value × purchases per year × lifespan) or the SaaS model (ARPU ÷ monthly churn), apply gross margin for net value, and compare against CAC for an LTV:CAC ratio and payback period.\n\n[Try Customer Lifetime Value Calculator in your browser →](https://iotools.cloud/tool/customer-lifetime-value-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioModel":{"enum":["ecommerce","saas"],"description":"Business Model"},"ioAvgOrderValue":{"type":"number","description":"Avg Order Value ($)","minimum":0},"ioPurchaseFrequency":{"type":"number","description":"Purchases / Year","minimum":0},"ioCustomerLifespan":{"type":"number","description":"Customer Lifespan (years)","minimum":0},"ioGrossMargin":{"type":"number","description":"Gross Margin (%)","minimum":0,"maximum":100},"ioArpu":{"type":"number","description":"ARPU / Month ($)","minimum":0},"ioChurnRate":{"type":"number","description":"Monthly Churn (%)","minimum":0,"maximum":100},"ioSaasMargin":{"type":"number","description":"Gross Margin (%)","minimum":0,"maximum":100},"ioCac":{"type":"number","description":"CAC / Customer ($)","minimum":0}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Lifetime Value Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/data-transfer-time-calculator":{"post":{"operationId":"run_data_transfer_time_calculator","summary":"Data Transfer Time Calculator","tags":["Calculators"],"description":"Estimate how long a file takes to transfer over a given bandwidth, accounting for protocol overhead (TCP/UDP/HTTP) and real-world network efficiency — with a human-readable time, exact seconds, and the effective speed.\n\n[Try Data Transfer Time Calculator in your browser →](https://iotools.cloud/tool/data-transfer-time-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioFileSize":{"type":"number","description":"File size","minimum":0},"ioFileSizeUnit":{"enum":["B","KB","MB","GB","TB","PB"],"description":"File size unit"},"ioBandwidth":{"type":"number","description":"Bandwidth","minimum":0},"ioBandwidthUnit":{"enum":["bps","Kbps","Mbps","Gbps"],"description":"Bandwidth unit"},"ioProtocol":{"enum":["None","TCP","UDP","HTTP"],"description":"Protocol overhead"},"ioEfficiency":{"type":"number","description":"Network efficiency %","minimum":50,"maximum":100}},"required":["ioFileSize","ioBandwidth"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/date-calculator":{"post":{"operationId":"run_date_calculator","summary":"Date Calculator","tags":["Calculators"],"description":"Add or subtract years, months and days from a date. Get the resulting date, its day of the week, ISO format, and the total number of days and weeks between the two dates.\n\n[Try Date Calculator in your browser →](https://iotools.cloud/tool/date-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioStartDate":{"type":"string","description":"Start Date"},"ioOperation":{"enum":["add","subtract"],"description":"Operation"},"ioYears":{"type":"number","description":"Years","minimum":0},"ioMonths":{"type":"number","description":"Months","minimum":0},"ioDays":{"type":"number","description":"Days","minimum":0}},"required":["ioStartDate"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/date-countdown-calculator":{"post":{"operationId":"run_date_countdown_calculator","summary":"Date Countdown Calculator","tags":["Calculators"],"description":"Count down the days, hours, minutes and seconds until a target date and time — or the time elapsed since a past one. Optionally count only working days (Mon-Fri), and measure the span from any custom start moment.\n\n[Try Date Countdown Calculator in your browser →](https://iotools.cloud/tool/date-countdown-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioEventName":{"type":"string","description":"Event Name"},"ioTargetDate":{"type":"string","description":"Target Date & Time"},"ioFromDate":{"type":"string","description":"From Date & Time"},"ioWorkingDaysOnly":{"type":"boolean","description":"Count working days only (exclude weekends)"}},"required":["ioTargetDate"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Countdown"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/date-difference-calculator":{"post":{"operationId":"run_date_difference_calculator","summary":"Date Difference Calculator","tags":["Calculators"],"description":"Find the difference between two dates: total days, weeks, and a full years/months/days breakdown, plus weekend and business-day counts with optional US, UK, or Australian public-holiday presets and a configurable weekend.\n\n[Try Date Difference Calculator in your browser →](https://iotools.cloud/tool/date-difference-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioStartDate":{"type":"string","description":"Start Date"},"ioEndDate":{"type":"string","description":"End Date"},"ioWeekendDays":{"enum":["sat_sun","fri_sat","fri_sat_sun","fri","sat","sun"],"description":"Weekend"},"ioHolidayPreset":{"enum":["none","us","uk","au"],"description":"Holidays"}},"required":["ioStartDate","ioEndDate"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/dca-calculator":{"post":{"operationId":"run_dca_calculator","summary":"DCA (Dollar-Cost Averaging) Calculator","tags":["Calculators"],"description":"Simulate a dollar-cost averaging investment strategy — periodic contributions at a chosen frequency compounding over time — and compare the result against investing the same total amount as a single lump sum.\n\n[Try DCA (Dollar-Cost Averaging) Calculator in your browser →](https://iotools.cloud/tool/dca-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioContribution":{"type":"number","description":"Periodic Investment ($)","minimum":0},"ioFrequency":{"enum":["52","26","12","4","1"],"description":"Investment Frequency"},"ioYears":{"type":"number","description":"Investment Duration (Years)","minimum":1,"maximum":60},"ioReturnRate":{"type":"number","description":"Expected Annual Return (%)","minimum":-50,"maximum":100},"ioInitial":{"type":"number","description":"Initial Lump Sum ($)","minimum":0}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Summary"},"ioSchedule":{"type":"string","description":"Year-by-Year Comparison"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/debt-repayment-calculator":{"post":{"operationId":"run_debt_repayment_calculator","summary":"Debt Repayment Calculator","tags":["Calculators"],"description":"Calculate your monthly loan or debt repayment amount, total interest paid, and payoff timeline from principal, interest rate and term using standard amortization — and see how an extra monthly payment shortens the term and cuts interest.\n\n[Try Debt Repayment Calculator in your browser →](https://iotools.cloud/tool/debt-repayment-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioPrincipal":{"type":"number","description":"Loan Amount ($)","minimum":0.01},"ioAnnualRate":{"type":"number","description":"Annual Interest Rate (%)","minimum":0},"ioTermYears":{"type":"number","description":"Loan Term (Years)","minimum":0.1},"ioExtraPayment":{"type":"number","description":"Extra Monthly Payment ($)","minimum":0}},"required":["ioPrincipal","ioAnnualRate","ioTermYears"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string","description":"Repayment Summary"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/depreciation-calculator":{"post":{"operationId":"run_depreciation_calculator","summary":"Depreciation Calculator","tags":["Calculators"],"description":"Calculate asset depreciation with straight-line, declining balance, double-declining balance, or sum-of-years-digits methods, and see a full year-by-year schedule of depreciation expense and book value.\n\n[Try Depreciation Calculator in your browser →](https://iotools.cloud/tool/depreciation-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMethod":{"enum":["straight-line","declining-balance","double-declining-balance","sum-of-years-digits"],"description":"Depreciation Method"},"ioAssetCost":{"type":"number","description":"Asset Cost ($)","minimum":0},"ioSalvageValue":{"type":"number","description":"Salvage Value ($)","minimum":0},"ioUsefulLife":{"type":"number","description":"Useful Life (Years)","minimum":1,"maximum":100},"ioDecliningRate":{"type":"number","description":"Declining Rate (%)","minimum":0,"maximum":100}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Summary"},"ioSchedule":{"type":"string","description":"Depreciation Schedule"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/dew-point-humidity-calculator":{"post":{"operationId":"run_dew_point_humidity_calculator","summary":"Dew Point & Humidity Calculator","tags":["Calculators"],"description":"Calculate dew point, wet-bulb temperature, heat index, vapor pressure, absolute humidity, mixing ratio, specific humidity and moist-air density from temperature and relative humidity.\n\n[Try Dew Point & Humidity Calculator in your browser →](https://iotools.cloud/tool/dew-point-humidity-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioTempUnit":{"enum":["C","F"],"description":"Temperature unit"},"ioTemperature":{"type":"number","description":"Air temperature"},"ioHumidity":{"type":"number","description":"Relative humidity (%)","minimum":0,"maximum":100},"ioPressure":{"type":"number","description":"Air pressure (hPa)","minimum":500,"maximum":1100}},"required":["ioTemperature","ioHumidity"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string","description":"Results"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/discount-markup-calculator":{"post":{"operationId":"run_discount_markup_calculator","summary":"Discount & Markup Calculator","tags":["Calculators"],"description":"Calculate sale price, profit margin, markup, discounts and stacked discounts. Five modes: markup, margin, discount, reverse discount, and stacked (compounded) discounts — with a full breakdown.\n\n[Try Discount & Markup Calculator in your browser →](https://iotools.cloud/tool/discount-markup-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCalcMode":{"enum":["markup","margin","discount","reverse","stacked"],"description":"Calculation Mode"},"ioCostPrice":{"type":"number","description":"Cost Price","minimum":0},"ioMarkupPercent":{"type":"number","description":"Markup %","minimum":0},"ioSalePrice":{"type":"number","description":"Sale Price","minimum":0},"ioOriginalPrice":{"type":"number","description":"Original Price","minimum":0},"ioDiscountPercent":{"type":"number","description":"Discount %","minimum":0,"maximum":100},"ioFinalPrice":{"type":"number","description":"Final (Discounted) Price","minimum":0},"ioStackedDiscount1":{"type":"number","description":"Discount 1 %","minimum":0,"maximum":100},"ioStackedDiscount2":{"type":"number","description":"Discount 2 %","minimum":0,"maximum":100},"ioStackedDiscount3":{"type":"number","description":"Discount 3 % (optional)","minimum":0,"maximum":100}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/dns-record-ttl-expiry-calculator":{"post":{"operationId":"run_dns_record_ttl_expiry_calculator","summary":"DNS Record TTL Expiry Calculator","tags":["Calculators"],"description":"Paste DNS records (TYPE TTL name) and see exactly when each cached copy expires, the live countdown remaining, and the safe propagation window (TTL x 2). Includes an optional TTL-reduction schedule for planning migrations.\n\n[Try DNS Record TTL Expiry Calculator in your browser →](https://iotools.cloud/tool/dns-record-ttl-expiry-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioDnsRecords":{"type":"string","description":"DNS Records"},"ioFetchTime":{"type":"string","description":"Fetched At"},"ioNow":{"type":"string","description":"Evaluation Time (now)"},"ioShowMigrationPlan":{"type":"boolean","description":"Show recommended TTL reduction schedule for migrations"}},"required":["ioDnsRecords"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Summary"},"ioRecords":{"type":"string","description":"Expiry Breakdown"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/docker-container-resource-calculator":{"post":{"operationId":"run_docker_container_resource_calculator","summary":"Docker Container Resource Calculator","tags":["Calculators"],"description":"Calculate recommended CPU and memory requests and limits for Docker containers and Kubernetes pods. Pick a workload preset or enter custom values, cap them to your host capacity, and copy a ready docker run command and Kubernetes resources block.\n\n[Try Docker Container Resource Calculator in your browser →](https://iotools.cloud/tool/docker-container-resource-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioWorkloadType":{"enum":["web-server","background-worker","database","cache","ml-inference","custom"],"description":"Workload Type"},"ioHostCpu":{"type":"number","description":"Host CPU (cores)","minimum":1,"maximum":512},"ioHostRam":{"type":"number","description":"Host RAM (GB)","minimum":0.5,"maximum":4096},"ioContainerCount":{"type":"number","description":"Number of Containers","minimum":1,"maximum":100},"ioCpuRequest":{"type":"number","description":"CPU Request (cores)","minimum":0.01,"maximum":512},"ioCpuLimit":{"type":"number","description":"CPU Limit (cores)","minimum":0.01,"maximum":512},"ioMemRequest":{"type":"number","description":"Memory Request (MB)","minimum":1,"maximum":4194304},"ioMemLimit":{"type":"number","description":"Memory Limit (MB)","minimum":1,"maximum":4194304}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResourceTable":{"type":"string","description":"Recommended Resources"},"ioDockerCmd":{"type":"string","description":"Docker Run Command"},"ioK8sYaml":{"type":"string","description":"Kubernetes Resources"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/dpi-ppi-calculator":{"post":{"operationId":"run_dpi_ppi_calculator","summary":"DPI / PPI Calculator","tags":["Calculators"],"description":"Calculate a screen's pixel density (PPI) from its resolution and diagonal size — plus pixel pitch, aspect ratio, total megapixels, Android density bucket and a Retina check.\n\n[Try DPI / PPI Calculator in your browser →](https://iotools.cloud/tool/dpi-ppi-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioWidthPx":{"type":"number","description":"Width (px)","minimum":1},"ioHeightPx":{"type":"number","description":"Height (px)","minimum":1},"ioDiagonalSize":{"type":"number","description":"Diagonal size (inches)","minimum":0.1}},"required":["ioWidthPx","ioHeightPx","ioDiagonalSize"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResultTable":{"type":"string","description":"Results"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/electricity-cost-calculator":{"post":{"operationId":"run_electricity_cost_calculator","summary":"Electricity Cost Calculator","tags":["Calculators"],"description":"Estimate the running cost of any appliance from its wattage, daily usage hours, and your electricity rate — with daily/weekly/monthly/yearly energy and cost, plus a yearly CO2 estimate.\n\n[Try Electricity Cost Calculator in your browser →](https://iotools.cloud/tool/electricity-cost-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioWattage":{"type":"number","description":"Device Wattage (W)","minimum":0.01},"ioHoursPerDay":{"type":"number","description":"Hours Per Day","minimum":0.01,"maximum":24},"ioRatePreset":{"enum":["custom","0.16","0.34","0.25","0.30","0.13","0.08"],"description":"Rate Preset"},"ioRate":{"type":"number","description":"Rate (per kWh)","minimum":0.001},"ioQuantity":{"type":"number","description":"Number of Devices","minimum":1,"maximum":100}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResultTable":{"type":"string","description":"Energy & Cost"},"ioCo2":{"type":"string","description":"CO2 Emissions (yearly)"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/emi-calculator":{"post":{"operationId":"run_emi_calculator","summary":"EMI Calculator","tags":["Calculators"],"description":"Calculate the monthly EMI on a loan, with a full amortization schedule, total interest and total repayment. Compare Reducing Balance vs Flat Rate, model extra or lump-sum prepayments to see interest and time saved, and put two loan offers side by side.\n\n[Try EMI Calculator in your browser →](https://iotools.cloud/tool/emi-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioLoanAmount":{"type":"number","description":"Loan Amount ($)","minimum":0,"maximum":999999999},"ioInterestRate":{"type":"number","description":"Annual Interest Rate (%)","minimum":0,"maximum":100},"ioTenure":{"type":"number","description":"Loan Tenure","minimum":1,"maximum":600},"ioTenureUnit":{"enum":["years","months"],"description":"Tenure Unit"},"ioCalcMethod":{"enum":["reducing","flat"],"description":"Calculation Method"},"ioExtraMonthly":{"type":"number","description":"Monthly Extra Payment ($)","minimum":0,"maximum":999999999},"ioLumpSum":{"type":"number","description":"One-time Lump Sum ($)","minimum":0,"maximum":999999999},"ioLumpSumMonth":{"type":"number","description":"Lump Sum at Month #","minimum":1,"maximum":600},"ioCompAAmount":{"type":"number","description":"Loan A Amount ($)","minimum":0,"maximum":999999999},"ioCompARate":{"type":"number","description":"Loan A Rate (%)","minimum":0,"maximum":100},"ioCompATenure":{"type":"number","description":"Loan A Tenure","minimum":1,"maximum":600},"ioCompATenureUnit":{"enum":["years","months"],"description":"Loan A Unit"},"ioCompBAmount":{"type":"number","description":"Loan B Amount ($)","minimum":0,"maximum":999999999},"ioCompBRate":{"type":"number","description":"Loan B Rate (%)","minimum":0,"maximum":100},"ioCompBTenure":{"type":"number","description":"Loan B Tenure","minimum":1,"maximum":600},"ioCompBTenureUnit":{"enum":["years","months"],"description":"Loan B Unit"}},"required":["ioLoanAmount","ioInterestRate","ioTenure"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioEmiSummary":{"type":"string","description":"EMI Results"},"ioAmortization":{"type":"string","description":"Amortization Schedule"},"ioPrepayment":{"type":"string","description":"Prepayment Analysis"},"ioComparison":{"type":"string","description":"Loan Comparison"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/era-calculator":{"post":{"operationId":"run_era_calculator","summary":"ERA Calculator","tags":["Calculators"],"description":"Calculate a pitcher's earned run average from earned runs and innings pitched — ERA = (earned runs ÷ innings pitched) × 9, rounded to two decimal places.\n\n[Try ERA Calculator in your browser →](https://iotools.cloud/tool/era-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioEarnedRuns":{"type":"number","description":"Earned runs","minimum":0},"ioInningsPitched":{"type":"number","description":"Innings pitched","minimum":0.1}},"required":["ioEarnedRuns","ioInningsPitched"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioEra":{"type":"string","description":"Earned run average (ERA)"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/eta-calculator":{"post":{"operationId":"run_eta_calculator","summary":"ETA Calculator","tags":["Calculators"],"description":"Estimate when a batch of repetitive work will finish. Give a start time, how many units there are, and how long one unit takes — then optionally add break time, a buffer percentage, and constrain the estimate to working hours (9am-5pm) or exclude weekends.\n\n[Try ETA Calculator in your browser →](https://iotools.cloud/tool/eta-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioStartTime":{"type":"string","description":"Start time"},"ioTotalUnits":{"type":"number","description":"Total units","minimum":1},"ioPerNumber":{"type":"number","description":"A unit finished every","minimum":1},"ioPerUnit":{"enum":["ms","s","m","h","d","w","mo","y"],"description":"Pace unit"},"ioBreakTime":{"type":"number","description":"Break time","minimum":0},"ioBreakTimeUnit":{"enum":["ms","s","m","h","d","w","mo","y"],"description":"Break time unit"},"ioBufferTimePercentage":{"type":"number","description":"Buffer time %","minimum":0},"ioWorkingHoursOnly":{"type":"boolean","description":"Working hours only (9am-5pm)"},"ioExcludeWeekends":{"type":"boolean","description":"Exclude weekends (Sat & Sun)"}},"required":["ioStartTime","ioTotalUnits","ioPerNumber"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioFinishTime":{"type":"string","description":"Estimated finish time"},"ioTotalDuration":{"type":"string","description":"Total working duration"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ev-charging-cost-calculator":{"post":{"operationId":"run_ev_charging_cost_calculator","summary":"EV Charging Cost Calculator","tags":["Calculators"],"description":"Estimate what it costs to charge an electric vehicle from your battery size, start/target charge, and electricity rate — with a home vs public cost comparison, cost per mile/km, a monthly estimate, and Level 1/Level 2/DC-fast charging times.\n\n[Try EV Charging Cost Calculator in your browser →](https://iotools.cloud/tool/ev-charging-cost-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioBatteryCapacity":{"type":"number","description":"Battery Capacity (kWh)","minimum":1,"maximum":300},"ioStartPercent":{"type":"number","description":"Start Charge (%)","minimum":0,"maximum":100},"ioTargetPercent":{"type":"number","description":"Target Charge (%)","minimum":0,"maximum":100},"ioRatePreset":{"enum":["custom","0.16","0.34","0.25","0.30","0.13","0.10"],"description":"Rate Preset"},"ioHomeRate":{"type":"number","description":"Home Rate ($/kWh)","minimum":0.001},"ioPublicRate":{"type":"number","description":"Public Rate ($/kWh)","minimum":0},"ioEfficiency":{"type":"number","description":"Vehicle Efficiency","minimum":0.1},"ioDistanceUnit":{"enum":["km","mi"],"description":"Distance Unit"},"ioDailyDistance":{"type":"number","description":"Avg Daily Distance","minimum":0}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummaryTable":{"type":"string","description":"Cost Summary"},"ioChargeTimeTable":{"type":"string","description":"Estimated Charging Time"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/fibonacci-retracement-calculator":{"post":{"operationId":"run_fibonacci_retracement_calculator","summary":"Fibonacci Retracement Calculator","tags":["Calculators"],"description":"Calculate Fibonacci retracement and extension price levels from a swing high and swing low — the standard 23.6%, 38.2%, 50%, 61.8% and 78.6% pullbacks plus 127.2%, 161.8%, 200% and 261.8% extension targets, for uptrends and downtrends.\n\n[Try Fibonacci Retracement Calculator in your browser →](https://iotools.cloud/tool/fibonacci-retracement-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSwingHigh":{"type":"number","description":"Swing high"},"ioSwingLow":{"type":"number","description":"Swing low"},"ioTrend":{"enum":["up","down"],"description":"Trend direction"},"ioDecimals":{"enum":["2","4","5","8"],"description":"Price decimals"}},"required":["ioSwingHigh","ioSwingLow"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Summary"},"ioRetracement":{"type":"string"},"ioExtension":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/fire-calculator":{"post":{"operationId":"run_fire_calculator","summary":"FIRE Calculator","tags":["Calculators"],"description":"Calculate your Financial Independence / Retire Early (FIRE) number, how many years until you reach it, your savings rate, and Lean/Fat/Coast FIRE reference targets.\n\n[Try FIRE Calculator in your browser →](https://iotools.cloud/tool/fire-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCurrentAge":{"type":"number","description":"Current Age","minimum":1,"maximum":100},"ioAnnualIncome":{"type":"number","description":"Annual Income (after tax, $)","minimum":0},"ioAnnualExpenses":{"type":"number","description":"Annual Expenses ($)","minimum":0},"ioCurrentSavings":{"type":"number","description":"Current Savings ($)","minimum":0},"ioAnnualReturn":{"type":"number","description":"Expected Real Return (%)","minimum":-10,"maximum":30},"ioSwr":{"enum":["3.5","4","4.5"],"description":"Safe Withdrawal Rate"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Summary"},"ioSchedule":{"type":"string","description":"Year-by-Year Projection"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/floor-tile-area-calculator":{"post":{"operationId":"run_floor_tile_area_calculator","summary":"Floor / Tile Area Calculator","tags":["Calculators"],"description":"Estimate floor area and the number of tiles and boxes to buy for a tiling project — accounting for grout gap, a wastage allowance and box rounding, for rectangular or L-shaped rooms in metric or imperial units.\n\n[Try Floor / Tile Area Calculator in your browser →](https://iotools.cloud/tool/floor-tile-area-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioUnitSystem":{"enum":["metric","imperial"],"description":"Unit system"},"ioRoomShape":{"enum":["rectangle","lshape"],"description":"Room shape"},"ioRoomLength":{"type":"number","description":"Room length","minimum":0},"ioRoomWidth":{"type":"number","description":"Room width","minimum":0},"ioRoomLength2":{"type":"number","description":"Extension length (L-shape)","minimum":0},"ioRoomWidth2":{"type":"number","description":"Extension width (L-shape)","minimum":0},"ioTileLength":{"type":"number","description":"Tile length","minimum":0},"ioTileWidth":{"type":"number","description":"Tile width","minimum":0},"ioGroutGap":{"type":"number","description":"Grout gap","minimum":0},"ioWastagePct":{"type":"number","description":"Wastage %","minimum":0,"maximum":30},"ioTilesPerBox":{"type":"number","description":"Tiles per box","minimum":1}},"required":["ioRoomLength","ioRoomWidth","ioTileLength","ioTileWidth"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string"},"ioSummary":{"type":"string","description":"Summary"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/fuel-economy-calculator":{"post":{"operationId":"run_fuel_economy_calculator","summary":"Fuel Economy Calculator","tags":["Calculators"],"description":"Convert fuel economy between MPG (US/UK), L/100km and km/L, then estimate trip fuel cost, compare two vehicles side by side, and project annual fuel spend with a CO₂ emissions estimate.\n\n[Try Fuel Economy Calculator in your browser →](https://iotools.cloud/tool/fuel-economy-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioFuelEconomy":{"type":"number","description":"Fuel Economy","minimum":0},"ioFuelEconomyUnit":{"enum":["mpg_us","mpg_uk","l100km","kml"],"description":"Unit"},"ioCurrency":{"type":"string","description":"Currency Symbol"},"ioTripDistance":{"type":"number","description":"Distance","minimum":0},"ioTripDistanceUnit":{"enum":["km","miles"],"description":"Distance Unit"},"ioTripFuelEconomy":{"type":"number","description":"Fuel Economy","minimum":0},"ioTripFuelEconomyUnit":{"enum":["mpg_us","mpg_uk","l100km","kml"],"description":"Economy Unit"},"ioTripFuelPrice":{"type":"number","description":"Fuel Price","minimum":0},"ioTripFuelPriceUnit":{"enum":["liter","gallon_us","gallon_uk"],"description":"Price Unit"},"ioCompareVehicle1":{"type":"number","description":"Vehicle 1 Economy","minimum":0},"ioCompareVehicle1Unit":{"enum":["mpg_us","mpg_uk","l100km","kml"],"description":"Vehicle 1 Unit"},"ioCompareVehicle2":{"type":"number","description":"Vehicle 2 Economy","minimum":0},"ioCompareVehicle2Unit":{"enum":["mpg_us","mpg_uk","l100km","kml"],"description":"Vehicle 2 Unit"},"ioCompareDistance":{"type":"number","description":"Distance","minimum":0},"ioCompareDistanceUnit":{"enum":["km","miles"],"description":"Distance Unit"},"ioCompareFuelPrice":{"type":"number","description":"Fuel Price (per Liter)","minimum":0},"ioAnnualMileage":{"type":"number","description":"Annual Distance","minimum":0},"ioAnnualMileageUnit":{"enum":["km","miles"],"description":"Distance Unit"},"ioAnnualFuelEconomy":{"type":"number","description":"Fuel Economy","minimum":0},"ioAnnualFuelEconomyUnit":{"enum":["mpg_us","mpg_uk","l100km","kml"],"description":"Economy Unit"},"ioAnnualFuelPrice":{"type":"number","description":"Fuel Price","minimum":0},"ioAnnualFuelPriceUnit":{"enum":["liter","gallon_us","gallon_uk"],"description":"Price Unit"},"ioAnnualFuelType":{"enum":["gasoline","diesel"],"description":"Fuel Type"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioConversionTable":{"type":"string","description":"Fuel Economy Conversion"},"ioTripTable":{"type":"string","description":"Trip Cost"},"ioCompareTable":{"type":"string","description":"Vehicle Comparison"},"ioAnnualTable":{"type":"string","description":"Annual Cost & CO₂ Estimate"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/gcd-lcm-calculator":{"post":{"operationId":"run_gcd_lcm_calculator","summary":"GCD & LCM Calculator","tags":["Calculators"],"description":"Find the greatest common divisor (GCD/HCF) and least common multiple (LCM) of a list of integers, with an optional step-by-step Euclidean-algorithm walkthrough.\n\n[Try GCD & LCM Calculator in your browser →](https://iotools.cloud/tool/gcd-lcm-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioNumbers":{"type":"string","description":"Numbers"},"ioShowSteps":{"type":"boolean","description":"Show calculation steps"}},"required":["ioNumbers"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioGcd":{"type":"string","description":"Greatest Common Divisor (GCD)"},"ioLcm":{"type":"string","description":"Least Common Multiple (LCM)"},"ioSteps":{"type":"string","description":"Calculation Steps"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/gear-ratio-calculator":{"post":{"operationId":"run_gear_ratio_calculator","summary":"Gear Ratio Calculator","tags":["Calculators"],"description":"Calculate gear ratio, output speed and output torque from driver and driven tooth counts. Handles compound multi-stage gear trains with a per-stage breakdown, applies a per-mesh efficiency to the torque, and reports the ratio as a decimal, as N:1 and as a speed change.\n\n[Try Gear Ratio Calculator in your browser →](https://iotools.cloud/tool/gear-ratio-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMode":{"enum":["single","compound"],"description":"Gear Train"},"ioDriverTeeth":{"type":"number","description":"Driver Teeth","minimum":1},"ioDrivenTeeth":{"type":"number","description":"Driven Teeth","minimum":1},"ioTrain":{"type":"string","description":"Stages"},"ioInputSpeed":{"type":"number","description":"Input Speed (rpm)","minimum":0},"ioInputTorque":{"type":"number","description":"Input Torque (N·m)","minimum":0},"ioEfficiency":{"type":"number","description":"Efficiency per Mesh (%)","minimum":50,"maximum":100}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string","description":"Gear Ratio & Output"},"ioStageTable":{"type":"string","description":"Stage by Stage"},"ioBreakdown":{"type":"string","description":"Formula & Breakdown"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/geo-distance-calculator":{"post":{"operationId":"run_geo_distance_calculator","summary":"Geo Distance Calculator","tags":["Calculators"],"description":"Calculate the great-circle distance between two latitude/longitude points in kilometers, miles, nautical miles, meters and feet, plus the initial compass bearing. Choose the Haversine (spherical) or Vincenty (WGS-84 ellipsoid) formula; coordinates accept decimal degrees or DMS.\n\n[Try Geo Distance Calculator in your browser →](https://iotools.cloud/tool/geo-distance-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioLatA":{"type":"string","description":"Point A — Latitude"},"ioLonA":{"type":"string","description":"Point A — Longitude"},"ioLatB":{"type":"string","description":"Point B — Latitude"},"ioLonB":{"type":"string","description":"Point B — Longitude"},"ioFormula":{"enum":["haversine","vincenty"],"description":"Formula"}},"required":["ioLatA","ioLonA","ioLatB","ioLonB"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Distance"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/gpa-calculator":{"post":{"operationId":"run_gpa_calculator","summary":"GPA Calculator","tags":["Calculators"],"description":"Calculate your weighted grade point average (GPA) from a list of courses. Enter each course's letter grade and credit hours, one per line, and get your GPA, total credit hours and total quality points on the standard 4.0 (or 4.3) scale.\n\n[Try GPA Calculator in your browser →](https://iotools.cloud/tool/gpa-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCourses":{"type":"string","description":"Courses"},"ioScale":{"enum":["4.0","4.3"],"description":"Grading Scale"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/gpu-vram-calculator":{"post":{"operationId":"run_gpu_vram_calculator","summary":"GPU VRAM Calculator","tags":["Calculators"],"description":"Estimate the GPU VRAM needed to run or train a transformer / large language model. Enter parameter count, precision (fp16, int8, int4…), context length and batch size to break down weights, KV cache, activations, gradients and optimizer state, and check which GPUs it fits on.\n\n[Try GPU VRAM Calculator in your browser →](https://iotools.cloud/tool/gpu-vram-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioModelPreset":{"enum":["custom","gpt2-124m","llama-3-2-1b","llama-3-2-3b","mistral-7b","llama-3-8b","llama-2-13b","mixtral-8x7b","llama-3-70b","llama-3-1-405b"],"description":"Model Preset"},"ioParams":{"type":"number","description":"Parameters (B)","minimum":0.001,"maximum":2000},"ioHiddenDim":{"type":"number","description":"Hidden Dim","minimum":64,"maximum":65536},"ioLayers":{"type":"number","description":"Layers","minimum":1,"maximum":256},"ioMode":{"enum":["inference","training"],"description":"Workload"},"ioPrecision":{"enum":["fp32","fp16","int8","int4"],"description":"Precision"},"ioBatchSize":{"type":"number","description":"Batch Size","minimum":1,"maximum":4096},"ioSeqLen":{"type":"number","description":"Sequence Length","minimum":1,"maximum":1048576},"ioOptimizer":{"enum":["adam","sgd-momentum","sgd"],"description":"Optimizer"},"ioMixedPrecision":{"type":"boolean","description":"Mixed precision (fp32 master weights + grads)"},"ioGradCheckpoint":{"type":"boolean","description":"Gradient checkpointing (recompute activations)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioBreakdown":{"type":"string","description":"Memory Breakdown"},"ioGpuFit":{"type":"string","description":"GPU Fit Check"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/heart-rate-zone-calculator":{"post":{"operationId":"run_heart_rate_zone_calculator","summary":"Heart Rate Zone Calculator","tags":["Calculators"],"description":"Calculate your five heart rate training zones (Zone 1 to Zone 5) from your age, using the Haskell-Fox, Tanaka or Gellish maximum-heart-rate formula, plus the optional Karvonen heart-rate-reserve method for personalized zones from your resting heart rate.\n\n[Try Heart Rate Zone Calculator in your browser →](https://iotools.cloud/tool/heart-rate-zone-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioAge":{"type":"number","description":"Age (years)","minimum":1,"maximum":120},"ioMaxHrFormula":{"enum":["haskell","tanaka","gellish","manual"],"description":"Max HR formula"},"ioMaxHrManual":{"type":"number","description":"Manual max HR (BPM)","minimum":60,"maximum":250},"ioUseKarvonen":{"type":"boolean","description":"Use Karvonen method (more personalized)"},"ioRestingHr":{"type":"number","description":"Resting HR (BPM)","minimum":30,"maximum":120},"ioTargetIntensity":{"type":"number","description":"Target intensity (%)","minimum":1,"maximum":100}},"required":["ioAge"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Summary"},"ioZones":{"type":"string","description":"Training Zones"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/heat-index-wind-chill-calculator":{"post":{"operationId":"run_heat_index_wind_chill_calculator","summary":"Heat Index & Wind Chill Calculator","tags":["Calculators"],"description":"Calculate the 'feels-like' temperature from air temperature plus humidity (NWS heat index) or plus wind speed (NWS wind chill), in °F or °C, with a safety category and guidance.\n\n[Try Heat Index & Wind Chill Calculator in your browser →](https://iotools.cloud/tool/heat-index-wind-chill-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMode":{"enum":["heat","wind"],"description":"Calculation"},"ioTempUnit":{"enum":["f","c"],"description":"Temperature unit"},"ioTemperature":{"type":"number","description":"Air temperature"},"ioHumidity":{"type":"number","description":"Relative humidity (%)","minimum":0,"maximum":100},"ioWindUnit":{"enum":["mph","kph","mps","kn"],"description":"Wind speed unit"},"ioWindSpeed":{"type":"number","description":"Wind speed","minimum":0}},"required":["ioTemperature","ioHumidity","ioWindSpeed"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string","description":"Results"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/hours-calculator":{"post":{"operationId":"run_hours_calculator","summary":"Hours Calculator","tags":["Calculators"],"description":"Calculate the duration between a start time and an end time — as hours and minutes, total minutes, and decimal hours. Handles overnight shifts that cross midnight.\n\n[Try Hours Calculator in your browser →](https://iotools.cloud/tool/hours-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioStartTime":{"type":"string","description":"Start time"},"ioEndTime":{"type":"string","description":"End time"},"ioOvernight":{"type":"boolean","description":"End time is on the next day (overnight shift)"}},"required":["ioStartTime","ioEndTime"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioDuration":{"type":"string","description":"Duration"},"ioTotalMinutes":{"type":"string","description":"Total minutes"},"ioDecimalHours":{"type":"string","description":"Decimal hours"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ideal-body-weight-calculator":{"post":{"operationId":"run_ideal_body_weight_calculator","summary":"Ideal Body Weight Calculator","tags":["Calculators"],"description":"Calculate ideal body weight (IBW) from height and sex using the Devine, Hamwi, Robinson, Miller and Peterson formulas side by side, with body-frame adjustment, a range and midpoint, and a healthy BMI weight range.\n\n[Try Ideal Body Weight Calculator in your browser →](https://iotools.cloud/tool/ideal-body-weight-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSex":{"enum":["male","female"],"description":"Sex"},"ioUnits":{"enum":["metric","imperial"],"description":"Units"},"ioHeight":{"type":"number","description":"Height","minimum":0.1},"ioFrame":{"enum":["small","medium","large"],"description":"Body frame"}},"required":["ioHeight"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string"},"ioRange":{"type":"string","description":"Range across formulas"},"ioMidpoint":{"type":"string","description":"Midpoint"},"ioNotes":{"type":"string","description":"Notes"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/image-print-size-calculator":{"post":{"operationId":"run_image_print_size_calculator","summary":"Image Print Size Calculator","tags":["Calculators"],"description":"Work out how big an image prints at a given DPI (print size = pixels / DPI, in inches, cm and mm), or reverse it to find the pixel dimensions needed for a target print size. Exact math from raw pixels and DPI.\n\n[Try Image Print Size Calculator in your browser →](https://iotools.cloud/tool/image-print-size-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMode":{"enum":["pixels-to-print","print-to-pixels"],"description":"Mode"},"ioWidthPx":{"type":"number","description":"Image Width (px)","minimum":1},"ioHeightPx":{"type":"number","description":"Image Height (px)","minimum":1},"ioPrintWidth":{"type":"number","description":"Print Width","minimum":0.01},"ioPrintHeight":{"type":"number","description":"Print Height","minimum":0.01},"ioPrintUnit":{"enum":["in","cm","mm"],"description":"Print Unit"},"ioDpi":{"type":"number","description":"DPI / PPI","minimum":1,"maximum":9999}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/inflation-calculator":{"post":{"operationId":"run_inflation_calculator","summary":"Inflation Calculator","tags":["Calculators"],"description":"Calculate how inflation changes the value of money over time. Enter an amount, a start and end year, and an average annual inflation rate to see the equivalent value, cumulative inflation and lost purchasing power, with a year-by-year breakdown. Works backward in time and models deflation with a negative rate.\n\n[Try Inflation Calculator in your browser →](https://iotools.cloud/tool/inflation-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioAmount":{"type":"number","description":"Amount ($)","minimum":0.01},"ioStartYear":{"type":"number","description":"Start Year","minimum":1900,"maximum":2100},"ioEndYear":{"type":"number","description":"End Year","minimum":1900,"maximum":2100},"ioInflationRate":{"type":"number","description":"Annual Inflation Rate (%)","minimum":-50,"maximum":1000}},"required":["ioAmount","ioStartYear","ioEndYear","ioInflationRate"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Result"},"ioTable":{"type":"string","description":"Year-by-Year Breakdown"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/invoice-total-calculator":{"post":{"operationId":"run_invoice_total_calculator","summary":"Invoice Total Calculator","tags":["Calculators"],"description":"Calculate an invoice's grand total from a subtotal, discount, tax and shipping. Choose whether the discount applies before or after tax to see exactly how the total is built up.\n\n[Try Invoice Total Calculator in your browser →](https://iotools.cloud/tool/invoice-total-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSubtotal":{"type":"number","description":"Subtotal ($)","minimum":0,"maximum":999999999},"ioDiscountPercent":{"type":"number","description":"Discount (%)","minimum":0,"maximum":100},"ioDiscountTiming":{"enum":["before","after"],"description":"Discount Applied"},"ioTaxPercent":{"type":"number","description":"Tax (%)","minimum":0,"maximum":100},"ioShipping":{"type":"number","description":"Shipping / Handling ($)","minimum":0,"maximum":999999999}},"required":["ioSubtotal"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Invoice Breakdown"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ipv4-subnet-calculator":{"post":{"operationId":"run_ipv4_subnet_calculator","summary":"IPv4 Subnet Calculator","tags":["Calculators"],"description":"Calculate an IPv4 subnet from an address and CIDR prefix (or dotted subnet mask). Returns the network and broadcast addresses, subnet and wildcard masks, CIDR notation, usable host range, total addresses and usable host count — with correct /31 point-to-point and /32 single-host handling.\n\n[Try IPv4 Subnet Calculator in your browser →](https://iotools.cloud/tool/ipv4-subnet-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioAddress":{"type":"string","description":"IPv4 Address"},"ioPrefix":{"enum":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32"],"description":"Network Size (CIDR prefix / subnet mask)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Subnet Details"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ipv6-subnet-calculator":{"post":{"operationId":"run_ipv6_subnet_calculator","summary":"IPv6 Subnet Calculator","tags":["Calculators"],"description":"Calculate an IPv6 subnet from an address and prefix length: the network (prefix) address, first and last addresses, CIDR notation, and the exact total number of addresses — computed with BigInt so even a /0 count is precise.\n\n[Try IPv6 Subnet Calculator in your browser →](https://iotools.cloud/tool/ipv6-subnet-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioAddress":{"type":"string","description":"IPv6 Address"},"ioPrefix":{"type":"number","description":"Prefix length (/n)","minimum":0,"maximum":128}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioTable":{"type":"string","description":"Subnet details"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/irregular-polygon-area-calculator":{"post":{"operationId":"run_irregular_polygon_area_calculator","summary":"Irregular Polygon Area Calculator","tags":["Calculators"],"description":"Calculate the area and perimeter of any irregular polygon from its (x, y) vertex coordinates using the Shoelace formula. Enter one vertex per line as an x,y pair — supports any number of vertices (3+).\n\n[Try Irregular Polygon Area Calculator in your browser →](https://iotools.cloud/tool/irregular-polygon-area-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioVertices":{"type":"string","description":"Vertex Coordinates"}},"required":["ioVertices"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/iso-week-number-calculator":{"post":{"operationId":"run_iso_week_number_calculator","summary":"ISO Week Number Calculator","tags":["Calculators"],"description":"Find the ISO 8601 week number (1–53) and ISO week-year for any calendar date, plus the Monday–Sunday span of that week. Correctly handles year-boundary dates where the ISO week-year differs from the calendar year.\n\n[Try ISO Week Number Calculator in your browser →](https://iotools.cloud/tool/iso-week-number-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioDate":{"type":"string","description":"Date"}},"required":["ioDate"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/led-resistor-value-calculator":{"post":{"operationId":"run_led_resistor_value_calculator","summary":"LED Resistor Value Calculator","tags":["Calculators"],"description":"Calculate the current-limiting resistor for an LED from supply voltage, LED forward voltage, and forward current. Returns the exact resistance, the nearest standard E12/E24 value (rounded up), power dissipation, and a safe resistor wattage rating. Supports LED colour presets and multiple LEDs in series or parallel.\n\n[Try LED Resistor Value Calculator in your browser →](https://iotools.cloud/tool/led-resistor-value-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSupplyVoltage":{"type":"number","description":"Supply Voltage (V)","minimum":0.01},"ioLedPreset":{"enum":["custom","red","orange","yellow","green","blue","white","uv","ir"],"description":"LED Colour Preset"},"ioForwardVoltage":{"type":"number","description":"LED Forward Voltage (Vf)","minimum":0},"ioForwardCurrent":{"type":"number","description":"LED Forward Current","minimum":0.001},"ioCurrentUnit":{"enum":["mA","A"],"description":"Current Unit"},"ioLedCount":{"type":"number","description":"Number of LEDs","minimum":1,"maximum":20},"ioConfiguration":{"enum":["series","parallel"],"description":"Configuration"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioRecommended":{"type":"string","description":"Recommended Resistor"},"ioResultTable":{"type":"string","description":"Breakdown"},"ioNotes":{"type":"string","description":"Notes & Warnings"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/llm-api-cost-calculator":{"post":{"operationId":"run_llm_api_cost_calculator","summary":"LLM API Cost Calculator","tags":["Calculators"],"description":"Estimate the USD cost of an LLM API workload from input/output token counts and daily call volume, using published per-model list prices — with per-call, per-day, per-month and per-year projections and a side-by-side model comparison.\n\n[Try LLM API Cost Calculator in your browser →](https://iotools.cloud/tool/llm-api-cost-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputTokens":{"type":"number","description":"Input Tokens","minimum":0,"maximum":10000000},"ioOutputTokens":{"type":"number","description":"Output Tokens","minimum":0,"maximum":10000000},"ioCallsPerDay":{"type":"number","description":"Calls / Day","minimum":0,"maximum":10000000},"ioModel":{"enum":["gpt-4o","gpt-4o-mini","gpt-4-turbo","gpt-4","gpt-3.5-turbo","o1","o1-mini","claude-3-5-sonnet","claude-3-opus","claude-3-haiku","gemini-1-5-pro","gemini-1-5-flash","llama-3-1-405b","llama-3-1-70b","llama-3-1-8b"],"description":"Model"},"ioPricingMode":{"enum":["realtime","batch"],"description":"Pricing Mode"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioBreakdown":{"type":"string","description":"Cost breakdown"},"ioComparison":{"type":"string","description":"Model comparison"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/loan-affordability-calculator":{"post":{"operationId":"run_loan_affordability_calculator","summary":"Loan Affordability Calculator","tags":["Calculators"],"description":"Estimate how large a loan you can afford. Enter your gross monthly income, existing debts, interest rate and term, and get the maximum loan amount, monthly payment and purchase price your debt-to-income (DTI) limits allow.\n\n[Try Loan Affordability Calculator in your browser →](https://iotools.cloud/tool/loan-affordability-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioGrossIncome":{"type":"number","description":"Monthly Gross Income ($)","minimum":0,"maximum":99999999},"ioExistingDebts":{"type":"number","description":"Existing Monthly Debts ($)","minimum":0,"maximum":99999999},"ioInterestRate":{"type":"number","description":"Annual Interest Rate (%)","minimum":0,"maximum":50},"ioLoanTerm":{"type":"number","description":"Loan Term (years)","minimum":1,"maximum":50},"ioDownPayment":{"type":"number","description":"Down Payment ($)","minimum":0,"maximum":99999999},"ioLoanType":{"enum":["mortgage","personal","auto","custom"],"description":"DTI Preset"},"ioFrontEndDti":{"type":"number","description":"Front-End DTI Limit (%)","minimum":10,"maximum":60},"ioBackEndDti":{"type":"number","description":"Back-End DTI Limit (%)","minimum":10,"maximum":70}},"required":["ioGrossIncome","ioInterestRate","ioLoanTerm"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/loan-to-value-ratio-calculator":{"post":{"operationId":"run_loan_to_value_ratio_calculator","summary":"Loan-to-Value (LTV) Ratio Calculator","tags":["Calculators"],"description":"Calculate a loan-to-value (LTV) ratio from a loan amount and property value — LTV = loan ÷ value × 100. Shows down payment percent, home equity, PMI-required status (above 80% LTV) and a lender risk tier.\n\n[Try Loan-to-Value (LTV) Ratio Calculator in your browser →](https://iotools.cloud/tool/loan-to-value-ratio-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioLoanAmount":{"type":"number","description":"Loan amount","minimum":0},"ioPropertyValue":{"type":"number","description":"Property value","minimum":0}},"required":["ioLoanAmount","ioPropertyValue"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/macronutrient-calculator":{"post":{"operationId":"run_macronutrient_calculator","summary":"Macronutrient Calculator","tags":["Calculators"],"description":"Split a daily calorie target into grams and calories of protein, carbs and fat using a diet preset (balanced, high-protein, keto, endurance or zone) or a custom macro ratio, with an optional per-meal breakdown.\n\n[Try Macronutrient Calculator in your browser →](https://iotools.cloud/tool/macronutrient-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCalories":{"type":"number","description":"Daily calorie goal","minimum":800,"maximum":8000},"ioPreset":{"enum":["balanced","highProtein","keto","endurance","zone","custom"],"description":"Diet preset"},"ioProteinPercent":{"type":"number","description":"Protein %","minimum":0,"maximum":100},"ioCarbsPercent":{"type":"number","description":"Carbs %","minimum":0,"maximum":100},"ioFatPercent":{"type":"number","description":"Fat %","minimum":0,"maximum":100},"ioMeals":{"type":"number","description":"Meals per day","minimum":1,"maximum":8}},"required":["ioCalories"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioDailyTable":{"type":"string","description":"Daily Macronutrients"},"ioMealTable":{"type":"string","description":"Per-Meal Breakdown"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/machining-speed-feed-calculator":{"post":{"operationId":"run_machining_speed_feed_calculator","summary":"Machining Speed & Feed Calculator","tags":["Calculators"],"description":"Calculate spindle speed (RPM), feed rate, feed per revolution and material removal rate for milling, in metric or imperial units — with starting cutting speeds and chip loads built in for 13 workpiece materials.\n\n[Try Machining Speed & Feed Calculator in your browser →](https://iotools.cloud/tool/machining-speed-feed-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioUnitSystem":{"enum":["metric","imperial"],"description":"Unit system"},"ioDiameter":{"type":"number","description":"Tool diameter","minimum":0},"ioTeeth":{"type":"number","description":"Number of teeth / flutes (Z)","minimum":1},"ioMaterial":{"enum":["aluminium","brass","bronze","copper","cast-iron","mild-steel","alloy-steel","stainless-304","tool-steel","titanium","inconel","plastic","wood"],"description":"Workpiece material"},"ioToolMaterial":{"enum":["carbide","hss"],"description":"Tool material"},"ioCuttingSpeed":{"type":"number","description":"Cutting speed Vc (optional)","minimum":0},"ioFeedPerTooth":{"type":"number","description":"Feed per tooth fz (optional)","minimum":0},"ioDepthOfCut":{"type":"number","description":"Axial depth of cut ap (optional)","minimum":0},"ioWidthOfCut":{"type":"number","description":"Radial width of cut ae (optional)","minimum":0}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/math-evaluator":{"post":{"operationId":"run_math_evaluator","summary":"Math Evaluator","tags":["Calculators"],"description":"Evaluate one or more mathematical expressions, one per line. Supports arithmetic, functions (sqrt, sin, cos, log), units (deg), and matrices via mathjs. Each line is evaluated independently and errors are reported per line.\n\n[Try Math Evaluator in your browser →](https://iotools.cloud/tool/math-evaluator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMathExpression":{"type":"string","description":"Math Expression"}},"required":["ioMathExpression"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioMathResult":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/matrix-calculator":{"post":{"operationId":"run_matrix_calculator","summary":"Matrix Calculator","tags":["Calculators"],"description":"Add, subtract, multiply, transpose, and find the determinant or inverse of 2×2 and 3×3 matrices — with exact fraction (rational) results or decimals rounded to 6 places.\n\n[Try Matrix Calculator in your browser →](https://iotools.cloud/tool/matrix-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMatrixSize":{"enum":["2","3"],"description":"Matrix Size"},"ioOperation":{"enum":["add","subtract","multiply","transpose","determinant","inverse"],"description":"Operation"},"ioOutputFormat":{"enum":["fraction","decimal"],"description":"Output As"},"ioA11":{"type":"string","description":"A[1,1]"},"ioA12":{"type":"string","description":"A[1,2]"},"ioA13":{"type":"string","description":"A[1,3]"},"ioA21":{"type":"string","description":"A[2,1]"},"ioA22":{"type":"string","description":"A[2,2]"},"ioA23":{"type":"string","description":"A[2,3]"},"ioA31":{"type":"string","description":"A[3,1]"},"ioA32":{"type":"string","description":"A[3,2]"},"ioA33":{"type":"string","description":"A[3,3]"},"ioB11":{"type":"string","description":"B[1,1]"},"ioB12":{"type":"string","description":"B[1,2]"},"ioB13":{"type":"string","description":"B[1,3]"},"ioB21":{"type":"string","description":"B[2,1]"},"ioB22":{"type":"string","description":"B[2,2]"},"ioB23":{"type":"string","description":"B[2,3]"},"ioB31":{"type":"string","description":"B[3,1]"},"ioB32":{"type":"string","description":"B[3,2]"},"ioB33":{"type":"string","description":"B[3,3]"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Result"},"ioSteps":{"type":"string","description":"Step-by-step Working"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/meeting-cost-calculator":{"post":{"operationId":"run_meeting_cost_calculator","summary":"Meeting Cost Calculator","tags":["Calculators"],"description":"Calculate the true cost of a meeting from the number of attendees, their average hourly rate, and the meeting length. Shows the total cost plus per-minute and per-hour burn rates and annual projections, in your chosen currency.\n\n[Try Meeting Cost Calculator in your browser →](https://iotools.cloud/tool/meeting-cost-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioAttendees":{"type":"number","description":"Attendees","minimum":1,"maximum":1000},"ioHourlyRate":{"type":"number","description":"Avg Hourly Rate","minimum":0.01},"ioCurrency":{"enum":["USD","EUR","GBP","CAD","AUD","JPY","INR"],"description":"Currency"},"ioDurationMinutes":{"type":"number","description":"Duration (minutes)","minimum":1,"maximum":1440}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResultTable":{"type":"string","description":"Meeting Cost Breakdown"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/modulo-calculator":{"post":{"operationId":"run_modulo_calculator","summary":"Modulo Calculator","tags":["Calculators"],"description":"Compute modular arithmetic on integers: simple modulo (a mod n), modular addition, subtraction, multiplication, fast modular exponentiation (a^b mod n), and congruence checks (a ≡ b mod n), with a step-by-step breakdown. Uses the true mathematical modulo (always non-negative for a positive modulus).\n\n[Try Modulo Calculator in your browser →](https://iotools.cloud/tool/modulo-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioOperation":{"enum":["mod","add","sub","mul","exp","cong"],"description":"Operation"},"ioValueA":{"type":"string","description":"a"},"ioValueB":{"type":"string","description":"b"},"ioModulus":{"type":"string","description":"n (modulus)"}},"required":["ioValueA","ioValueB","ioModulus"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Result"},"ioTruncated":{"type":"string","description":"Truncated Division (JS %)"},"ioEuclidean":{"type":"string","description":"Euclidean Modulo (always ≥ 0)"},"ioSteps":{"type":"string","description":"Step-by-Step Breakdown"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/molar-mass-calculator":{"post":{"operationId":"run_molar_mass_calculator","summary":"Molar Mass Calculator","tags":["Calculators"],"description":"Calculate the molar mass (molecular weight) of any chemical formula. Handles element symbols, parenthesized groups with multipliers like Ca3(PO4)2, and hydrates like CuSO4·5H2O, with a per-element mass breakdown. Uses IUPAC 2021 standard atomic weights.\n\n[Try Molar Mass Calculator in your browser →](https://iotools.cloud/tool/molar-mass-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioFormula":{"type":"string","description":"Chemical Formula"},"ioUnit":{"enum":["g/mol","kg/mol","amu"],"description":"Output Unit"},"ioPrecision":{"type":"number","description":"Decimal Places","minimum":0,"maximum":8}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioMolarMass":{"type":"string","description":"Molar Mass"},"ioBreakdown":{"type":"string","description":"Per-element breakdown (g/mol)"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/moon-phase-calculator":{"post":{"operationId":"run_moon_phase_calculator","summary":"Moon Phase Calculator","tags":["Calculators"],"description":"Find the moon phase for any date: phase name (New Moon, First Quarter, Full Moon…), illumination percentage, moon age in days, and the next new and full moons — with a rendered moon-disc that flips for the Southern Hemisphere. Runs entirely in your browser.\n\n[Try Moon Phase Calculator in your browser →](https://iotools.cloud/tool/moon-phase-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioDate":{"type":"string","description":"Date"},"ioHemisphere":{"enum":["north","south"],"description":"View From"}},"required":["ioDate"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioMoonSvg":{"type":"string","description":"Moon disc (SVG)"},"ioDetails":{"type":"string","description":"Phase details"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/motor-full-load-current-calculator":{"post":{"operationId":"run_motor_full_load_current_calculator","summary":"Motor Full Load Current Calculator","tags":["Calculators"],"description":"Calculate the full-load (running) current of a single-phase, three-phase or DC motor from its nameplate kW or horsepower rating, voltage, power factor and efficiency. Also reports kVA, kVAR, conductor sizing current and typical starting current.\n\n[Try Motor Full Load Current Calculator in your browser →](https://iotools.cloud/tool/motor-full-load-current-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioPower":{"type":"number","description":"Motor Rating (shaft output)","minimum":0},"ioPowerUnit":{"enum":["kw","hp"],"description":"Rating Unit"},"ioVoltage":{"type":"number","description":"Line Voltage (V)","minimum":0},"ioPhase":{"enum":["three","single","dc"],"description":"Supply"},"ioPowerFactor":{"type":"number","description":"Power Factor","minimum":0.1,"maximum":1},"ioEfficiency":{"type":"number","description":"Efficiency (%)","minimum":10,"maximum":100}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/multi-base-arithmetic-calculator":{"post":{"operationId":"run_multi_base_arithmetic_calculator","summary":"Multi-Base Arithmetic Calculator","tags":["Calculators"],"description":"Add, subtract, multiply, divide or take the modulo of two numbers written in binary, octal, decimal or hexadecimal — bases auto-detected from a 0x/0b/0o prefix. Uses BigInt for arbitrary precision and shows the result in all four bases at once, with fixed-width overflow reporting and step-by-step working.\n\n[Try Multi-Base Arithmetic Calculator in your browser →](https://iotools.cloud/tool/multi-base-arithmetic-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioFirstNumber":{"type":"string","description":"First number"},"ioOperation":{"enum":["add","sub","mul","div","mod"],"description":"Operation"},"ioSecondNumber":{"type":"string","description":"Second number"},"ioBitWidth":{"enum":["0","8","16","32","64"],"description":"Bit width"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResultTable":{"type":"string","description":"Result"},"ioStatus":{"type":"string","description":"Overflow status"},"ioWorkingSteps":{"type":"string","description":"Working steps"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/network-latency-calculator":{"post":{"operationId":"run_network_latency_calculator","summary":"Network Latency Calculator","tags":["Calculators"],"description":"Analyze ping results to measure network latency. Paste raw ping output or a list of round-trip times to get mean, median, min, max, jitter, standard deviation, packet loss and an overall connection quality grade.\n\n[Try Network Latency Calculator in your browser →](https://iotools.cloud/tool/network-latency-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioPingInput":{"type":"string","description":"Ping Data"},"ioPacketsSent":{"type":"number","description":"Packets Sent","minimum":0},"ioPacketsReceived":{"type":"number","description":"Packets Received","minimum":0}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/network-mask-calculator":{"post":{"operationId":"run_network_mask_calculator","summary":"Network Mask Calculator","tags":["Calculators"],"description":"Calculate an IPv4 network from CIDR notation (192.168.1.0/24) or an address plus a dotted subnet mask (192.168.1.0 255.255.255.0). Returns the network and broadcast addresses, subnet and wildcard masks, CIDR notation, usable host range, total and usable host counts, the IP class and the binary subnet mask.\n\n[Try Network Mask Calculator in your browser →](https://iotools.cloud/tool/network-mask-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInput":{"type":"string","description":"IP / CIDR or IP + Subnet Mask"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Network Details"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/net-worth-calculator":{"post":{"operationId":"run_net_worth_calculator","summary":"Net Worth Calculator","tags":["Calculators"],"description":"Calculate your net worth from categorized assets and liabilities. Enter cash, investments, property, vehicles and debts to get your total assets, total liabilities, net worth and a visual breakdown.\n\n[Try Net Worth Calculator in your browser →](https://iotools.cloud/tool/net-worth-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCash":{"type":"number","description":"Cash & Savings","minimum":0,"maximum":999999999999},"ioInvestments":{"type":"number","description":"Investments & Retirement","minimum":0,"maximum":999999999999},"ioRealEstate":{"type":"number","description":"Real Estate","minimum":0,"maximum":999999999999},"ioVehicles":{"type":"number","description":"Vehicles","minimum":0,"maximum":999999999999},"ioOtherAssets":{"type":"number","description":"Other Assets","minimum":0,"maximum":999999999999},"ioMortgage":{"type":"number","description":"Mortgage","minimum":0,"maximum":999999999999},"ioAutoLoans":{"type":"number","description":"Car Loans","minimum":0,"maximum":999999999999},"ioStudentLoans":{"type":"number","description":"Student Loans","minimum":0,"maximum":999999999999},"ioCreditCards":{"type":"number","description":"Credit Card Debt","minimum":0,"maximum":999999999999},"ioOtherDebts":{"type":"number","description":"Other Debts","minimum":0,"maximum":999999999999},"ioCurrency":{"enum":["USD","EUR","GBP","JPY","INR","CAD","AUD","CHF","CNY","BRL","MXN","SGD","ZAR","NONE"],"description":"Currency"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Summary"},"ioBreakdown":{"type":"string","description":"Category breakdown"},"ioChartSvg":{"type":"string","description":"Chart (SVG source)"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/npv-irr-calculator":{"post":{"operationId":"run_npv_irr_calculator","summary":"NPV & IRR Calculator","tags":["Calculators"],"description":"Calculate Net Present Value (NPV) and Internal Rate of Return (IRR) from an initial investment and a series of periodic cash flows. Also reports payback period and an accept/reject verdict.\n\n[Try NPV & IRR Calculator in your browser →](https://iotools.cloud/tool/npv-irr-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInitialInvestment":{"type":"number","description":"Initial Investment ($)","minimum":0},"ioCashFlows":{"type":"string","description":"Cash Flows (one per year)"},"ioDiscountRate":{"type":"number","description":"Discount Rate (%)","minimum":0,"maximum":30}},"required":["ioInitialInvestment","ioCashFlows"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ohms-law-calculator":{"post":{"operationId":"run_ohms_law_calculator","summary":"Ohm's Law Calculator","tags":["Calculators"],"description":"Solve Ohm's Law and the power formulas for Voltage, Current, Resistance and Power. Pick which two you know (V+I, V+R, V+P, I+R, I+P, or R+P) and it computes the other two, with the formulas and calculation steps shown.\n\n[Try Ohm's Law Calculator in your browser →](https://iotools.cloud/tool/ohms-law-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioKnownPair":{"enum":["vi","vr","vp","ir","ip","rp"],"description":"Known Values"},"ioVoltage":{"type":"number","description":"Voltage (V)","minimum":0},"ioCurrent":{"type":"number","description":"Current (I)","minimum":0},"ioResistance":{"type":"number","description":"Resistance (R)","minimum":0},"ioPower":{"type":"number","description":"Power (P)","minimum":0}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResultTable":{"type":"string","description":"Results"},"ioFormulas":{"type":"string","description":"Formulas & Steps"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/one-rep-max-calculator":{"post":{"operationId":"run_one_rep_max_calculator","summary":"One-Rep Max Calculator","tags":["Calculators"],"description":"Estimate your one-rep max (1RM) from a submaximal weight and rep count, averaged across five formulas (Epley, Brzycki, Lombardi, O'Conner, Wathan). Includes a percentage-of-1RM training chart and a warm-up set progression.\n\n[Try One-Rep Max Calculator in your browser →](https://iotools.cloud/tool/one-rep-max-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioUnit":{"enum":["kg","lb"],"description":"Unit"},"ioWeight":{"type":"number","description":"Weight Lifted","minimum":1,"maximum":2000},"ioReps":{"type":"number","description":"Reps Performed","minimum":1,"maximum":15}},"required":["ioWeight","ioReps"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioFormulaTable":{"type":"string","description":"Estimated 1-Rep Max by Formula"},"ioPercentTable":{"type":"string","description":"Percentage of 1RM Rep Chart"},"ioWarmupTable":{"type":"string","description":"Warm-up Set Progression"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/paint-coverage-calculator":{"post":{"operationId":"run_paint_coverage_calculator","summary":"Paint Coverage Calculator","tags":["Calculators"],"description":"Estimate how much paint you need to cover a room's walls (and optionally ceiling) — accounting for door/window deductions, number of coats and a waste allowance — in liters or gallons, plus how many cans to buy.\n\n[Try Paint Coverage Calculator in your browser →](https://iotools.cloud/tool/paint-coverage-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioUnitSystem":{"enum":["metric","imperial"],"description":"Unit system"},"ioRoomLength":{"type":"number","description":"Room length","minimum":0},"ioRoomWidth":{"type":"number","description":"Room width","minimum":0},"ioRoomHeight":{"type":"number","description":"Ceiling height","minimum":0},"ioIncludeCeiling":{"type":"boolean","description":"Include ceiling in paintable area"},"ioDoorCount":{"type":"number","description":"Doors","minimum":0,"maximum":10},"ioWindowCount":{"type":"number","description":"Windows","minimum":0,"maximum":10},"ioFinishPreset":{"enum":["matte","eggshell","satin","semigloss","gloss","primer","custom"],"description":"Finish"},"ioCoverageRate":{"type":"number","description":"Custom coverage rate","minimum":0},"ioCoats":{"type":"number","description":"Coats","minimum":1,"maximum":10},"ioCanSize":{"type":"number","description":"Can size","minimum":0},"ioWasteFactor":{"type":"number","description":"Waste factor %","minimum":0,"maximum":30}},"required":["ioRoomLength","ioRoomWidth","ioRoomHeight"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string"},"ioSummary":{"type":"string","description":"Summary"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/password-hash-crack-time-estimator":{"post":{"operationId":"run_password_hash_crack_time_estimator","summary":"Password Hash Crack Time Estimator","tags":["Calculators"],"description":"Estimate how long it would take an attacker to brute-force a password, based on its character-set entropy and a chosen attacker speed (online rate-limited, online unrestricted, offline slow hash, or offline fast hash). Runs entirely in your browser — the password is never transmitted.\n\n[Try Password Hash Crack Time Estimator in your browser →](https://iotools.cloud/tool/password-hash-crack-time-estimator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioPassword":{"type":"string","description":"Password to test"},"ioScenario":{"enum":["online_throttled","online_unthrottled","offline_slow","offline_fast"],"description":"Attacker scenario"}},"required":["ioPassword"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCharset":{"type":"string","description":"Detected character set"},"ioEntropy":{"type":"string","description":"Entropy"},"ioCrackTime":{"type":"string","description":"Estimated average crack time"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/payroll-take-home-calculator":{"post":{"operationId":"run_payroll_take_home_calculator","summary":"Payroll Take-Home Calculator","tags":["Calculators"],"description":"Estimate net take-home pay from a gross annual salary, income tax rate, social contribution rate and fixed deductions. See the breakdown across annual, monthly, bi-weekly and weekly pay periods in one table.\n\n[Try Payroll Take-Home Calculator in your browser →](https://iotools.cloud/tool/payroll-take-home-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioGrossAnnualSalary":{"type":"number","description":"Gross Annual Salary ($)","minimum":0,"maximum":999999999},"ioIncomeTaxPercent":{"type":"number","description":"Income Tax (%)","minimum":0,"maximum":100},"ioSocialContributionPercent":{"type":"number","description":"Social Contribution (%)","minimum":0,"maximum":100},"ioFixedDeductions":{"type":"number","description":"Fixed Deductions per Year ($)","minimum":0,"maximum":999999999}},"required":["ioGrossAnnualSalary"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Take-Home Pay Breakdown"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/percent-off-calculator":{"post":{"operationId":"run_percent_off_calculator","summary":"Percent Off Calculator","tags":["Calculators"],"description":"Calculate the sale price and amount saved after a percentage discount. Enter the original price and the percent off to see the final price, your savings, and the percentage you pay.\n\n[Try Percent Off Calculator in your browser →](https://iotools.cloud/tool/percent-off-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioOriginalPrice":{"type":"number","description":"Original Price","minimum":0},"ioDiscountPercentage":{"type":"number","description":"Discount %","minimum":0,"maximum":100}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/permutation-combination-calculator":{"post":{"operationId":"run_permutation_combination_calculator","summary":"Permutation & Combination Calculator","tags":["Calculators"],"description":"Calculate nPr (permutations) and nCr (combinations) from n and r — how many ways to arrange or choose items, with exact factorial values, computed precisely for large n using arbitrary-precision arithmetic.\n\n[Try Permutation & Combination Calculator in your browser →](https://iotools.cloud/tool/permutation-combination-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioN":{"type":"number","description":"n (total items)","minimum":0,"maximum":1000},"ioR":{"type":"number","description":"r (items chosen)","minimum":0,"maximum":1000}},"required":["ioN","ioR"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/pet-age-calculator":{"post":{"operationId":"run_pet_age_calculator","summary":"Pet Age Calculator","tags":["Calculators"],"description":"Convert your dog's or cat's age into human-equivalent years using modern non-linear veterinary formulas — the 2019 epigenetic-clock formula (breed-size adjusted) for dogs and the 15-9-4 rule for cats. Not the old \"multiply by 7\" myth.\n\n[Try Pet Age Calculator in your browser →](https://iotools.cloud/tool/pet-age-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioPetAge":{"type":"number","description":"Pet Age (years)","minimum":0,"maximum":30},"ioPetSpecies":{"enum":["dog","cat"],"description":"Species"},"ioDogSize":{"enum":["small","medium","large","giant"],"description":"Dog Size"}},"required":["ioPetAge"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Human-Equivalent Age"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/pet-food-portion-calculator":{"post":{"operationId":"run_pet_food_portion_calculator","summary":"Pet Food Portion Calculator","tags":["Calculators"],"description":"Estimate how much to feed a dog or cat each day (grams and cups) from body weight, life stage/activity level, and the food's calorie density, using the standard veterinary RER/DER energy formula (RER = 70 x kg^0.75).\n\n[Try Pet Food Portion Calculator in your browser →](https://iotools.cloud/tool/pet-food-portion-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioPetSpecies":{"enum":["dog","cat"],"description":"Species"},"ioWeightUnit":{"enum":["kg","lbs"],"description":"Weight Unit"},"ioWeight":{"type":"number","description":"Weight","minimum":0.1,"maximum":200},"ioDogLifeStage":{"enum":["3.0","2.0","1.6","1.8","3.0","4.0","1.4","1.0"],"description":"Life Stage & Activity"},"ioCatLifeStage":{"enum":["2.5","1.2","1.4","1.1","0.8"],"description":"Life Stage & Activity"},"ioFoodType":{"enum":["dry","wet","raw","custom"],"description":"Food Type"},"ioFoodKcal":{"type":"number","description":"kcal / 100 g","minimum":30,"maximum":800},"ioMealsPerDay":{"enum":["1","2","3","4"],"description":"Meals / day"}},"required":["ioWeight","ioFoodKcal"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Energy & Portion Estimate"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/photography-exposure-value-calculator":{"post":{"operationId":"run_photography_exposure_value_calculator","summary":"Photography Exposure Value (EV) Calculator","tags":["Calculators"],"description":"Calculate the Exposure Value (EV) from aperture, shutter speed and ISO. Get EV at your settings, the ISO 100-normalized EV100, the closest standard lighting condition (Sunny 16 family), and a table of equivalent same-exposure aperture/shutter pairs.\n\n[Try Photography Exposure Value (EV) Calculator in your browser →](https://iotools.cloud/tool/photography-exposure-value-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioAperture":{"type":"number","description":"Aperture (f-number)","minimum":0.5},"ioShutter":{"type":"string","description":"Shutter Speed"},"ioISO":{"type":"number","description":"ISO","minimum":25}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioHeadline":{"type":"string","description":"Exposure Value"},"ioSummary":{"type":"string","description":"Details"},"ioEquivalents":{"type":"string","description":"Equivalent Exposures"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/podcast-audio-file-size-calculator":{"post":{"operationId":"run_podcast_audio_file_size_calculator","summary":"Podcast Audio File Size Calculator","tags":["Calculators"],"description":"Estimate a podcast episode's audio file size from its length and encoding (MP3/AAC/OGG bitrate or WAV/FLAC), then project monthly and yearly hosting storage plus CDN bandwidth from your episode cadence and download count.\n\n[Try Podcast Audio File Size Calculator in your browser →](https://iotools.cloud/tool/podcast-audio-file-size-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioHours":{"type":"number","description":"Hours","minimum":0,"maximum":99},"ioMinutes":{"type":"number","description":"Minutes","minimum":0,"maximum":59},"ioSeconds":{"type":"number","description":"Seconds","minimum":0,"maximum":59},"ioAudioFormat":{"enum":["mp3","aac","ogg","wav","flac"],"description":"Audio format"},"ioBitrateKbps":{"enum":["64","96","128","160","192","256","320"],"description":"Bitrate"},"ioSampleRate":{"enum":["22050","44100","48000","96000"],"description":"Sample rate"},"ioBitDepth":{"enum":["16","24","32"],"description":"Bit depth"},"ioChannels":{"enum":["1","2"],"description":"Channels"},"ioEpisodesPerMonth":{"type":"number","description":"Episodes per month","minimum":1,"maximum":31},"ioListeners":{"type":"number","description":"Avg downloads per episode","minimum":1,"maximum":100000000}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioFileSize":{"type":"string","description":"File size per episode"},"ioEstimates":{"type":"string","description":"Storage & bandwidth estimate"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/pregnancy-due-date-calculator":{"post":{"operationId":"run_pregnancy_due_date_calculator","summary":"Pregnancy Due Date Calculator","tags":["Calculators"],"description":"Estimate a pregnancy due date using Naegele's rule (LMP + 280 days), a known conception date, or an IVF embryo transfer date — plus current gestational age, trimester, and the start of each trimester. For informational use only, not medical advice.\n\n[Try Pregnancy Due Date Calculator in your browser →](https://iotools.cloud/tool/pregnancy-due-date-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMethod":{"enum":["lmp","conception","ivf"],"description":"Calculation Method"},"ioLmpDate":{"type":"string","description":"First Day of Last Period"},"ioCycleLength":{"type":"number","description":"Cycle Length (days)","minimum":20,"maximum":45},"ioConceptionDate":{"type":"string","description":"Conception Date"},"ioIvfTransferDate":{"type":"string","description":"Embryo Transfer Date"},"ioIvfDay":{"enum":["3","5"],"description":"Embryo Age at Transfer"},"ioReferenceDate":{"type":"string","description":"As of Date"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Pregnancy Timeline"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/prime-checker":{"post":{"operationId":"run_prime_checker","summary":"Prime Checker","tags":["Calculators"],"description":"Check whether a number is prime. Enter any integer to see an exact prime/composite verdict, and for composite numbers its prime factorization, divisors, and divisor sum. Uses BigInt so very large numbers work.\n\n[Try Prime Checker in your browser →](https://iotools.cloud/tool/prime-checker/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioNumber":{"type":"string","description":"Number to check"}},"required":["ioNumber"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Result"},"ioFactorization":{"type":"string","description":"Prime factorization"},"ioDivisors":{"type":"string","description":"Divisors"},"ioDetails":{"type":"string","description":"Details"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/prime-factorization-calculator":{"post":{"operationId":"run_prime_factorization_calculator","summary":"Prime Factorization Calculator","tags":["Calculators"],"description":"Break a positive integer down into its prime factors — with exponential form (2^3 x 3^2 x 5), a flat product, a factor/exponent table, the count of distinct primes, and every divisor.\n\n[Try Prime Factorization Calculator in your browser →](https://iotools.cloud/tool/prime-factorization-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioNumber":{"type":"string","description":"Number"}},"required":["ioNumber"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioExponential":{"type":"string","description":"Prime factorization"},"ioExpanded":{"type":"string","description":"Expanded (as a product)"},"ioDistinctCount":{"type":"string","description":"Distinct prime factors"},"ioFactorTable":{"type":"string","description":"Factors"},"ioDivisors":{"type":"string","description":"All divisors"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/pwm-duty-frequency-calculator":{"post":{"operationId":"run_pwm_duty_frequency_calculator","summary":"PWM Duty Cycle & Frequency Calculator","tags":["Calculators"],"description":"Calculate PWM signal frequency, period, duty cycle and pulse width. Convert from frequency + duty cycle to period + pulse width, or the other way around.\n\n[Try PWM Duty Cycle & Frequency Calculator in your browser →](https://iotools.cloud/tool/pwm-duty-frequency-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMode":{"enum":["freq","period"],"description":"Known Values"},"ioFrequency":{"type":"number","description":"Frequency (Hz)","minimum":0},"ioDutyCycle":{"type":"number","description":"Duty Cycle (%)","minimum":0,"maximum":100},"ioPeriod":{"type":"number","description":"Period (ms)","minimum":0},"ioPulseWidth":{"type":"number","description":"Pulse Width — High Time (ms)","minimum":0}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/quadratic-formula-solver":{"post":{"operationId":"run_quadratic_formula_solver","summary":"Quadratic Formula Solver","tags":["Calculators"],"description":"Solve ax² + bx + c = 0 for x using the quadratic formula. Computes the discriminant and returns two real roots, one repeated real root, or two complex conjugate roots, with a step-by-step derivation.\n\n[Try Quadratic Formula Solver in your browser →](https://iotools.cloud/tool/quadratic-formula-solver/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCoeffA":{"type":"number","description":"a"},"ioCoeffB":{"type":"number","description":"b"},"ioCoeffC":{"type":"number","description":"c"}},"required":["ioCoeffA","ioCoeffB","ioCoeffC"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioRoots":{"type":"string","description":"Roots"},"ioDiscriminant":{"type":"string","description":"Discriminant (Δ)"},"ioSteps":{"type":"string","description":"Step-by-Step Solution"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/stair-rise-run-calculator":{"post":{"operationId":"run_stair_rise_run_calculator","summary":"Stair Rise & Run Calculator","tags":["Calculators"],"description":"Calculate stair riser height, tread depth, step count, total run and stair angle from a total floor-to-floor rise — solving from either a target riser height or a desired step count — with a common building-code comfort check.\n\n[Try Stair Rise & Run Calculator in your browser →](https://iotools.cloud/tool/stair-rise-run-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioTotalRise":{"type":"number","description":"Total rise (floor-to-floor height)","minimum":0},"ioUnit":{"enum":["in","cm"],"description":"Unit"},"ioSolveMode":{"enum":["riser","steps"],"description":"Solve from"},"ioTargetRiser":{"type":"number","description":"Target riser height","minimum":0},"ioStepCount":{"type":"number","description":"Desired number of steps","minimum":1}},"required":["ioTotalRise"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string"},"ioSummary":{"type":"string","description":"Summary"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/statistics-calculator":{"post":{"operationId":"run_statistics_calculator","summary":"Statistics Calculator","tags":["Calculators"],"description":"Compute descriptive statistics for a list of numbers — count, sum, mean, median, mode, range, quartiles, IQR, variance, standard deviation, standard error, coefficient of variation, skewness, and kurtosis. Choose population or sample variance.\n\n[Try Statistics Calculator in your browser →](https://iotools.cloud/tool/statistics-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioDataInput":{"type":"string","description":"Data"},"ioVarianceType":{"enum":["population","sample"],"description":"Variance Type"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioStats":{"type":"string"},"ioFrequency":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/string-length-calculator":{"post":{"operationId":"run_string_length_calculator","summary":"String Length Calculator","tags":["Calculators"],"description":"Calculate text length in multiple units: JS string length (UTF-16 code units — what most naive tools report), Unicode character count (codepoints), and byte length when UTF-8 encoded — plus character count without spaces, word count and line count. Reveals how emoji and other multi-byte characters make these numbers diverge.\n\n[Try String Length Calculator in your browser →](https://iotools.cloud/tool/string-length-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioTextContent":{"type":"string","description":"Your text"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioStats":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/power-factor-correction-calculator":{"post":{"operationId":"run_power_factor_correction_calculator","summary":"Power Factor Correction Calculator","tags":["Calculators"],"description":"Calculate the capacitor kvar needed to correct a power factor to a target value, and size the bank itself — capacitance in µF per phase for a delta or star connection, capacitor current, and the apparent power and line current before and after correction.\n\n[Try Power Factor Correction Calculator in your browser →](https://iotools.cloud/tool/power-factor-correction-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioRealPower":{"type":"number","description":"Real Power (kW)","minimum":0},"ioExistingPf":{"type":"number","description":"Existing Power Factor","minimum":0.05,"maximum":1},"ioTargetPf":{"type":"number","description":"Target Power Factor","minimum":0.05,"maximum":1},"ioSystem":{"enum":["three","single"],"description":"Supply"},"ioVoltage":{"type":"number","description":"Voltage (V)","minimum":1},"ioFrequency":{"enum":["50","60"],"description":"Frequency"},"ioConnection":{"enum":["delta","star"],"description":"Bank Connection"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string","description":"Before & After Correction"},"ioCapacitor":{"type":"string","description":"Capacitor Bank"},"ioBreakdown":{"type":"string","description":"Formula & Breakdown"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/shaft-power-torque-calculator":{"post":{"operationId":"run_shaft_power_torque_calculator","summary":"Shaft Power & Torque Calculator","tags":["Calculators"],"description":"Calculate shaft torque from power and speed, power from torque and speed, or the shaft speed from power and torque. Supports kW/W/hp/PS, N·m/kgf·m/lb·ft/lb·in and rpm/rad·s⁻¹/Hz, reports every result in both metric and imperial units, and adds the input power a drive must supply at a given efficiency.\n\n[Try Shaft Power & Torque Calculator in your browser →](https://iotools.cloud/tool/shaft-power-torque-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSolveFor":{"enum":["torque","power","speed"],"description":"Solve For"},"ioPower":{"type":"number","description":"Power (P)","minimum":0},"ioPowerUnit":{"enum":["kw","w","hp","ps"],"description":"Power Unit"},"ioTorque":{"type":"number","description":"Torque (T)","minimum":0},"ioTorqueUnit":{"enum":["nm","kgfm","lbft","lbin"],"description":"Torque Unit"},"ioSpeed":{"type":"number","description":"Rotational Speed (N)","minimum":0},"ioSpeedUnit":{"enum":["rpm","rads","hz"],"description":"Speed Unit"},"ioEfficiency":{"type":"number","description":"Drive Efficiency (%)","minimum":1,"maximum":100}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string","description":"Shaft Power, Torque & Speed"},"ioBreakdown":{"type":"string","description":"Formula & Breakdown"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/mortgage-calculator":{"post":{"operationId":"run_mortgage_calculator","summary":"Mortgage Calculator","tags":["Calculators"],"description":"Calculate your monthly mortgage payment — principal & interest via the standard amortization formula, plus property tax, home insurance and PMI for a full PITI estimate. See total interest and total cost over the life of the loan.\n\n[Try Mortgage Calculator in your browser →](https://iotools.cloud/tool/mortgage-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioHomePrice":{"type":"number","description":"Home Price ($)","minimum":0,"maximum":999999999},"ioDownPayment":{"type":"number","description":"Down Payment","minimum":0,"maximum":999999999},"ioDownPaymentType":{"enum":["dollar","percent"],"description":"Down Payment Is"},"ioAnnualRate":{"type":"number","description":"Annual Interest Rate (%)","minimum":0,"maximum":100},"ioLoanTermYears":{"enum":["10","15","20","30"],"description":"Loan Term"},"ioPropertyTaxAnnual":{"type":"number","description":"Property Tax ($/year)","minimum":0,"maximum":999999},"ioHomeInsuranceAnnual":{"type":"number","description":"Home Insurance ($/year)","minimum":0,"maximum":999999},"ioPmiMonthly":{"type":"number","description":"PMI ($/month)","minimum":0,"maximum":99999}},"required":["ioHomePrice","ioDownPayment","ioAnnualRate"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/percentage-calculator":{"post":{"operationId":"run_percentage_calculator","summary":"Percentage Calculator","tags":["Calculators"],"description":"Solve eight kinds of percentage problem: what percent one number is of another, a percentage of a number, percentage change, percentage difference, percent ↔ decimal, and percent ↔ fraction. Shows the result, a plain-English summary and the formula used.\n\n[Try Percentage Calculator in your browser →](https://iotools.cloud/tool/percentage-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioType":{"enum":["type-1","type-2","type-3","type-4","type-5","type-6","type-7","type-8"],"description":"Calculation"},"ioType1A":{"type":"number","description":"Value"},"ioType1B":{"type":"number","description":"Is what percent of"},"ioType2A":{"type":"number","description":"Percent (%)"},"ioType2B":{"type":"number","description":"Of value"},"ioType3A":{"type":"number","description":"From value"},"ioType3B":{"type":"number","description":"To value"},"ioType4A":{"type":"number","description":"Value 1"},"ioType4B":{"type":"number","description":"Value 2"},"ioType5A":{"type":"number","description":"Percent (%)"},"ioType6A":{"type":"number","description":"Decimal value"},"ioType7A":{"type":"number","description":"Percent (%)"},"ioType8A":{"type":"string","description":"Fraction"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Result"},"ioSummary":{"type":"string","description":"In words"},"ioFormula":{"type":"string","description":"Formula"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/rate-limit-calc":{"post":{"operationId":"run_rate_limit_calc","summary":"Rate Limit Calculator","tags":["Calculators"],"description":"Convert an API rate limit into requests/second, /minute, /hour and /day, plan multi-worker throughput with staggered start offsets, budget a daily request quota, and turn a 429 Retry-After response into an exponential backoff schedule.\n\n[Try Rate Limit Calculator in your browser →](https://iotools.cloud/tool/rate-limit-calc/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioRateLimit":{"type":"number","description":"Rate limit","minimum":0,"maximum":100000000},"ioTimeUnit":{"enum":["second","minute","hour","day"],"description":"Per"},"ioWorkers":{"type":"number","description":"Number of workers","minimum":1,"maximum":1000},"ioDailyLimit":{"type":"number","description":"Daily request limit","minimum":0,"maximum":100000000},"ioActiveHours":{"type":"number","description":"Active hours per day","minimum":1,"maximum":24},"ioRetryAfter":{"type":"number","description":"Retry-After (seconds)","minimum":0,"maximum":86400},"ioRequestCount":{"type":"number","description":"Requests sent before 429","minimum":0,"maximum":100000000},"ioTimeWindow":{"type":"number","description":"Time window (seconds)","minimum":0,"maximum":86400}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioRateOutput":{"type":"string","description":"Core Rate Calculations"},"ioWorkerOutput":{"type":"string","description":"Multi-Worker Throughput"},"ioQuotaOutput":{"type":"string","description":"Daily Quota Plan"},"ioBackoffOutput":{"type":"string","description":"Retry-After / Backoff Schedule"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/rc-circuit-time-constant-calculator":{"post":{"operationId":"run_rc_circuit_time_constant_calculator","summary":"RC Circuit Time Constant Calculator","tags":["Calculators"],"description":"Calculate the RC time constant (τ = R × C) for a resistor-capacitor circuit from resistance and capacitance in any common unit (Ω/kΩ/MΩ, pF/nF/µF/mF/F). Returns τ auto-scaled to the best time unit, plus the standard charge/discharge percentage reached at 1τ through 5τ (63.2%, 86.5%, 95.0%, 98.2%, 99.3%).\n\n[Try RC Circuit Time Constant Calculator in your browser →](https://iotools.cloud/tool/rc-circuit-time-constant-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioResistance":{"type":"number","description":"Resistance (R)","minimum":0},"ioResistanceUnit":{"enum":["ohm","kohm","megaohm"],"description":"Resistance Unit"},"ioCapacitance":{"type":"number","description":"Capacitance (C)","minimum":0},"ioCapacitanceUnit":{"enum":["pf","nf","uf","mf","f"],"description":"Capacitance Unit"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioTau":{"type":"string","description":"Time Constant (τ)"},"ioTauTable":{"type":"string","description":"Charge / Discharge at each τ"},"ioSummary":{"type":"string","description":"Formula & Breakdown"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/reading-time-calculator":{"post":{"operationId":"run_reading_time_calculator","summary":"Reading Time Calculator","tags":["Calculators"],"description":"Estimate how long it takes to read a piece of text, based on word count and an adjustable reading speed (words per minute) — plus a slower read-aloud/speaking-time estimate.\n\n[Try Reading Time Calculator in your browser →](https://iotools.cloud/tool/reading-time-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Text"},"ioReadingSpeed":{"type":"number","description":"Reading Speed (WPM)","minimum":100,"maximum":800},"ioSpeakingSpeed":{"type":"number","description":"Speaking / Read-Aloud Speed (WPM)","minimum":50,"maximum":400}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioReadingTime":{"type":"string","description":"Reading Time"},"ioSpeakingTime":{"type":"string","description":"Speaking Time"},"ioWordCount":{"type":"string","description":"Words"},"ioCharacterCount":{"type":"string","description":"Characters"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/recipe-scale-calculator":{"post":{"operationId":"run_recipe_scale_calculator","summary":"Recipe Scale Calculator","tags":["Calculators"],"description":"Scale a recipe's ingredient quantities up or down — from one serving count to another, or by any ratio — with mixed numbers, fractions and unicode fractions (½, ⅓, ⅔…) parsed and re-formatted back into readable cooking fractions.\n\n[Try Recipe Scale Calculator in your browser →](https://iotools.cloud/tool/recipe-scale-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioOriginalServings":{"type":"number","description":"Original Servings","minimum":0.25},"ioTargetServings":{"type":"number","description":"Target Servings","minimum":0.25},"ioRecipeText":{"type":"string","description":"Ingredient list (one per line)"},"ioRoundingMode":{"enum":["fractions","decimal"],"description":"Rounding"}},"required":["ioOriginalServings","ioTargetServings","ioRecipeText"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioScaledRecipe":{"type":"string","description":"Scaled Ingredient List"},"ioSummary":{"type":"string","description":"Summary"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/rental-property-roi-calculator":{"post":{"operationId":"run_rental_property_roi_calculator","summary":"Rental Property ROI Calculator","tags":["Calculators"],"description":"Analyze a rental property's return on investment — net operating income (NOI), cap rate, cash-on-cash return, monthly/annual cash flow and gross rent multiplier, from purchase price, financing terms, rent and operating expenses.\n\n[Try Rental Property ROI Calculator in your browser →](https://iotools.cloud/tool/rental-property-roi-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioPurchasePrice":{"type":"number","description":"Purchase Price ($)","minimum":0,"maximum":999999999},"ioDownPayment":{"type":"number","description":"Down Payment","minimum":0,"maximum":999999999},"ioDownPaymentType":{"enum":["percent","dollar"],"description":"Down Payment Is"},"ioAnnualRate":{"type":"number","description":"Loan Interest Rate (%)","minimum":0,"maximum":100},"ioLoanTermYears":{"enum":["10","15","20","30"],"description":"Loan Term"},"ioClosingCosts":{"type":"number","description":"Closing & Rehab Costs ($)","minimum":0,"maximum":999999999},"ioMonthlyRent":{"type":"number","description":"Monthly Rent ($)","minimum":0,"maximum":999999},"ioVacancyRate":{"type":"number","description":"Vacancy Rate (%)","minimum":0,"maximum":100},"ioPropertyTaxAnnual":{"type":"number","description":"Property Tax ($/year)","minimum":0,"maximum":999999},"ioInsuranceAnnual":{"type":"number","description":"Insurance ($/year)","minimum":0,"maximum":999999},"ioHoaAnnual":{"type":"number","description":"HOA & Other ($/year)","minimum":0,"maximum":999999},"ioManagementRate":{"type":"number","description":"Property Management (% of rent collected)","minimum":0,"maximum":100},"ioMaintenanceRate":{"type":"number","description":"Maintenance & Repairs (% of rent collected)","minimum":0,"maximum":100}},"required":["ioPurchasePrice","ioDownPayment","ioAnnualRate","ioMonthlyRent"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/resistor-color-code-calculator":{"post":{"operationId":"run_resistor_color_code_calculator","summary":"Resistor Color Code Calculator","tags":["Calculators"],"description":"Decode a resistor's colour bands into its resistance, tolerance and temperature coefficient, or encode a resistance value back into 4-, 5- or 6-band colours. Shows the value range and a colour-band diagram of the resistor.\n\n[Try Resistor Color Code Calculator in your browser →](https://iotools.cloud/tool/resistor-color-code-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMode":{"enum":["colors","value"],"description":"Direction"},"ioBandCount":{"enum":["4","5","6"],"description":"Number of Bands"},"ioResistanceInput":{"type":"string","description":"Resistance Value"},"ioBand1":{"enum":["black","brown","red","orange","yellow","green","blue","violet","grey","white"],"description":"Band 1 (1st digit)"},"ioBand2":{"enum":["black","brown","red","orange","yellow","green","blue","violet","grey","white"],"description":"Band 2 (2nd digit)"},"ioBand3":{"enum":["black","brown","red","orange","yellow","green","blue","violet","grey","white"],"description":"Band 3 (3rd digit)"},"ioMultiplier":{"enum":["silver","gold","black","brown","red","orange","yellow","green","blue","violet","grey","white"],"description":"Multiplier"},"ioTolerance":{"enum":["brown","red","green","blue","violet","grey","gold","silver","none"],"description":"Tolerance"},"ioTcr":{"enum":["brown","red","orange","yellow","blue","violet","black","green","grey"],"description":"Temp. Coefficient"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResistance":{"type":"string","description":"Resistance"},"ioResultTable":{"type":"string","description":"Details"},"ioSvg":{"type":"string","description":"Diagram (SVG)"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/roi-calculator":{"post":{"operationId":"run_roi_calculator","summary":"ROI Calculator","tags":["Calculators"],"description":"Calculate return on investment (ROI) for any investment. Enter what you put in and what you got back to get net profit, ROI percentage, investment multiple, and annualized ROI (CAGR) when you add a holding period.\n\n[Try ROI Calculator in your browser →](https://iotools.cloud/tool/roi-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInitialInvestment":{"type":"number","description":"Initial Investment ($)","minimum":0},"ioFinalValue":{"type":"number","description":"Final Value ($)","minimum":0},"ioAdditionalCosts":{"type":"number","description":"Additional Costs / Fees ($)","minimum":0},"ioIncomeReceived":{"type":"number","description":"Income Received ($)","minimum":0},"ioYears":{"type":"number","description":"Holding Period (Years)","minimum":0}},"required":["ioInitialInvestment","ioFinalValue"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/rule-of-72-calculator":{"post":{"operationId":"run_rule_of_72_calculator","summary":"Rule of 72 Calculator","tags":["Calculators"],"description":"Estimate how long it takes an investment to double using the Rule of 72 (years ≈ 72 / rate%), and see the exact logarithmic answer beside it. Compares the Rule of 72, 70 and 69.3 approximations, shows each rule's error, supports any compounding frequency, and works in reverse to find the rate needed to double in a target number of years.\n\n[Try Rule of 72 Calculator in your browser →](https://iotools.cloud/tool/rule-of-72-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMode":{"enum":["rate_to_years","years_to_rate"],"description":"Direction"},"ioRate":{"type":"number","description":"Annual Interest Rate (%)","minimum":0.01,"maximum":1000},"ioYears":{"type":"number","description":"Years to Double","minimum":0.01,"maximum":1000},"ioFrequency":{"enum":["1","2","4","12","365","continuous"],"description":"Compounding"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Result"},"ioTable":{"type":"string","description":"Comparison"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/running-pace-calculator":{"post":{"operationId":"run_running_pace_calculator","summary":"Running Pace Calculator","tags":["Calculators"],"description":"Solve the running pace triangle: enter any two of distance, time and pace to calculate the third. Shows pace per km and per mile, speed, a Riegel equivalent race-time predictor (5K, 10K, half, marathon and more) and an even-split table.\n\n[Try Running Pace Calculator in your browser →](https://iotools.cloud/tool/running-pace-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMode":{"enum":["pace","time","distance"],"description":"Calculate"},"ioDistancePreset":{"enum":["custom","1.609344","5","10","15","21.0975","42.195","50","100"],"description":"Distance preset"},"ioDistance":{"type":"number","description":"Distance","minimum":0},"ioDistanceUnit":{"enum":["km","miles","meters"],"description":"Distance unit"},"ioTime":{"type":"string","description":"Time"},"ioPace":{"type":"string","description":"Pace"},"ioPaceUnit":{"enum":["km","mile"],"description":"Pace unit"},"ioSplitUnit":{"enum":["km","mile"],"description":"Split every"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Result"},"ioEquivalent":{"type":"string","description":"Equivalent Race Times (Riegel formula)"},"ioSplits":{"type":"string","description":"Even Splits"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/salary-calculator":{"post":{"operationId":"run_salary_calculator","summary":"Salary Calculator","tags":["Calculators"],"description":"Convert a salary between annual, monthly, bi-weekly, weekly, daily, and hourly pay periods. Enter your pay at any one period and see the equivalent at every other, based on your work hours per day, days per week, and paid leave.\n\n[Try Salary Calculator in your browser →](https://iotools.cloud/tool/salary-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSalaryAmount":{"type":"number","description":"Salary Amount","minimum":0},"ioSalaryPeriod":{"enum":["annual","monthly","biweekly","weekly","daily","hourly"],"description":"Pay Period"},"ioCurrencySymbol":{"type":"string","description":"Currency Symbol"},"ioHoursPerDay":{"type":"number","description":"Work Hours / Day","minimum":1,"maximum":24},"ioDaysPerWeek":{"type":"number","description":"Work Days / Week","minimum":1,"maximum":7},"ioPaidLeave":{"type":"number","description":"Paid Leave / Year","minimum":0,"maximum":90}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResultTable":{"type":"string","description":"Salary Breakdown"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/sales-tax-vat-calculator":{"post":{"operationId":"run_sales_tax_vat_calculator","summary":"Sales Tax & VAT Calculator","tags":["Calculators"],"description":"Add or remove sales tax, VAT or GST from a price. Enter your own rate to compute the tax amount, pre-tax price and gross total — with a full breakdown and common country presets.\n\n[Try Sales Tax & VAT Calculator in your browser →](https://iotools.cloud/tool/sales-tax-vat-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMode":{"enum":["add","remove"],"description":"Mode"},"ioPrice":{"type":"number","description":"Price","minimum":0},"ioRatePreset":{"enum":["custom","uk","de","fr","nl","es","it","se","ch","jp","au","ca","in","sg"],"description":"Common Rate"},"ioTaxRate":{"type":"number","description":"Tax Rate (%)","minimum":0,"maximum":100}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/savings-goal-calculator":{"post":{"operationId":"run_savings_goal_calculator","summary":"Savings Goal Calculator","tags":["Calculators"],"description":"Work out exactly how much to save each month to hit a savings goal by a target date — or how long a fixed monthly deposit will take to get there — with interest, a contributions-vs-interest split, and a year-by-year schedule.\n\n[Try Savings Goal Calculator in your browser →](https://iotools.cloud/tool/savings-goal-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMode":{"enum":["deposit","time"],"description":"Solve For"},"ioGoalAmount":{"type":"number","description":"Savings Goal ($)","minimum":0},"ioCurrentSavings":{"type":"number","description":"Current Savings ($)","minimum":0},"ioTimeValue":{"type":"number","description":"Time to Goal","minimum":0},"ioTimeUnit":{"enum":["years","months"],"description":"Time Unit"},"ioMonthlyDeposit":{"type":"number","description":"Monthly Deposit ($)","minimum":0},"ioAnnualRate":{"type":"number","description":"Annual Interest Rate (%)","minimum":0},"ioCompounding":{"enum":["monthly","annual"],"description":"Compounding"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Savings Plan"},"ioSchedule":{"type":"string","description":"Year-by-Year Projection"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/screen-size-comparison-calculator":{"post":{"operationId":"run_screen_size_comparison_calculator","summary":"Screen Size Comparison Calculator","tags":["Calculators"],"description":"Compare two screens side by side — resolution, physical size, PPI, pixel pitch, pixel density category, and retina status — from resolution and diagonal size, or a device preset.\n\n[Try Screen Size Comparison Calculator in your browser →](https://iotools.cloud/tool/screen-size-comparison-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioPresetA":{"enum":["custom","iphone-15-pro","iphone-se","ipad-pro-129","mbp-14","mbp-16","imac-24","monitor-27-4k","monitor-24-1080","monitor-27-1440","ultrawide-34","tv-55-4k","tv-65-4k"],"description":"Preset"},"ioWidthA":{"type":"number","description":"Width","minimum":1},"ioHeightA":{"type":"number","description":"Height","minimum":1},"ioDiagonalA":{"type":"number","description":"Diagonal","minimum":0.1},"ioDiagonalUnitA":{"enum":["in","cm"],"description":"Diagonal Unit"},"ioPresetB":{"enum":["custom","iphone-15-pro","iphone-se","ipad-pro-129","mbp-14","mbp-16","imac-24","monitor-27-4k","monitor-24-1080","monitor-27-1440","ultrawide-34","tv-55-4k","tv-65-4k"],"description":"Preset"},"ioWidthB":{"type":"number","description":"Width","minimum":1},"ioHeightB":{"type":"number","description":"Height","minimum":1},"ioDiagonalB":{"type":"number","description":"Diagonal","minimum":0.1},"ioDiagonalUnitB":{"enum":["in","cm"],"description":"Diagonal Unit"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResultTable":{"type":"string","description":"Side-by-Side Details"},"ioSummary":{"type":"string","description":"Summary"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/plate-weight-calculator":{"post":{"operationId":"run_plate_weight_calculator","summary":"Plate Weight Calculator","tags":["Calculators"],"description":"Calculate the weight of a steel, aluminium, stainless or plastic plate from its dimensions — rectangular sheet, round disc or ring — with 24 built-in material densities, a quantity multiplier, surface area, and results in both kg and lb.\n\n[Try Plate Weight Calculator in your browser →](https://iotools.cloud/tool/plate-weight-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioUnits":{"enum":["metric","imperial"],"description":"Units"},"ioShape":{"enum":["rectangle","circle","ring"],"description":"Shape"},"ioLength":{"type":"number","description":"Length","minimum":0},"ioWidth":{"type":"number","description":"Width","minimum":0},"ioDiameter":{"type":"number","description":"Outside diameter","minimum":0},"ioInnerDiameter":{"type":"number","description":"Inside (hole) diameter","minimum":0},"ioThickness":{"type":"number","description":"Thickness","minimum":0},"ioMaterial":{"enum":["carbon-steel","stainless-304","stainless-316","stainless-430","tool-steel","cast-iron","aluminium-6061","aluminium-5052","aluminium-7075","copper","brass","bronze","titanium-gr5","nickel","zinc","lead","magnesium-az31","acrylic","polycarbonate","hdpe","pvc","nylon","glass","plywood","custom"],"description":"Material"},"ioDensity":{"type":"number","description":"Density","minimum":0},"ioQuantity":{"type":"number","description":"Quantity","minimum":1}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/spring-rate-calculator":{"post":{"operationId":"run_spring_rate_calculator","summary":"Spring Rate Calculator","tags":["Calculators"],"description":"Calculate the spring rate of a helical compression or extension spring from wire diameter, mean coil diameter, active coils and material — with spring index, Wahl correction factor, deflection under load and corrected shear stress, in both metric and imperial units.\n\n[Try Spring Rate Calculator in your browser →](https://iotools.cloud/tool/spring-rate-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioUnits":{"enum":["metric","imperial"],"description":"Units"},"ioMaterial":{"enum":["music-wire","hard-drawn","oil-tempered","chrome-vanadium","chrome-silicon","stainless-302","stainless-316","stainless-17-7","phosphor-bronze","beryllium-copper","brass","monel-400","inconel-x750","titanium","custom"],"description":"Material"},"ioShearModulus":{"type":"number","description":"Shear modulus G","minimum":0},"ioWireDiameter":{"type":"number","description":"Wire diameter (d)","minimum":0},"ioCoilDiameter":{"type":"number","description":"Mean coil diameter (D)","minimum":0},"ioActiveCoils":{"type":"number","description":"Active coils (n)","minimum":0},"ioLoad":{"type":"number","description":"Applied load (optional)","minimum":0}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/retirement-savings-calculator":{"post":{"operationId":"run_retirement_savings_calculator","summary":"Retirement Savings Calculator","tags":["Calculators"],"description":"Project your retirement savings growth from your current balance, monthly contribution, expected annual return and years until retirement — shows future value, total contributed, and total growth earned.\n\n[Try Retirement Savings Calculator in your browser →](https://iotools.cloud/tool/retirement-savings-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCurrentSavings":{"type":"number","description":"Current Savings ($)","minimum":0},"ioMonthlyContribution":{"type":"number","description":"Monthly Contribution ($)","minimum":0},"ioAnnualReturnRate":{"type":"number","description":"Expected Annual Return (%)","minimum":0},"ioYearsToRetirement":{"type":"number","description":"Years to Retirement","minimum":0}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Projected Retirement Savings"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/slugging-percentage-calculator":{"post":{"operationId":"run_slugging_percentage_calculator","summary":"Slugging Percentage Calculator","tags":["Calculators"],"description":"Calculate a baseball or softball slugging percentage from singles, doubles, triples, home runs, and at bats — SLG = total bases ÷ at bats, rounded to three decimal places.\n\n[Try Slugging Percentage Calculator in your browser →](https://iotools.cloud/tool/slugging-percentage-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSingles":{"type":"number","description":"Singles","minimum":0},"ioDoubles":{"type":"number","description":"Doubles","minimum":0},"ioTriples":{"type":"number","description":"Triples","minimum":0},"ioHomeRuns":{"type":"number","description":"Home runs","minimum":0},"ioAtBats":{"type":"number","description":"At bats","minimum":1}},"required":["ioSingles","ioDoubles","ioTriples","ioHomeRuns","ioAtBats"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSluggingPercentage":{"type":"string","description":"Slugging percentage (SLG)"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/split-bill-calculator":{"post":{"operationId":"run_split_bill_calculator","summary":"Split Bill Calculator","tags":["Calculators"],"description":"Split a restaurant or group bill evenly among any number of people. Add tax, a discount and a tip (percent of the subtotal, with country tip-preset shortcuts), then get an exact cent-accurate breakdown per person — no rounding errors, the shares always sum to the total.\n\n[Try Split Bill Calculator in your browser →](https://iotools.cloud/tool/split-bill-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSubtotal":{"type":"number","description":"Bill Subtotal","minimum":0.01},"ioTaxAmount":{"type":"number","description":"Tax","minimum":0},"ioDiscount":{"type":"number","description":"Discount","minimum":0},"ioTipPreset":{"enum":["custom","us","ca","uk","au","fr","jp"],"description":"Tip Preset"},"ioTipPercent":{"type":"number","description":"Tip %","minimum":0,"maximum":100},"ioNumPeople":{"type":"number","description":"Number of People","minimum":1,"maximum":100},"ioCurrency":{"enum":["USD","EUR","GBP","AUD","JPY","CAD"],"description":"Currency"},"ioRoundUp":{"type":"boolean","description":"Round up each person's share to the next whole currency unit (for easier cash payment)"}},"required":["ioSubtotal"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioBreakdown":{"type":"string","description":"Bill Breakdown"},"ioPerPerson":{"type":"string","description":"Per Person"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/video-bitrate-calculator":{"post":{"operationId":"run_video_bitrate_calculator","summary":"Video Bitrate Calculator","tags":["Calculators"],"description":"Estimate the recommended video bitrate for a resolution, frame rate, codec and quality target, then see the total bitrate with audio, projected file sizes for common durations, and how H.264, H.265, VP9 and AV1 compare.\n\n[Try Video Bitrate Calculator in your browser →](https://iotools.cloud/tool/video-bitrate-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioResolution":{"enum":["1280x720","1920x1080","2560x1440","3840x2160","7680x4320","custom"],"description":"Resolution"},"ioCustomWidth":{"type":"number","description":"Width (px)","minimum":1,"maximum":15360},"ioCustomHeight":{"type":"number","description":"Height (px)","minimum":1,"maximum":8640},"ioFrameRate":{"enum":["24","30","60","120"],"description":"Frame rate (FPS)"},"ioCodec":{"enum":["h264","h265","vp9","av1"],"description":"Codec"},"ioQuality":{"enum":["low","medium","high","veryhigh"],"description":"Quality"},"ioAudioBitrate":{"enum":["0","64","128","192","320"],"description":"Audio bitrate"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResultTable":{"type":"string","description":"Bitrate estimate"},"ioFileSizeTable":{"type":"string","description":"Estimated file sizes"},"ioCodecComparisonTable":{"type":"string","description":"Codec comparison (video bitrate)"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/thermal-expansion-calculator":{"post":{"operationId":"run_thermal_expansion_calculator","summary":"Thermal Expansion Calculator","tags":["Calculators"],"description":"Calculate how much a part grows or shrinks with temperature — change in length, final length, linear strain and volumetric change — from a built-in library of 36 material expansion coefficients, in Celsius or Fahrenheit.\n\n[Try Thermal Expansion Calculator in your browser →](https://iotools.cloud/tool/thermal-expansion-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMaterial":{"enum":["aluminium","brass","bronze","copper","carbon-steel","stainless-304","stainless-316","cast-iron","titanium","nickel","inconel-625","invar-36","zinc","lead","magnesium","tin","gold","silver","platinum","tungsten","glass-soda-lime","glass-borosilicate","quartz-fused","concrete","brick","wood-along-grain","silicon","diamond","ice","pvc","polycarbonate","abs","acrylic","nylon","hdpe","ptfe","custom"],"description":"Material"},"ioCoefficient":{"type":"number","description":"Custom coefficient α (× 10⁻⁶ per °C)","minimum":0},"ioLength":{"type":"number","description":"Original length L₀","minimum":0},"ioLengthUnit":{"enum":["mm","cm","m","in","ft"],"description":"Length unit"},"ioTempUnit":{"enum":["c","f"],"description":"Temperature unit"},"ioInitialTemp":{"type":"number","description":"Initial temperature"},"ioFinalTemp":{"type":"number","description":"Final temperature"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/semver-version-calculator":{"post":{"operationId":"run_semver_version_calculator","summary":"SemVer Version Calculator","tags":["Calculators"],"description":"Validate, compare, increment, range-test, and sort Semantic Versioning (SemVer 2.0.0) version strings. Handles prerelease precedence, build metadata, and npm-style ranges (^, ~, x, hyphen, ||).\n\n[Try SemVer Version Calculator in your browser →](https://iotools.cloud/tool/semver-version-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSemverMode":{"enum":["validate","compare","satisfies","increment","sort"],"description":"Operation"},"ioSemverVersionA":{"type":"string","description":"Version A"},"ioSemverVersionB":{"type":"string","description":"Version B"},"ioSemverRange":{"type":"string","description":"Range"},"ioSemverIncrementType":{"enum":["patch","minor","major","prepatch","preminor","premajor","prerelease"],"description":"Increment"},"ioSemverPrereleaseId":{"type":"string","description":"Prerelease ID"},"ioSemverList":{"type":"string","description":"Versions"},"ioSemverSortDirection":{"enum":["asc","desc"],"description":"Sort Order"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSemverSummary":{"type":"string","description":"Summary"},"ioSemverOutput":{"type":"string","description":"Details"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/sewing-fabric-yardage-calculator":{"post":{"operationId":"run_sewing_fabric_yardage_calculator","summary":"Sewing Fabric Yardage Calculator","tags":["Calculators"],"description":"Estimate how much fabric to buy for a garment or quilt from your measurements, the bolt width and a safety margin. Supports skirts, shirts, dresses, trousers and quilt blocks in imperial or metric, with a full cutting breakdown.\n\n[Try Sewing Fabric Yardage Calculator in your browser →](https://iotools.cloud/tool/sewing-fabric-yardage-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioGarmentType":{"enum":["skirt","shirt","dress","pants","quilt"],"description":"Garment"},"ioUnitSystem":{"enum":["imperial","metric"],"description":"Units"},"ioFabricWidthImperial":{"enum":["45","54","60"],"description":"Fabric width"},"ioFabricWidthMetric":{"enum":["115","137","150"],"description":"Fabric width"},"ioBust":{"type":"number","description":"Bust / chest","minimum":1},"ioHip":{"type":"number","description":"Hip","minimum":1},"ioGarmentLength":{"type":"number","description":"Length","minimum":1},"ioSleeveLength":{"type":"number","description":"Sleeve length","minimum":0},"ioBlockSize":{"type":"number","description":"Finished block size","minimum":1},"ioBlockCount":{"type":"number","description":"Number of blocks","minimum":1},"ioSeamAllowance":{"type":"number","description":"Seam allowance","minimum":0},"ioPatternRepeat":{"type":"number","description":"Pattern repeat","minimum":0},"ioSafetyMargin":{"type":"number","description":"Extra buffer %","minimum":0,"maximum":25}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioYards":{"type":"string","description":"Buy (yards)"},"ioMeters":{"type":"string","description":"Buy (meters)"},"ioBreakdown":{"type":"string","description":"Cutting breakdown"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/side-hustle-income-tax-calculator":{"post":{"operationId":"run_side_hustle_income_tax_calculator","summary":"Side Hustle Income Tax Calculator","tags":["Calculators"],"description":"Estimate the US federal tax on your side hustle, gig, or 1099 income — self-employment tax (Social Security + Medicare), the 50% SE-tax deduction, marginal income tax, effective rate, and your suggested quarterly estimated payment.\n\n[Try Side Hustle Income Tax Calculator in your browser →](https://iotools.cloud/tool/side-hustle-income-tax-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioFilingStatus":{"enum":["single","mfj","mfs","hoh"],"description":"Filing Status"},"ioGrossIncome":{"type":"number","description":"Side Hustle Income ($)","minimum":0,"maximum":99999999},"ioExpenses":{"type":"number","description":"Business Expenses ($)","minimum":0,"maximum":99999999},"ioOtherIncome":{"type":"number","description":"Other Income ($)","minimum":0,"maximum":99999999}},"required":["ioGrossIncome"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioTaxBreakdown":{"type":"string","description":"Estimated Tax Breakdown"},"ioQuarterlyAdvice":{"type":"string","description":"Quarterly Estimated Payments"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/sleep-cycle-calculator":{"post":{"operationId":"run_sleep_cycle_calculator","summary":"Sleep Cycle Calculator","tags":["Calculators"],"description":"Find the best time to go to bed or wake up using 90-minute sleep cycles. Enter a bedtime to see when to wake up refreshed, or a wake-up time to see when to fall asleep — with an adjustable fall-asleep buffer.\n\n[Try Sleep Cycle Calculator in your browser →](https://iotools.cloud/tool/sleep-cycle-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMode":{"enum":["wake-from-bedtime","bedtime-for-wake"],"description":"I want to"},"ioTime":{"type":"string","description":"Time"},"ioFallAsleepBuffer":{"type":"number","description":"Fall-asleep buffer (minutes)","minimum":0,"maximum":60}},"required":["ioTime"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioRecommendation":{"type":"string","description":"Recommended"},"ioCycleTable":{"type":"string","description":"All sleep-cycle options"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/solar-panel-output-calculator":{"post":{"operationId":"run_solar_panel_output_calculator","summary":"Solar Panel Output Calculator","tags":["Calculators"],"description":"Estimate the energy output and cost savings of a solar panel system. Enter panel count, wattage, peak sun hours, system losses, and electricity rate to get daily, weekly, monthly, yearly, and 25-year lifetime kWh production plus savings, CO2 offset, and battery sizing.\n\n[Try Solar Panel Output Calculator in your browser →](https://iotools.cloud/tool/solar-panel-output-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioPanels":{"type":"number","description":"Number of Panels","minimum":1,"maximum":10000},"ioWattage":{"type":"number","description":"Panel Wattage (W)","minimum":1,"maximum":1000},"ioSunHours":{"type":"number","description":"Peak Sun Hours per Day","minimum":0.1,"maximum":12},"ioSystemLoss":{"type":"number","description":"System Losses (%)","minimum":0,"maximum":50},"ioRate":{"type":"number","description":"Electricity Rate ($/kWh)","minimum":0.001},"ioDailyUsage":{"type":"number","description":"Daily Usage (kWh)","minimum":0}},"required":["ioPanels","ioWattage","ioSunHours","ioSystemLoss","ioRate"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResultTable":{"type":"string","description":"Energy & Savings"},"ioSystemSize":{"type":"string","description":"System Size"},"ioCo2":{"type":"string","description":"CO₂ Offset (yearly)"},"ioBattery":{"type":"string","description":"Battery Size (1-day backup)"},"ioOffset":{"type":"string","description":"Daily Consumption Offset"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/sprint-velocity-capacity-calculator":{"post":{"operationId":"run_sprint_velocity_capacity_calculator","summary":"Sprint Velocity & Capacity Calculator","tags":["Calculators"],"description":"Plan your next Agile sprint: compute average and median team velocity from past sprints, work out team capacity in focused hours, and get a recommended story-point commitment range adjusted for time off and focus factor.\n\n[Try Sprint Velocity & Capacity Calculator in your browser →](https://iotools.cloud/tool/sprint-velocity-capacity-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioTeamSize":{"type":"number","description":"Team Size","minimum":1,"maximum":100},"ioSprintLength":{"type":"number","description":"Sprint Length (working days)","minimum":1,"maximum":30},"ioHoursPerDay":{"type":"number","description":"Productive Hours / Person / Day","minimum":1,"maximum":12},"ioVelocityHistory":{"type":"string","description":"Completed Story Points (last N sprints)"},"ioTimeOffDays":{"type":"number","description":"Team Time-Off Days","minimum":0,"maximum":500},"ioFocusFactor":{"type":"number","description":"Focus Factor (%)","minimum":10,"maximum":100},"ioHoursPerPoint":{"type":"number","description":"Hours per Story Point","minimum":0.5,"maximum":40}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCapacitySummary":{"type":"string"},"ioHoursBreakdown":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/stock-forex-position-size-calculator":{"post":{"operationId":"run_stock_forex_position_size_calculator","summary":"Stock & Forex Position Size Calculator","tags":["Calculators"],"description":"Work out how many shares, coins, or forex lots to trade so a stop-loss loss equals your chosen risk (a percent of the account or a fixed amount). Shows max loss, position value, risk:reward, potential profit, and a forex lot breakdown.\n\n[Try Stock & Forex Position Size Calculator in your browser →](https://iotools.cloud/tool/stock-forex-position-size-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMode":{"enum":["stocks","forex","crypto"],"description":"Instrument"},"ioAccountBalance":{"type":"number","description":"Account balance","minimum":0},"ioCurrency":{"enum":["$","€","£","¥","A$","C$","CHF "],"description":"Currency"},"ioRiskType":{"enum":["percent","fixed"],"description":"Risk sizing"},"ioRiskPercent":{"type":"number","description":"Risk %","minimum":0.01,"maximum":100},"ioRiskAmount":{"type":"number","description":"Risk amount","minimum":0},"ioPipSize":{"type":"number","description":"Pip size","minimum":0},"ioPipValue":{"type":"number","description":"Pip value / std lot","minimum":0},"ioEntryPrice":{"type":"number","description":"Entry price","minimum":0},"ioStopPrice":{"type":"number","description":"Stop-loss price","minimum":0},"ioTargetPrice":{"type":"number","description":"Take-profit (optional)","minimum":0}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Position size"},"ioSummaryTable":{"type":"string","description":"Position summary"},"ioForexTable":{"type":"string","description":"Forex lot breakdown"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/survey-sample-size-calculator":{"post":{"operationId":"run_survey_sample_size_calculator","summary":"Survey Sample Size Calculator","tags":["Calculators"],"description":"Calculate the minimum survey sample size for a target margin of error and confidence level using Cochran's formula, with an optional finite population correction for known population sizes.\n\n[Try Survey Sample Size Calculator in your browser →](https://iotools.cloud/tool/survey-sample-size-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioPopulation":{"type":"number","description":"Population size","minimum":0},"ioMarginError":{"type":"number","description":"Margin of error (%)","minimum":0.1,"maximum":50},"ioConfidenceLevel":{"enum":["80","85","90","95","99","99.9"],"description":"Confidence level"},"ioProportion":{"type":"number","description":"Expected proportion (%)","minimum":1,"maximum":99}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSampleSize":{"type":"string","description":"Recommended sample size"},"ioBreakdown":{"type":"string","description":"Statistical breakdown"},"ioSensitivity":{"type":"string","description":"Sample size by margin of error"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/time-between-dates-calculator":{"post":{"operationId":"run_time_between_dates_calculator","summary":"Time Between Dates Calculator","tags":["Calculators"],"description":"Calculate the exact time between two dates and times: a full years, months, days, hours, minutes and seconds breakdown, plus totals in weeks, days, hours, minutes and seconds.\n\n[Try Time Between Dates Calculator in your browser →](https://iotools.cloud/tool/time-between-dates-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioStartDate":{"type":"string","description":"Start Date"},"ioStartTime":{"type":"string","description":"Start Time"},"ioEndDate":{"type":"string","description":"End Date"},"ioEndTime":{"type":"string","description":"End Time"}},"required":["ioStartDate","ioEndDate"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/time-zone-meeting-planner":{"post":{"operationId":"run_time_zone_meeting_planner","summary":"Time Zone Meeting Planner","tags":["Calculators"],"description":"Plan a meeting across time zones: enter a date and time in your home zone and each participant's IANA time zone, and see everyone's local date, local time and whether it lands in their working hours.\n\n[Try Time Zone Meeting Planner in your browser →](https://iotools.cloud/tool/time-zone-meeting-planner/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMeetingDate":{"type":"string","description":"Meeting date"},"ioMeetingTime":{"type":"string","description":"Meeting time"},"ioHomeZone":{"enum":["Africa/Abidjan","Africa/Accra","Africa/Addis_Ababa","Africa/Algiers","Africa/Asmera","Africa/Bamako","Africa/Bangui","Africa/Banjul","Africa/Bissau","Africa/Blantyre","Africa/Brazzaville","Africa/Bujumbura","Africa/Cairo","Africa/Casablanca","Africa/Ceuta","Africa/Conakry","Africa/Dakar","Africa/Dar_es_Salaam","Africa/Djibouti","Africa/Douala","Africa/El_Aaiun","Africa/Freetown","Africa/Gaborone","Africa/Harare","Africa/Johannesburg","Africa/Juba","Africa/Kampala","Africa/Khartoum","Africa/Kigali","Africa/Kinshasa","Africa/Lagos","Africa/Libreville","Africa/Lome","Africa/Luanda","Africa/Lubumbashi","Africa/Lusaka","Africa/Malabo","Africa/Maputo","Africa/Maseru","Africa/Mbabane","Africa/Mogadishu","Africa/Monrovia","Africa/Nairobi","Africa/Ndjamena","Africa/Niamey","Africa/Nouakchott","Africa/Ouagadougou","Africa/Porto-Novo","Africa/Sao_Tome","Africa/Tripoli","Africa/Tunis","Africa/Windhoek","America/Adak","America/Anchorage","America/Anguilla","America/Antigua","America/Araguaina","America/Argentina/La_Rioja","America/Argentina/Rio_Gallegos","America/Argentina/Salta","America/Argentina/San_Juan","America/Argentina/San_Luis","America/Argentina/Tucuman","America/Argentina/Ushuaia","America/Aruba","America/Asuncion","America/Bahia","America/Bahia_Banderas","America/Barbados","America/Belem","America/Belize","America/Blanc-Sablon","America/Boa_Vista","America/Bogota","America/Boise","America/Buenos_Aires","America/Cambridge_Bay","America/Campo_Grande","America/Cancun","America/Caracas","America/Catamarca","America/Cayenne","America/Cayman","America/Chicago","America/Chihuahua","America/Ciudad_Juarez","America/Coral_Harbour","America/Cordoba","America/Costa_Rica","America/Coyhaique","America/Creston","America/Cuiaba","America/Curacao","America/Danmarkshavn","America/Dawson","America/Dawson_Creek","America/Denver","America/Detroit","America/Dominica","America/Edmonton","America/Eirunepe","America/El_Salvador","America/Fort_Nelson","America/Fortaleza","America/Glace_Bay","America/Godthab","America/Goose_Bay","America/Grand_Turk","America/Grenada","America/Guadeloupe","America/Guatemala","America/Guayaquil","America/Guyana","America/Halifax","America/Havana","America/Hermosillo","America/Indiana/Knox","America/Indiana/Marengo","America/Indiana/Petersburg","America/Indiana/Tell_City","America/Indiana/Vevay","America/Indiana/Vincennes","America/Indiana/Winamac","America/Indianapolis","America/Inuvik","America/Iqaluit","America/Jamaica","America/Jujuy","America/Juneau","America/Kentucky/Monticello","America/Kralendijk","America/La_Paz","America/Lima","America/Los_Angeles","America/Louisville","America/Lower_Princes","America/Maceio","America/Managua","America/Manaus","America/Marigot","America/Martinique","America/Matamoros","America/Mazatlan","America/Mendoza","America/Menominee","America/Merida","America/Metlakatla","America/Mexico_City","America/Miquelon","America/Moncton","America/Monterrey","America/Montevideo","America/Montserrat","America/Nassau","America/New_York","America/Nome","America/Noronha","America/North_Dakota/Beulah","America/North_Dakota/Center","America/North_Dakota/New_Salem","America/Ojinaga","America/Panama","America/Paramaribo","America/Phoenix","America/Port-au-Prince","America/Port_of_Spain","America/Porto_Velho","America/Puerto_Rico","America/Punta_Arenas","America/Rankin_Inlet","America/Recife","America/Regina","America/Resolute","America/Rio_Branco","America/Santarem","America/Santiago","America/Santo_Domingo","America/Sao_Paulo","America/Scoresbysund","America/Sitka","America/St_Barthelemy","America/St_Johns","America/St_Kitts","America/St_Lucia","America/St_Thomas","America/St_Vincent","America/Swift_Current","America/Tegucigalpa","America/Thule","America/Tijuana","America/Toronto","America/Tortola","America/Vancouver","America/Whitehorse","America/Winnipeg","America/Yakutat","Antarctica/Casey","Antarctica/Davis","Antarctica/DumontDUrville","Antarctica/Macquarie","Antarctica/Mawson","Antarctica/McMurdo","Antarctica/Palmer","Antarctica/Rothera","Antarctica/Syowa","Antarctica/Troll","Antarctica/Vostok","Arctic/Longyearbyen","Asia/Aden","Asia/Almaty","Asia/Amman","Asia/Anadyr","Asia/Aqtau","Asia/Aqtobe","Asia/Ashgabat","Asia/Atyrau","Asia/Baghdad","Asia/Bahrain","Asia/Baku","Asia/Bangkok","Asia/Barnaul","Asia/Beirut","Asia/Bishkek","Asia/Brunei","Asia/Calcutta","Asia/Chita","Asia/Colombo","Asia/Damascus","Asia/Dhaka","Asia/Dili","Asia/Dubai","Asia/Dushanbe","Asia/Famagusta","Asia/Gaza","Asia/Hebron","Asia/Hong_Kong","Asia/Hovd","Asia/Irkutsk","Asia/Jakarta","Asia/Jayapura","Asia/Jerusalem","Asia/Kabul","Asia/Kamchatka","Asia/Karachi","Asia/Katmandu","Asia/Khandyga","Asia/Krasnoyarsk","Asia/Kuala_Lumpur","Asia/Kuching","Asia/Kuwait","Asia/Macau","Asia/Magadan","Asia/Makassar","Asia/Manila","Asia/Muscat","Asia/Nicosia","Asia/Novokuznetsk","Asia/Novosibirsk","Asia/Omsk","Asia/Oral","Asia/Phnom_Penh","Asia/Pontianak","Asia/Pyongyang","Asia/Qatar","Asia/Qostanay","Asia/Qyzylorda","Asia/Rangoon","Asia/Riyadh","Asia/Saigon","Asia/Sakhalin","Asia/Samarkand","Asia/Seoul","Asia/Shanghai","Asia/Singapore","Asia/Srednekolymsk","Asia/Taipei","Asia/Tashkent","Asia/Tbilisi","Asia/Tehran","Asia/Thimphu","Asia/Tokyo","Asia/Tomsk","Asia/Ulaanbaatar","Asia/Urumqi","Asia/Ust-Nera","Asia/Vientiane","Asia/Vladivostok","Asia/Yakutsk","Asia/Yekaterinburg","Asia/Yerevan","Atlantic/Azores","Atlantic/Bermuda","Atlantic/Canary","Atlantic/Cape_Verde","Atlantic/Faeroe","Atlantic/Madeira","Atlantic/Reykjavik","Atlantic/South_Georgia","Atlantic/St_Helena","Atlantic/Stanley","Australia/Adelaide","Australia/Brisbane","Australia/Broken_Hill","Australia/Darwin","Australia/Eucla","Australia/Hobart","Australia/Lindeman","Australia/Lord_Howe","Australia/Melbourne","Australia/Perth","Australia/Sydney","Europe/Amsterdam","Europe/Andorra","Europe/Astrakhan","Europe/Athens","Europe/Belgrade","Europe/Berlin","Europe/Bratislava","Europe/Brussels","Europe/Bucharest","Europe/Budapest","Europe/Busingen","Europe/Chisinau","Europe/Copenhagen","Europe/Dublin","Europe/Gibraltar","Europe/Guernsey","Europe/Helsinki","Europe/Isle_of_Man","Europe/Istanbul","Europe/Jersey","Europe/Kaliningrad","Europe/Kiev","Europe/Kirov","Europe/Lisbon","Europe/Ljubljana","Europe/London","Europe/Luxembourg","Europe/Madrid","Europe/Malta","Europe/Mariehamn","Europe/Minsk","Europe/Monaco","Europe/Moscow","Europe/Oslo","Europe/Paris","Europe/Podgorica","Europe/Prague","Europe/Riga","Europe/Rome","Europe/Samara","Europe/San_Marino","Europe/Sarajevo","Europe/Saratov","Europe/Simferopol","Europe/Skopje","Europe/Sofia","Europe/Stockholm","Europe/Tallinn","Europe/Tirane","Europe/Ulyanovsk","Europe/Vaduz","Europe/Vatican","Europe/Vienna","Europe/Vilnius","Europe/Volgograd","Europe/Warsaw","Europe/Zagreb","Europe/Zurich","Indian/Antananarivo","Indian/Chagos","Indian/Christmas","Indian/Cocos","Indian/Comoro","Indian/Kerguelen","Indian/Mahe","Indian/Maldives","Indian/Mauritius","Indian/Mayotte","Indian/Reunion","Pacific/Apia","Pacific/Auckland","Pacific/Bougainville","Pacific/Chatham","Pacific/Easter","Pacific/Efate","Pacific/Enderbury","Pacific/Fakaofo","Pacific/Fiji","Pacific/Funafuti","Pacific/Galapagos","Pacific/Gambier","Pacific/Guadalcanal","Pacific/Guam","Pacific/Honolulu","Pacific/Kiritimati","Pacific/Kosrae","Pacific/Kwajalein","Pacific/Majuro","Pacific/Marquesas","Pacific/Midway","Pacific/Nauru","Pacific/Niue","Pacific/Norfolk","Pacific/Noumea","Pacific/Pago_Pago","Pacific/Palau","Pacific/Pitcairn","Pacific/Ponape","Pacific/Port_Moresby","Pacific/Rarotonga","Pacific/Saipan","Pacific/Tahiti","Pacific/Tarawa","Pacific/Tongatapu","Pacific/Truk","Pacific/Wake","Pacific/Wallis"],"description":"Home time zone"},"ioParticipants":{"type":"string","description":"Participant time zones"},"ioBusinessStart":{"type":"number","description":"Working hours start","minimum":0,"maximum":23},"ioBusinessEnd":{"type":"number","description":"Working hours end","minimum":1,"maximum":24},"ioUse24Hour":{"type":"boolean","description":"Use 24-hour time"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioMeetingSummary":{"type":"string","description":"Meeting time (home zone)"},"ioSchedule":{"type":"string","description":"Participant schedule"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/timer-555-calculator":{"post":{"operationId":"run_timer_555_calculator","summary":"555 Timer Calculator","tags":["Calculators"],"description":"Calculate 555 timer IC output frequency, period and duty cycle for an astable (oscillator) circuit, or pulse width for a monostable (one-shot) circuit, from resistor and capacitor values.\n\n[Try 555 Timer Calculator in your browser →](https://iotools.cloud/tool/timer-555-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMode":{"enum":["astable","monostable"],"description":"Circuit Mode"},"ioR1":{"type":"number","description":"R1 (Charge Resistor)","minimum":0},"ioR2":{"type":"number","description":"R2 (Discharge Resistor)","minimum":0},"ioRMono":{"type":"number","description":"R (Timing Resistor)","minimum":0},"ioResistanceUnit":{"enum":["ohm","kohm","megaohm"],"description":"Resistance Unit"},"ioCapacitance":{"type":"number","description":"Capacitance (C)","minimum":0},"ioCapacitanceUnit":{"enum":["pf","nf","uf","mf","f"],"description":"Capacitance Unit"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/triangle-calculator":{"post":{"operationId":"run_triangle_calculator","summary":"Triangle Calculator","tags":["Calculators"],"description":"Solve a triangle from any three known values (with at least one side): SSS, SAS, ASA, AAS, or the ambiguous SSA case. Computes the missing sides and angles, area, perimeter, heights, inradius, circumradius, and classifies the triangle by sides and angles.\n\n[Try Triangle Calculator in your browser →](https://iotools.cloud/tool/triangle-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSideA":{"type":"number","description":"Side a","minimum":0},"ioSideB":{"type":"number","description":"Side b","minimum":0},"ioSideC":{"type":"number","description":"Side c","minimum":0},"ioAngleA":{"type":"number","description":"Angle A (opposite a)","minimum":0},"ioAngleB":{"type":"number","description":"Angle B (opposite b)","minimum":0},"ioAngleC":{"type":"number","description":"Angle C (opposite c)","minimum":0},"ioAngleUnit":{"enum":["degrees","radians"],"description":"Angle unit"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Solution"},"ioSvg":{"type":"string","description":"Diagram (SVG source)"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/uptime-sla-calculator":{"post":{"operationId":"run_uptime_sla_calculator","summary":"Uptime & SLA Calculator","tags":["Calculators"],"description":"Calculate allowed downtime for an SLA uptime percentage (99.9%, 99.99%, five nines) across day, week, month, quarter and year — or the reverse: the SLA % a downtime target requires, plus your remaining error budget.\n\n[Try Uptime & SLA Calculator in your browser →](https://iotools.cloud/tool/uptime-sla-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMode":{"enum":["downtime","sla","budget"],"description":"Calculate"},"ioSlaPreset":{"enum":["99","99.5","99.9","99.95","99.99","99.999","custom"],"description":"Common tier"},"ioSlaPct":{"type":"number","description":"SLA %","minimum":0,"maximum":100},"ioTargetDowntime":{"type":"number","description":"Max downtime","minimum":0},"ioTargetDowntimeUnit":{"enum":["1","60","3600","86400"],"description":"Unit"},"ioTargetPeriod":{"enum":["31557600","7889400","2592000","604800","86400"],"description":"Per period"},"ioBudgetPeriod":{"enum":["31557600","7889400","2592000","604800","86400"],"description":"Budget period"},"ioElapsedDowntime":{"type":"number","description":"Downtime used so far","minimum":0},"ioElapsedDowntimeUnit":{"enum":["1","60","3600","86400"],"description":"Unit"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Result"},"ioPeriodTable":{"type":"string","description":"Allowed downtime by period"},"ioTierTable":{"type":"string","description":"SLA tier comparison"},"ioSlaTable":{"type":"string","description":"Equivalent downtime across periods"},"ioBudgetTable":{"type":"string","description":"Error budget breakdown"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/vo2-max-estimator-calculator":{"post":{"operationId":"run_vo2_max_estimator_calculator","summary":"VO2 Max Estimator Calculator","tags":["Calculators"],"description":"Estimate your VO₂ max (maximal oxygen uptake, ml/kg/min) from a Cooper 12-minute run, a 1.5-mile run, a YMCA 3-minute step test, or your resting heart rate (Uth–Sørensen). Also shows your fitness category by age and sex plus five heart-rate training zones.\n\n[Try VO2 Max Estimator Calculator in your browser →](https://iotools.cloud/tool/vo2-max-estimator-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioTestMethod":{"enum":["cooper","mile15","ymca","uth"],"description":"Test Method"},"ioAge":{"type":"number","description":"Age (years)","minimum":10,"maximum":100},"ioSex":{"enum":["male","female"],"description":"Sex"},"ioRestingHr":{"type":"number","description":"Resting HR (BPM)","minimum":30,"maximum":120},"ioCooperDistance":{"type":"number","description":"Distance run in 12 min (m)","minimum":500,"maximum":5000},"ioMileMinutes":{"type":"number","description":"1.5-mile time — Minutes","minimum":5,"maximum":30},"ioMileSeconds":{"type":"number","description":"1.5-mile time — Seconds","minimum":0,"maximum":59},"ioYmcaRecoveryHr":{"type":"number","description":"1-min recovery HR (BPM)","minimum":50,"maximum":220}},"required":["ioAge","ioRestingHr"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Result"},"ioNorms":{"type":"string","description":"Fitness Category by Age & Sex"},"ioZones":{"type":"string","description":"Heart Rate Training Zones"},"ioInterpretation":{"type":"string","description":"Interpretation"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/water-liquid-tank-volume-calculator":{"post":{"operationId":"run_water_liquid_tank_volume_calculator","summary":"Water & Liquid Tank Volume Calculator","tags":["Calculators"],"description":"Calculate the total and currently-filled volume of a liquid storage tank in liters, US/UK gallons, cubic meters, cubic feet and fluid ounces, plus the liquid's weight. Supports rectangular, vertical/horizontal cylinder, cone-frustum and capsule tanks.\n\n[Try Water & Liquid Tank Volume Calculator in your browser →](https://iotools.cloud/tool/water-liquid-tank-volume-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioTankShape":{"enum":["rectangular","vertical-cylinder","horizontal-cylinder","cone-frustum","capsule"],"description":"Tank Shape"},"ioLengthUnit":{"enum":["m","cm","mm","in","ft"],"description":"Length Unit"},"ioRectLength":{"type":"number","description":"Length","minimum":0},"ioRectWidth":{"type":"number","description":"Width","minimum":0},"ioRectHeight":{"type":"number","description":"Height","minimum":0},"ioCylDiameter":{"type":"number","description":"Diameter","minimum":0},"ioCylHeight":{"type":"number","description":"Height","minimum":0},"ioCylLength":{"type":"number","description":"Length","minimum":0},"ioFrustumTop":{"type":"number","description":"Top Diameter","minimum":0},"ioFrustumBottom":{"type":"number","description":"Bottom Diameter","minimum":0},"ioFrustumHeight":{"type":"number","description":"Height","minimum":0},"ioFillLevel":{"type":"number","description":"Fill Level (%)","minimum":0,"maximum":100},"ioLiquidType":{"enum":["water","gasoline","diesel","kerosene","crude-oil","vegetable-oil","milk","ethanol","sea-water","mercury"],"description":"Liquid Type"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResultsTable":{"type":"string","description":"Results"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/wavelength-frequency-calculator":{"post":{"operationId":"run_wavelength_frequency_calculator","summary":"Wavelength to Frequency Calculator","tags":["Calculators"],"description":"Convert between wavelength and frequency of electromagnetic waves using c = λf. Get the photon energy, the electromagnetic spectrum band (radio, microwave, infrared, visible, UV, X-ray, gamma) and an approximate colour for visible light.\n\n[Try Wavelength to Frequency Calculator in your browser →](https://iotools.cloud/tool/wavelength-frequency-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputMode":{"enum":["wavelength","frequency"],"description":"Convert"},"ioWavelength":{"type":"number","description":"Wavelength","minimum":0},"ioWavelengthUnit":{"enum":["1e-9","1e-6","1e-3","1e-2","1"],"description":"Wavelength unit"},"ioFrequency":{"type":"number","description":"Frequency","minimum":0},"ioFrequencyUnit":{"enum":["1","1e3","1e6","1e9","1e12"],"description":"Frequency unit"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Result"},"ioResults":{"type":"string","description":"Details"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/web-vitals-score-calculator":{"post":{"operationId":"run_web_vitals_score_calculator","summary":"Web Vitals Score Calculator","tags":["Calculators"],"description":"Grade your Core Web Vitals against Google's Good / Needs-Improvement / Poor thresholds. Enter LCP, INP, and CLS (plus optional FCP, TTFB, and TBT) to get an overall pass/fail verdict, a per-metric rating breakdown, and targeted improvement suggestions.\n\n[Try Web Vitals Score Calculator in your browser →](https://iotools.cloud/tool/web-vitals-score-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioLcp":{"type":"number","description":"LCP (ms)","minimum":0},"ioInp":{"type":"number","description":"INP (ms)","minimum":0},"ioCls":{"type":"number","description":"CLS","minimum":0},"ioFcp":{"type":"number","description":"FCP (ms)","minimum":0},"ioTtfb":{"type":"number","description":"TTFB (ms)","minimum":0},"ioTbt":{"type":"number","description":"TBT (ms)","minimum":0}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioVerdict":{"type":"string","description":"Verdict"},"ioSummary":{"type":"string","description":"Summary"},"ioMetrics":{"type":"string","description":"Metric breakdown"},"ioSuggestions":{"type":"string","description":"Suggestions"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/weighted-grade-average-calculator":{"post":{"operationId":"run_weighted_grade_average_calculator","summary":"Weighted Grade Average Calculator","tags":["Calculators"],"description":"Calculate a weighted grade average from a list of assignments or categories, each with its grade and weight. Shows a per-item breakdown, checks whether your weights sum to 100%, converts to a letter grade, and solves what score you still need to reach a target.\n\n[Try Weighted Grade Average Calculator in your browser →](https://iotools.cloud/tool/weighted-grade-average-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioAssignments":{"type":"string","description":"Assignments"},"ioLetterScale":{"enum":["standard","plus-minus"],"description":"Letter grade scale"},"ioTargetGrade":{"type":"number","description":"Target final grade %","minimum":0,"maximum":100}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Weighted average"},"ioBreakdown":{"type":"string","description":"Breakdown"},"ioSummary":{"type":"string","description":"Details"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/wire-size-calculator":{"post":{"operationId":"run_wire_size_calculator","summary":"Wire Size Calculator","tags":["Calculators"],"description":"Find the right wire gauge (AWG) for a circuit from its current, one-way run length, supply voltage, and acceptable voltage drop. Uses the NEC resistance and ampacity tables for copper and aluminum, in conduit, free air, or direct burial.\n\n[Try Wire Size Calculator in your browser →](https://iotools.cloud/tool/wire-size-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioLoadCurrent":{"type":"number","description":"Load Current (A)","minimum":0.01},"ioSupplyVoltage":{"type":"number","description":"Supply Voltage (V)","minimum":0.1},"ioCableLength":{"type":"number","description":"One-way Cable Length","minimum":0.1},"ioLengthUnit":{"enum":["ft","m"],"description":"Length Unit"},"ioVoltageSystem":{"enum":["ac1","ac3","dc"],"description":"Voltage System"},"ioConductor":{"enum":["copper","aluminum"],"description":"Conductor Material"},"ioInstallation":{"enum":["conduit","free_air","buried"],"description":"Installation"},"ioMaxVdPercent":{"type":"number","description":"Max Voltage Drop (%)","minimum":0.1,"maximum":20}},"required":["ioLoadCurrent","ioSupplyVoltage","ioCableLength"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioStatus":{"type":"string","description":"Recommendation"},"ioResult":{"type":"string","description":"Result"},"ioAwgTable":{"type":"string","description":"AWG Reference Table"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/working-hours-overtime-calculator":{"post":{"operationId":"run_working_hours_overtime_calculator","summary":"Working Hours & Overtime Calculator","tags":["Calculators"],"description":"Calculate regular hours, overtime hours and gross pay from a clock-in/clock-out shift, a break duration, and an overtime rule (daily 8h/10h or weekly 40h threshold) with a custom overtime rate multiplier.\n\n[Try Working Hours & Overtime Calculator in your browser →](https://iotools.cloud/tool/working-hours-overtime-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioTimeIn":{"type":"string","description":"Clock In"},"ioTimeOut":{"type":"string","description":"Clock Out"},"ioBreakMinutes":{"type":"number","description":"Break (minutes)","minimum":0,"maximum":480},"ioOvertimeRule":{"enum":["daily_8","daily_10","weekly_40","none"],"description":"Overtime Rule"},"ioHoursWorkedThisWeek":{"type":"number","description":"Hours already worked this week","minimum":0,"maximum":168},"ioOvertimeMultiplier":{"type":"number","description":"Overtime Multiplier","minimum":1,"maximum":5},"ioHourlyRate":{"type":"number","description":"Hourly Rate ($)","minimum":0}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioHoursWorked":{"type":"string","description":"Hours Worked"},"ioRegularHours":{"type":"string","description":"Regular Hours"},"ioOvertimeHours":{"type":"string","description":"Overtime Hours"},"ioRegularPay":{"type":"string","description":"Regular Pay"},"ioOvertimePay":{"type":"string","description":"Overtime Pay"},"ioGrossPay":{"type":"string","description":"Gross Pay"},"ioPayBreakdown":{"type":"string","description":"Pay Breakdown"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/voltage-divider-calculator":{"post":{"operationId":"run_voltage_divider_calculator","summary":"Voltage Divider Calculator","tags":["Calculators"],"description":"Calculate a two-resistor voltage divider's output voltage and current — Vin × R2 ÷ (R1 + R2). Add an optional load resistance to see how much a real downstream circuit (an ADC input, a sensor) shifts the output from the ideal, unloaded value.\n\n[Try Voltage Divider Calculator in your browser →](https://iotools.cloud/tool/voltage-divider-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioVin":{"type":"number","description":"Input Voltage (Vin)"},"ioR1":{"type":"number","description":"R1 — top resistor","minimum":0},"ioR2":{"type":"number","description":"R2 — bottom resistor","minimum":0},"ioRLoad":{"type":"number","description":"Load Resistance (optional)","minimum":0}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResultTable":{"type":"string","description":"Results"},"ioFormulas":{"type":"string","description":"Formulas & Steps"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/reynolds-number-calculator":{"post":{"operationId":"run_reynolds_number_calculator","summary":"Reynolds Number Calculator","tags":["Calculators"],"description":"Calculate the Reynolds number for pipe or duct flow and see whether it is laminar, transitional or turbulent. Enter a velocity or a volumetric flow rate, pick a fluid preset (water, air, oil, glycerin) or your own density and viscosity, and work in metric or imperial units.\n\n[Try Reynolds Number Calculator in your browser →](https://iotools.cloud/tool/reynolds-number-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputMode":{"enum":["velocity","flow"],"description":"Known Quantity"},"ioVelocity":{"type":"number","description":"Mean Velocity","minimum":0},"ioVelocityUnit":{"enum":["mps","fps"],"description":"Velocity Unit"},"ioFlowRate":{"type":"number","description":"Volumetric Flow Rate","minimum":0},"ioFlowUnit":{"enum":["lpm","m3h","gpm","cfm"],"description":"Flow Unit"},"ioGeometry":{"enum":["circular","rectangular","hydraulic"],"description":"Cross-section"},"ioPipeDiameter":{"type":"number","description":"Inside Diameter","minimum":0},"ioDuctWidth":{"type":"number","description":"Duct Width","minimum":0},"ioDuctHeight":{"type":"number","description":"Duct Height","minimum":0},"ioHydraulicDiameter":{"type":"number","description":"Hydraulic Diameter","minimum":0},"ioLengthUnit":{"enum":["mm","in","m"],"description":"Length Unit"},"ioFluid":{"enum":["water20","water60","seawater20","air20","air100","ethanol20","sae30","glycerin20","mercury20","custom"],"description":"Fluid"},"ioDensity":{"type":"number","description":"Density (kg/m³)","minimum":0},"ioViscosity":{"type":"number","description":"Viscosity","minimum":0},"ioViscosityUnit":{"enum":["cp","pas","cst"],"description":"Viscosity Unit"}},"required":["ioVelocity","ioPipeDiameter"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioStatus":{"type":"string","description":"Result"},"ioResult":{"type":"string","description":"Breakdown"},"ioRegimeTable":{"type":"string","description":"Flow Regimes"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/tap-drill-size-calculator":{"post":{"operationId":"run_tap_drill_size_calculator","summary":"Tap Drill Size Calculator","tags":["Calculators"],"description":"Find the correct tap drill size for any metric or imperial thread. Pick a thread from the ISO metric coarse/fine and UNC/UNF tables (or enter a custom major diameter and pitch), set the thread engagement you want, and get the theoretical hole size plus the nearest real drill — metric, fractional, number or letter — with the engagement it actually delivers.\n\n[Try Tap Drill Size Calculator in your browser →](https://iotools.cloud/tool/tap-drill-size-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioStandard":{"enum":["metric","imperial","custom"],"description":"Thread Standard"},"ioMetricThread":{"enum":["M1.6x0.35","M2x0.4","M2.5x0.45","M3x0.5","M3.5x0.6","M4x0.7","M5x0.8","M6x1","M8x1.25","M10x1.5","M12x1.75","M14x2","M16x2","M18x2.5","M20x2.5","M22x2.5","M24x3","M27x3","M30x3.5","M33x3.5","M36x4","M4x0.5","M5x0.5","M6x0.75","M8x1","M10x1.25","M10x1","M12x1.5","M12x1.25","M14x1.5","M16x1.5","M18x1.5","M20x1.5","M22x1.5","M24x2","M27x2","M30x2","M33x2","M36x3"],"description":"Metric Thread"},"ioImperialThread":{"enum":["#1-64-UNC","#2-56-UNC","#3-48-UNC","#4-40-UNC","#5-40-UNC","#6-32-UNC","#8-32-UNC","#10-24-UNC","#12-24-UNC","1/4-20-UNC","5/16-18-UNC","3/8-16-UNC","7/16-14-UNC","1/2-13-UNC","9/16-12-UNC","5/8-11-UNC","3/4-10-UNC","7/8-9-UNC","1-8-UNC","#0-80-UNF","#1-72-UNF","#2-64-UNF","#3-56-UNF","#4-48-UNF","#5-44-UNF","#6-40-UNF","#8-36-UNF","#10-32-UNF","#12-28-UNF","1/4-28-UNF","5/16-24-UNF","3/8-24-UNF","7/16-20-UNF","1/2-20-UNF","9/16-18-UNF","5/8-18-UNF","3/4-16-UNF","7/8-14-UNF","1-12-UNF"],"description":"Imperial Thread"},"ioCustomUnit":{"enum":["mm","in"],"description":"Custom Thread Units"},"ioMajorDiameter":{"type":"number","description":"Major Diameter","minimum":0},"ioPitch":{"type":"number","description":"Pitch (mm) or TPI","minimum":0},"ioEngagement":{"type":"number","description":"Thread Engagement (%)","minimum":50,"maximum":100},"ioDrillSet":{"enum":["auto","metric","imperial"],"description":"Available Drills"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioStatus":{"type":"string","description":"Recommended Drill"},"ioResult":{"type":"string","description":"Breakdown"},"ioAlternatives":{"type":"string","description":"Nearby Drills"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/3-way-text-diff-merge-viewer":{"post":{"operationId":"run_3_way_text_diff_merge_viewer","summary":"3-Way Text Diff & Merge Viewer","tags":["Editors"],"description":"Merge two edited versions of a text against their common base (a 3-way diff, like a Git merge). Auto-resolves non-overlapping edits and reports conflicts with a line-by-line status table.\n\n[Try 3-Way Text Diff & Merge Viewer in your browser →](https://iotools.cloud/tool/3-way-text-diff-merge-viewer/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioBaseText":{"type":"string","description":"Base (Common Ancestor)"},"ioLocalText":{"type":"string","description":"Local Version"},"ioRemoteText":{"type":"string","description":"Remote Version"},"ioConflictStrategy":{"enum":["markers","local","remote","base"],"description":"On Conflict"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioMergedText":{"type":"string","description":"Merged Text"},"ioSummary":{"type":"string"},"ioDiffTable":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/duplicate-lines-remover":{"post":{"operationId":"run_duplicate_lines_remover","summary":"Duplicate Lines Remover","tags":["Editors"],"description":"Remove duplicate lines from pasted or uploaded text. Choose case-sensitive or case-insensitive matching, trim whitespace before comparing, keep the first or last occurrence, drop blank lines, and preserve or sort the output order — with a lines-in/lines-out summary.\n\n[Try Duplicate Lines Remover in your browser →](https://iotools.cloud/tool/duplicate-lines-remover/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Text to Deduplicate"},"ioCaseSensitive":{"type":"boolean","description":"Case-sensitive comparison"},"ioTrimWhitespace":{"type":"boolean","description":"Trim whitespace before comparing"},"ioRemoveBlankLines":{"type":"boolean","description":"Remove blank lines"},"ioKeepOccurrence":{"enum":["first","last"],"description":"Which occurrence to keep"},"ioOrderMode":{"enum":["preserve","sort"],"description":"Output order"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutputText":{"type":"string","description":"Deduplicated Text"},"ioStats":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/git-conflict-remover":{"post":{"operationId":"run_git_conflict_remover","summary":"Git Conflict Remover","tags":["Editors"],"description":"Resolve Git merge conflicts in pasted code. Parses &lt;&lt;&lt;&lt;&lt;&lt;&lt;, =======, >>>>>>> (and optional diff3 |||||||) markers and rewrites every conflict block by keeping ours, theirs, both sides, or neither — removing all markers.\n\n[Try Git Conflict Remover in your browser →](https://iotools.cloud/tool/git-conflict-remover/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Code with Conflict Markers"},"ioMode":{"enum":["ours","theirs","both","none"],"description":"Resolve conflicts by keeping"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResolvedOutput":{"type":"string","description":"Resolved Output"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/line-tools":{"post":{"operationId":"run_line_tools","summary":"Line Tools","tags":["Editors"],"description":"Clean up and reorder lines of text in one pass: trim whitespace, drop empty or duplicate lines, sort alphabetically/numerically/by length, reverse or shuffle the order, and add line numbers — combine any of them and see a lines-in/lines-out summary. Runs entirely in your browser, no sign-up.\n\n[Try Line Tools in your browser →](https://iotools.cloud/tool/line-tools/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Lines"},"ioTrimLines":{"type":"boolean","description":"Trim whitespace from each line"},"ioRemoveEmptyLines":{"type":"boolean","description":"Remove empty lines"},"ioDedupe":{"type":"boolean","description":"Remove duplicate lines"},"ioSortMode":{"enum":["none","az","za","numeric-asc","numeric-desc","length-asc","length-desc","reverse","shuffle"],"description":"Sort / shuffle"},"ioAddNumbers":{"type":"boolean","description":"Add line numbers"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutputText":{"type":"string","description":"Result"},"ioStats":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/markdown-editor":{"post":{"operationId":"run_markdown_editor","summary":"Markdown Editor","tags":["Editors"],"description":"Write Markdown and render it to HTML with fine-grained Showdown options — autolinks, literal mid-word underscores/asterisks, strikethrough, tables, simple line breaks, open-links-in-new-window and emoji. Preview live and copy the source.\n\n[Try Markdown Editor in your browser →](https://iotools.cloud/tool/markdown-editor/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMarkdown":{"type":"string","description":"Markdown"},"ioSimplifiedAutoLink":{"type":"boolean","description":"Simplified auto-link — turn bare URLs into clickable links"},"ioLiteralMidWordUnderscores":{"type":"boolean","description":"Literal mid-word underscores — don't treat some_long_name as emphasis"},"ioLiteralMidWordAsterisks":{"type":"boolean","description":"Literal mid-word asterisks — don't treat a*b*c as emphasis"},"ioSupportStrikethrough":{"type":"boolean","description":"Strikethrough — render ~~text~~ as struck-out text"},"ioSupportTables":{"type":"boolean","description":"Tables — render GFM pipe tables (delimiter row needs |---|---|)"},"ioSimpleLineBreaks":{"type":"boolean","description":"Simple line breaks — turn a single newline into &lt;br> (GitHub comment style)"},"ioOpenLinksInNewWindow":{"type":"boolean","description":"Open links in new window — add target=\"_blank\" to output links"},"ioSupportEmoji":{"type":"boolean","description":"Emoji — convert shortcodes like :smile: to 😄"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioHtml":{"type":"string","description":"HTML source"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/accessible-color-pair-finder":{"post":{"operationId":"run_accessible_color_pair_finder","summary":"Accessible Color Pair Finder","tags":["Utilities"],"description":"Check WCAG 2.x color contrast between a foreground and background color: get the exact contrast ratio, pass/fail for AA and AAA at normal and large text sizes, and a suggested accessible foreground color when the pair fails.\n\n[Try Accessible Color Pair Finder in your browser →](https://iotools.cloud/tool/accessible-color-pair-finder/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioForegroundColor":{"type":"string","description":"Foreground (Text) Color"},"ioBackgroundColor":{"type":"string","description":"Background Color"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioContrastTable":{"type":"string","description":"Contrast Results"},"ioSuggestedForeground":{"type":"string","description":"Suggested Accessible Foreground (AA Normal, ≥ 4.5:1)"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ai-bot-access-tester":{"post":{"operationId":"run_ai_bot_access_tester","summary":"AI Bot Access Tester","tags":["Utilities"],"description":"Check which AI crawlers your robots.txt blocks. Tests GPTBot, ClaudeBot, Google-Extended, PerplexityBot, CCBot and 28 more against a pasted robots.txt using RFC 9309 precedence, grouped by whether the bot trains models, powers AI search, or fetches on a user's behalf — and emits a ready-to-paste block for the ones still allowed.\n\n[Try AI Bot Access Tester in your browser →](https://iotools.cloud/tool/ai-bot-access-tester/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioRobots":{"type":"string","description":"Robots.txt content"},"ioTestUrl":{"type":"string","description":"URL / path to test"},"ioPurpose":{"enum":["all","training","search","user"],"description":"Crawlers to show"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Summary"},"ioResults":{"type":"string","description":"Per-crawler verdict"},"ioSnippet":{"type":"string","description":"robots.txt block for every crawler still allowed"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/api-secret-scanner-redactor":{"post":{"operationId":"run_api_secret_scanner_redactor","summary":"API Secret Scanner & Redactor","tags":["Utilities"],"description":"Scan code, config files, or logs for hardcoded API keys, tokens, and passwords — over 20 provider-specific patterns plus optional generic secret detection — and produce a redacted copy.\n\n[Try API Secret Scanner & Redactor in your browser →](https://iotools.cloud/tool/api-secret-scanner-redactor/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Code, Config or Logs"},"ioRedactionStyle":{"enum":["label","mask","partial"],"description":"Redaction Style"},"ioGenericScan":{"type":"boolean","description":"Detect generic key/secret/password assignments (more matches, may include false positives)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Summary"},"ioFindings":{"type":"string","description":"Findings"},"ioRedactedOutput":{"type":"string","description":"Redacted Output"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/asn1-parser":{"post":{"operationId":"run_asn1_parser","summary":"ASN.1 / DER Parser","tags":["Utilities"],"description":"Parse a DER-encoded ASN.1 structure (Base64 or hex — X.509 certificates, PKCS blobs, and other DER-based formats) into a tag/length/value tree.\n\n[Try ASN.1 / DER Parser in your browser →](https://iotools.cloud/tool/asn1-parser/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioAsn1Input":{"type":"string","description":"ASN.1 Data (DER)"},"ioInputFormat":{"enum":["auto","pem","base64","hex"],"description":"Input Format"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioTree":{"type":"string","description":"Parsed Structure"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/barcode-check-digit-validator":{"post":{"operationId":"run_barcode_check_digit_validator","summary":"Barcode Check Digit Validator","tags":["Utilities"],"description":"Validate or compute the check digit for UPC-A, EAN-13, EAN-8, ISBN-10 and ISBN-13 codes using the standard GS1 mod-10 and ISBN mod-11 algorithms.\n\n[Try Barcode Check Digit Validator in your browser →](https://iotools.cloud/tool/barcode-check-digit-validator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioBarcodeFormat":{"enum":["upca","ean13","ean8","isbn10","isbn13"],"description":"Barcode Format"},"ioDigits":{"type":"string","description":"Barcode / ISBN Digits"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/base64-inspector":{"post":{"operationId":"run_base64_inspector","summary":"Base64 Inspector","tags":["Utilities"],"description":"Decode and inspect a Base64 or Base64URL string: validity with a specific failure reason, alphabet detection (standard vs URL-safe), padding correctness, decoded byte length, a hex/byte dump and a content-type guess (UTF-8 text, JSON, or binary with a recognized magic-byte signature).\n\n[Try Base64 Inspector in your browser →](https://iotools.cloud/tool/base64-inspector/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioBase64String":{"type":"string","description":"Base64 string"}},"required":["ioBase64String"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string"},"ioPreview":{"type":"string","description":"Decoded content preview"},"ioHexDump":{"type":"string","description":"Hex dump"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/bin-iin-lookup":{"post":{"operationId":"run_bin_iin_lookup","summary":"BIN/IIN Card Network Checker","tags":["Utilities"],"description":"Identify a payment card's network (Visa, Mastercard, Amex, Discover, JCB, Diners Club, UnionPay, Maestro) from its BIN/IIN, see the typical card number length, and verify the Luhn checksum. Network identification from public prefix ranges only — not an issuing-bank lookup.\n\n[Try BIN/IIN Card Network Checker in your browser →](https://iotools.cloud/tool/bin-iin-lookup/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCardNumber":{"type":"string","description":"BIN / IIN or Full Card Number"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/bitcoin-address-validator":{"post":{"operationId":"run_bitcoin_address_validator","summary":"Bitcoin Address Validator","tags":["Utilities"],"description":"Validate a Bitcoin address and identify its type — Legacy P2PKH, P2SH, Bech32 SegWit or Bech32m Taproot — with full Base58Check / Bech32 checksum verification and the decoded hash or witness program.\n\n[Try Bitcoin Address Validator in your browser →](https://iotools.cloud/tool/bitcoin-address-validator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioAddress":{"type":"string","description":"Bitcoin Address"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResultTable":{"type":"string","description":"Validation Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/certificate-transparency-log-lookup":{"post":{"operationId":"run_certificate_transparency_log_lookup","summary":"Certificate Transparency Log Lookup","tags":["Utilities"],"description":"Look up every TLS certificate ever issued for a domain in the public Certificate Transparency logs (crt.sh) — discover subdomains, issuers, validity windows and wildcard certs.\n\n[Try Certificate Transparency Log Lookup in your browser →](https://iotools.cloud/tool/certificate-transparency-log-lookup/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioDomain":{"type":"string","description":"Domain"},"ioIncludeSubdomains":{"type":"boolean","description":"Include subdomains (wildcard search)"},"ioUnexpiredOnly":{"type":"boolean","description":"Unexpired certificates only"},"ioWildcardOnly":{"type":"boolean","description":"Wildcard certificates only"}},"required":["ioDomain"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Summary"},"ioCerts":{"type":"string","description":"Certificates"},"ioNames":{"type":"string","description":"Unique names (subdomains)"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/character-encoding-detector":{"post":{"operationId":"run_character_encoding_detector","summary":"Character Encoding Detector","tags":["Utilities"],"description":"Detect the character encoding of pasted text or an uploaded file — BOM sniffing (UTF-8/UTF-16/UTF-32), a real UTF-8 continuation-byte validator, ASCII detection, and a byte-frequency heuristic for single-byte legacy charsets like Windows-1252 and ISO-8859-1 (Latin-1) when there's no BOM and the bytes aren't valid UTF-8.\n\n[Try Character Encoding Detector in your browser →](https://iotools.cloud/tool/character-encoding-detector/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Input Text"},"ioFile":{"type":"string","contentEncoding":"base64","description":"File (read as raw bytes)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string"},"ioCandidates":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/character-frequency-analyzer":{"post":{"operationId":"run_character_frequency_analyzer","summary":"Character Frequency Analyzer","tags":["Utilities"],"description":"Count how often each character appears in your text and see a sorted frequency table with counts and percentages — useful for cryptography, linguistics and data cleaning.\n\n[Try Character Frequency Analyzer in your browser →](https://iotools.cloud/tool/character-frequency-analyzer/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Text"},"ioCaseSensitive":{"type":"boolean","description":"Case sensitive"},"ioIncludeWhitespace":{"type":"boolean","description":"Include whitespace characters"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioStats":{"type":"string"},"ioFrequency":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/cidr-overlap-checker":{"post":{"operationId":"run_cidr_overlap_checker","summary":"CIDR Overlap Checker","tags":["Utilities"],"description":"Check whether two IPv4 CIDR blocks overlap. Parses each block into its network range and reports any conflicting address range — useful for network planning, firewall rules and avoiding routing conflicts.\n\n[Try CIDR Overlap Checker in your browser →](https://iotools.cloud/tool/cidr-overlap-checker/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCidrA":{"type":"string","description":"CIDR Block A"},"ioCidrB":{"type":"string","description":"CIDR Block B"}},"required":["ioCidrA","ioCidrB"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Overlap Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/color-contrast-grid":{"post":{"operationId":"run_color_contrast_grid","summary":"Color Contrast Grid","tags":["Utilities"],"description":"Check WCAG 2.x contrast ratios for an entire color palette at once: paste a list of hex colors and get a full pairwise grid with the exact ratio and AA pass/fail for every combination — ideal for auditing a design system's color palette for accessibility.\n\n[Try Color Contrast Grid in your browser →](https://iotools.cloud/tool/color-contrast-grid/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioColors":{"type":"string","description":"Colors"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioContrastGrid":{"type":"string","description":"Contrast Grid"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/color-distance-calculator":{"post":{"operationId":"run_color_distance_calculator","summary":"Color Distance Calculator","tags":["Utilities"],"description":"Measure how visually similar or different two colors are: enter two HEX colors to get the Euclidean RGB distance, the perceptually-weighted redmean distance, and a plain-English similarity rating.\n\n[Try Color Distance Calculator in your browser →](https://iotools.cloud/tool/color-distance-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioColorA":{"type":"string","description":"Color A"},"ioColorB":{"type":"string","description":"Color B"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioDistanceTable":{"type":"string","description":"Distance Results"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/color-picker":{"post":{"operationId":"run_color_picker","summary":"Color Picker","tags":["Utilities"],"description":"Pick a color and instantly convert it to every common notation — HEX, RGB, RGBA, HSL, HSLA, HSV/HSB, and CMYK — for use in code, design tools, and print.\n\n[Try Color Picker in your browser →](https://iotools.cloud/tool/color-picker/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioColor":{"type":"string","description":"Color"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioColorTable":{"type":"string","description":"Color Formats"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/cookie-parser":{"post":{"operationId":"run_cookie_parser","summary":"Cookie Parser","tags":["Utilities"],"description":"Parse a Cookie header, document.cookie string, or one or more Set-Cookie response headers into a readable name/value/attributes table — auto-decodes percent-encoded values.\n\n[Try Cookie Parser in your browser →](https://iotools.cloud/tool/cookie-parser/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCookieString":{"type":"string","description":"Cookie string"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioParsedCookies":{"type":"string","description":"Parsed Cookies"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/country-info-lookup":{"post":{"operationId":"run_country_info_lookup","summary":"Country Info Lookup","tags":["Utilities"],"description":"Look up any country's capital, population region, currency, calling code, flag emoji, ISO codes and top-level domain — pick from all 249 ISO 3166-1 countries and territories.\n\n[Try Country Info Lookup in your browser →](https://iotools.cloud/tool/country-info-lookup/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCountry":{"enum":["Afghanistan","Åland Islands","Albania","Algeria","American Samoa","Andorra","Angola","Anguilla","Antarctica","Antigua and Barbuda","Argentina","Armenia","Aruba","Australia","Austria","Azerbaijan","Bahamas","Bahrain","Bangladesh","Barbados","Belarus","Belgium","Belize","Benin","Bermuda","Bhutan","Bolivia","Bonaire, Sint Eustatius and Saba","Bosnia and Herzegovina","Botswana","Bouvet Island","Brazil","British Indian Ocean Territory","British Virgin Islands","Brunei","Bulgaria","Burkina Faso","Burundi","Cabo Verde","Cambodia","Cameroon","Canada","Cayman Islands","Central African Republic","Chad","Chile","China","Christmas Island","Cocos (Keeling) Islands","Colombia","Comoros","Congo (Democratic Republic)","Congo (Republic)","Cook Islands","Costa Rica","Côte d'Ivoire","Croatia","Cuba","Curaçao","Cyprus","Czech Republic","Denmark","Djibouti","Dominica","Dominican Republic","Ecuador","Egypt","El Salvador","Equatorial Guinea","Eritrea","Estonia","Eswatini","Ethiopia","Falkland Islands","Faroe Islands","Fiji","Finland","France","French Guiana","French Polynesia","French Southern Territories","Gabon","Gambia","Georgia","Germany","Ghana","Gibraltar","Greece","Greenland","Grenada","Guadeloupe","Guam","Guatemala","Guernsey","Guinea","Guinea-Bissau","Guyana","Haiti","Heard Island and McDonald Islands","Honduras","Hong Kong","Hungary","Iceland","India","Indonesia","Iran","Iraq","Ireland","Isle of Man","Israel","Italy","Jamaica","Japan","Jersey","Jordan","Kazakhstan","Kenya","Kiribati","Kuwait","Kyrgyzstan","Laos","Latvia","Lebanon","Lesotho","Liberia","Libya","Liechtenstein","Lithuania","Luxembourg","Macau","Madagascar","Malawi","Malaysia","Maldives","Mali","Malta","Marshall Islands","Martinique","Mauritania","Mauritius","Mayotte","Mexico","Micronesia","Moldova","Monaco","Mongolia","Montenegro","Montserrat","Morocco","Mozambique","Myanmar","Namibia","Nauru","Nepal","Netherlands","New Caledonia","New Zealand","Nicaragua","Niger","Nigeria","Niue","Norfolk Island","North Korea","North Macedonia","Northern Mariana Islands","Norway","Oman","Pakistan","Palau","Palestine","Panama","Papua New Guinea","Paraguay","Peru","Philippines","Pitcairn Islands","Poland","Portugal","Puerto Rico","Qatar","Réunion","Romania","Russia","Rwanda","Saint Barthélemy","Saint Helena, Ascension and Tristan da Cunha","Saint Kitts and Nevis","Saint Lucia","Saint Martin","Saint Pierre and Miquelon","Saint Vincent and the Grenadines","Samoa","San Marino","São Tomé and Príncipe","Saudi Arabia","Senegal","Serbia","Seychelles","Sierra Leone","Singapore","Sint Maarten","Slovakia","Slovenia","Solomon Islands","Somalia","South Africa","South Georgia and South Sandwich Islands","South Korea","South Sudan","Spain","Sri Lanka","Sudan","Suriname","Svalbard and Jan Mayen","Sweden","Switzerland","Syria","Taiwan","Tajikistan","Tanzania","Thailand","Timor-Leste","Togo","Tokelau","Tonga","Trinidad and Tobago","Tunisia","Turkey","Turkmenistan","Turks and Caicos Islands","Tuvalu","Uganda","Ukraine","United Arab Emirates","United Kingdom","United States","United States Minor Outlying Islands","Uruguay","U.S. Virgin Islands","Uzbekistan","Vanuatu","Vatican City","Venezuela","Vietnam","Wallis and Futuna","Western Sahara","Yemen","Zambia","Zimbabwe"],"description":"Country"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCountryInfo":{"type":"string","description":"Country info"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/cron-next-run-calculator":{"post":{"operationId":"run_cron_next_run_calculator","summary":"Cron Next Run Calculator","tags":["Utilities"],"description":"Parse a standard 5-field cron expression (minute hour day-of-month month day-of-week) and list the next run times after a given moment — supports *, comma lists, ranges, and step values.\n\n[Try Cron Next Run Calculator in your browser →](https://iotools.cloud/tool/cron-next-run-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCronExpression":{"type":"string","description":"Cron Expression"},"ioReferenceTime":{"type":"string","description":"Reference Time"},"ioOccurrenceCount":{"type":"number","description":"Number of Occurrences","minimum":1,"maximum":10}},"required":["ioCronExpression"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNextRuns":{"type":"string","description":"Next Run Times"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/css-custom-property-extractor":{"post":{"operationId":"run_css_custom_property_extractor","summary":"CSS Custom Property Extractor","tags":["Utilities"],"description":"Extract every CSS custom property (--variable) declared in a stylesheet, with its declared value and how many times it's referenced via var() — useful for design-system audits and spotting dead variables.\n\n[Try CSS Custom Property Extractor in your browser →](https://iotools.cloud/tool/css-custom-property-extractor/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCssInput":{"type":"string","description":"CSS / SCSS Input"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Summary"},"ioPropertiesTable":{"type":"string","description":"Custom Properties"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/css-validator":{"post":{"operationId":"run_css_validator","summary":"CSS Validator","tags":["Utilities"],"description":"Check CSS for structural and syntax mistakes — unbalanced braces and parentheses, unterminated strings and comments, empty rule blocks, and properties or values missing their other half. Does not validate CSS property-value grammar.\n\n[Try CSS Validator in your browser →](https://iotools.cloud/tool/css-validator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCssInput":{"type":"string","description":"CSS Input"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioValidationResult":{"type":"string","description":"Validation Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/csv-column-extractor":{"post":{"operationId":"run_csv_column_extractor","summary":"CSV Column Extractor","tags":["Utilities"],"description":"Extract specific columns from CSV data by column number or header name. Handles quoted fields with embedded commas, newlines and escaped double quotes — not a naive comma split — with comma, semicolon, tab or pipe delimiters.\n\n[Try CSV Column Extractor in your browser →](https://iotools.cloud/tool/csv-column-extractor/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCsvSource":{"type":"string","description":"CSV Input"},"ioDelimiter":{"enum":[",",";","tab","|"],"description":"Delimiter"},"ioFirstRowHeaders":{"type":"boolean","description":"First row contains headers"},"ioColumns":{"type":"string","description":"Columns to extract"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Extracted CSV"},"ioPreview":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/csv-pivot-table-generator":{"post":{"operationId":"run_csv_pivot_table_generator","summary":"CSV Pivot Table Generator","tags":["Utilities"],"description":"Pivot CSV data into a summary table: pick a row field, a column field, a numeric value field, and an aggregation (sum, count, average, min, max) to cross-tabulate your data.\n\n[Try CSV Pivot Table Generator in your browser →](https://iotools.cloud/tool/csv-pivot-table-generator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCsvInput":{"type":"string","description":"CSV Data"},"ioRowField":{"type":"string","description":"Row Field"},"ioColumnField":{"type":"string","description":"Column Field"},"ioValueField":{"type":"string","description":"Value Field"},"ioAggregation":{"enum":["sum","count","average","min","max"],"description":"Aggregation"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioPivotTable":{"type":"string","description":"Pivot Table"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/csv-profiler":{"post":{"operationId":"run_csv_profiler","summary":"CSV Profiler","tags":["Utilities"],"description":"Profile a CSV file column by column — inferred type, empty and distinct counts, value range, mean and the most common value — plus a data-quality report naming ragged rows, duplicate rows, mixed-type columns and candidate primary keys. Detects the delimiter automatically and runs entirely in your browser.\n\n[Try CSV Profiler in your browser →](https://iotools.cloud/tool/csv-profiler/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCsvSource":{"type":"string","description":"CSV Input"},"ioDelimiter":{"enum":["auto",",",";","tab","|"],"description":"Delimiter"},"ioFirstRowHeaders":{"type":"boolean","description":"First row contains headers"},"ioTrimValues":{"type":"boolean","description":"Trim whitespace around values"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOverview":{"type":"string","description":"Dataset overview"},"ioProfile":{"type":"string","description":"Column profile"},"ioIssues":{"type":"string","description":"Data-quality report"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/csv-random-sampler":{"post":{"operationId":"run_csv_random_sampler","summary":"CSV Random Sampler","tags":["Utilities"],"description":"Pull a random subset of rows from a CSV file — pick a sample size and get back a fresh random selection every time, in original row order, with the header row always kept.\n\n[Try CSV Random Sampler in your browser →](https://iotools.cloud/tool/csv-random-sampler/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCsvSource":{"type":"string","description":"CSV Input"},"ioDelimiter":{"enum":[",",";","tab","|"],"description":"Delimiter"},"ioFirstRowHeaders":{"type":"boolean","description":"First row contains headers"},"ioSampleSize":{"type":"number","description":"Rows to sample","minimum":1}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Sampled CSV"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/dns-lookup":{"post":{"operationId":"run_dns_lookup","summary":"DNS Lookup","tags":["Utilities"],"description":"Look up a domain's DNS records — A, AAAA, MX, NS, TXT, CNAME or SOA — over DNS-over-HTTPS, with each record's value and human-readable TTL.\n\n[Try DNS Lookup in your browser →](https://iotools.cloud/tool/dns-lookup/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioDomain":{"type":"string","description":"Domain name"},"ioRecordType":{"enum":["A","AAAA","MX","NS","TXT","CNAME","SOA"],"description":"Record type"}},"required":["ioDomain"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Query"},"ioRecords":{"type":"string","description":"Records"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/dns-propagation-checker":{"post":{"operationId":"run_dns_propagation_checker","summary":"DNS Propagation Checker","tags":["Utilities"],"description":"Check whether a DNS change has propagated by querying multiple public DNS-over-HTTPS resolvers (Cloudflare, Google, Quad9, AdGuard) at once and comparing their answers — see the resolved value, TTL and consensus for A, AAAA, MX, CNAME, TXT or NS records.\n\n[Try DNS Propagation Checker in your browser →](https://iotools.cloud/tool/dns-propagation-checker/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioDomain":{"type":"string","description":"Domain"},"ioRecordType":{"enum":["A","AAAA","MX","CNAME","TXT","NS"],"description":"Record type"}},"required":["ioDomain"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Summary"},"ioResults":{"type":"string","description":"Resolver results"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/dockerfile-linter":{"post":{"operationId":"run_dockerfile_linter","summary":"Dockerfile Linter","tags":["Utilities"],"description":"Lint a Dockerfile against 18 Hadolint-style best-practice rules (unpinned base images, running as root, secrets in ENV, layer bloat, and more) and auto-format it — combining RUN layers and sorting package lists. Runs entirely in your browser.\n\n[Try Dockerfile Linter in your browser →](https://iotools.cloud/tool/dockerfile-linter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioDockerfile":{"type":"string","description":"Dockerfile"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string"},"ioIssues":{"type":"string"},"ioFormatted":{"type":"string","description":"Formatted Dockerfile"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/domain-extractor":{"post":{"operationId":"run_domain_extractor","summary":"Domain Extractor","tags":["Utilities"],"description":"Extract, deduplicate and count the root domains referenced in a list of URLs or a block of text — resolved against the public suffix list so multi-part TLDs like .co.uk and .com.au collapse to the correct registrable domain instead of a naive last-two-labels split.\n\n[Try Domain Extractor in your browser →](https://iotools.cloud/tool/domain-extractor/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"URLs or Text"},"ioSort":{"enum":["count","alpha","found"],"description":"Sort order"},"ioSeparator":{"enum":["newline","comma","semicolon"],"description":"Separator"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCount":{"type":"string","description":"Unique domains found"},"ioExtractedDomains":{"type":"string","description":"Root Domains"},"ioDomainCounts":{"type":"string","description":"Domain Occurrence Counts"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/dotenv-diff-checker":{"post":{"operationId":"run_dotenv_diff_checker","summary":"Dotenv Diff Checker","tags":["Utilities"],"description":"Compare a .env file against its .env.example template to find missing, extra and value-mismatched keys. Parses export prefixes, quotes and inline comments; optional case-insensitive keys, value comparison and value masking. Runs entirely in your browser.\n\n[Try Dotenv Diff Checker in your browser →](https://iotools.cloud/tool/dotenv-diff-checker/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioExampleInput":{"type":"string","description":".env.example (template)"},"ioActualInput":{"type":"string","description":".env (actual)"},"ioCaseSensitive":{"type":"boolean","description":"Case-sensitive key comparison"},"ioCompareValues":{"type":"boolean","description":"Compare values (flag matched keys with different values)"},"ioMaskValues":{"type":"boolean","description":"Mask values in report"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string"},"ioReport":{"type":"string"},"ioExport":{"type":"string","description":"Exportable report"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/email-deliverability-checker":{"post":{"operationId":"run_email_deliverability_checker","summary":"Email Deliverability Checker","tags":["Utilities"],"description":"Check a domain's email authentication — MX, SPF, DMARC and BIMI DNS records — and get a deliverability score with the exact issues to fix.\n\n[Try Email Deliverability Checker in your browser →](https://iotools.cloud/tool/email-deliverability-checker/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioDomain":{"type":"string","description":"Domain or email address"}},"required":["ioDomain"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioScore":{"type":"string","description":"Deliverability score"},"ioRecords":{"type":"string","description":"Records found"},"ioIssues":{"type":"string","description":"Findings & recommendations"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/email-extractor":{"post":{"operationId":"run_email_extractor","summary":"Email Extractor","tags":["Utilities"],"description":"Extract and de-duplicate every email address from a block of text or a pasted document. Validates each match, lowercases it, removes duplicates, and lets you sort by domain or alphabetically.\n\n[Try Email Extractor in your browser →](https://iotools.cloud/tool/email-extractor/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Text with Email Addresses"},"ioSort":{"enum":["domain","email","found"],"description":"Sort order"},"ioSeparator":{"enum":["newline","comma","semicolon"],"description":"Separator"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCount":{"type":"string","description":"Emails found"},"ioExtractedEmails":{"type":"string","description":"Extracted Email Addresses"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/email-header-analyzer":{"post":{"operationId":"run_email_header_analyzer","summary":"Email Header Analyzer","tags":["Utilities"],"description":"Parse raw email headers to reveal the sender, the delivery hop chain with per-hop delays, SPF/DKIM/DMARC authentication results, spam-filter scores and every header grouped by purpose — all in your browser.\n\n[Try Email Header Analyzer in your browser →](https://iotools.cloud/tool/email-header-analyzer/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioRawHeaders":{"type":"string","description":"Raw Email Headers"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string"},"ioAuth":{"type":"string"},"ioHops":{"type":"string"},"ioSpam":{"type":"string"},"ioHeaders":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/email-normalizer":{"post":{"operationId":"run_email_normalizer","summary":"Email Normalizer","tags":["Utilities"],"description":"Normalize a list of email addresses to their canonical form: lowercase, strip Gmail-style dots, remove plus (+) aliases, collapse googlemail.com to gmail.com, and drop duplicates. Runs entirely in your browser.\n\n[Try Email Normalizer in your browser →](https://iotools.cloud/tool/email-normalizer/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioEmailInput":{"type":"string","description":"Email Addresses"},"ioRemoveDots":{"type":"boolean","description":"Remove dots from local part (Gmail-style)"},"ioRemoveAliases":{"type":"boolean","description":"Remove plus (+) aliases"},"ioLowercase":{"type":"boolean","description":"Convert to lowercase"},"ioRemoveDuplicates":{"type":"boolean","description":"Remove duplicate emails after normalization"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNormalizedOutput":{"type":"string","description":"Normalized Emails"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/emoji-picker":{"post":{"operationId":"run_emoji_picker","summary":"Emoji Picker","tags":["Utilities"],"description":"Search and browse every Unicode emoji by keyword, category and version. See each emoji's code points (U+XXXX), UTF-16 escape sequence and official name, then copy what you need.\n\n[Try Emoji Picker in your browser →](https://iotools.cloud/tool/emoji-picker/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSearch":{"type":"string","description":"Search"},"ioCategory":{"enum":["any","Smileys & Emotion","People & Body","Animals & Nature","Food & Drink","Travel & Places","Activities","Objects","Symbols","Flags"],"description":"Category"},"ioVersion":{"enum":["any","0.6","0.7","1.0","2.0","3.0","4.0","5.0","11.0","12.0","12.1","13.0","13.1","14.0","15.0","15.1"],"description":"Emoji version"},"ioLimit":{"type":"number","description":"Max results","minimum":10,"maximum":300}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCount":{"type":"string","description":"Matches"},"ioResults":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/env-var-template-expander":{"post":{"operationId":"run_env_var_template_expander","summary":"Env Var Template Expander","tags":["Utilities"],"description":"Expand a template by substituting ${VAR}, {{VAR}}, %VAR% or $VAR placeholders with values from .env file content. Auto-detects syntax, leaves or blanks unresolved variables, optional case-insensitive matching, and reports resolved vs. unresolved counts.\n\n[Try Env Var Template Expander in your browser →](https://iotools.cloud/tool/env-var-template-expander/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioTemplateInput":{"type":"string","description":"Template"},"ioEnvInput":{"type":"string","description":"Environment Variables (.env)"},"ioSyntaxMode":{"enum":["auto","dollar-brace","double-brace","percent","dollar-plain"],"description":"Variable Syntax"},"ioUnresolvedBehavior":{"enum":["leave","empty"],"description":"Unresolved variables"},"ioCaseSensitive":{"type":"boolean","description":"Case-sensitive variable names"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioExpandedOutput":{"type":"string","description":"Expanded Output"},"ioSummary":{"type":"string"},"ioUnresolved":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ethereum-checksum-validator":{"post":{"operationId":"run_ethereum_checksum_validator","summary":"Ethereum Checksum Validator","tags":["Utilities"],"description":"Validate the EIP-55 mixed-case checksum of one or more Ethereum / EVM addresses and show the canonical checksummed form. Works for any EVM chain (Ethereum, Polygon, BSC, Arbitrum, Optimism, Base).\n\n[Try Ethereum Checksum Validator in your browser →](https://iotools.cloud/tool/ethereum-checksum-validator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioAddresses":{"type":"string","description":"Ethereum / EVM Addresses"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResultsTable":{"type":"string","description":"Validation Results"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/file-extension-lookup":{"post":{"operationId":"run_file_extension_lookup","summary":"File Extension Lookup","tags":["Utilities"],"description":"Search 507 file extensions by extension, MIME type, description or category and see the format name, popularity, and which apps open it on Windows, macOS and Linux.\n\n[Try File Extension Lookup in your browser →](https://iotools.cloud/tool/file-extension-lookup/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSearch":{"type":"string","description":"Search"},"ioSearchMode":{"enum":["all","ext","mime","cat"],"description":"Search in"},"ioPopularity":{"enum":["all","common","rare"],"description":"Popularity"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Results"},"ioResults":{"type":"string","description":"Matching extensions"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/file-hash-calculator":{"post":{"operationId":"run_file_hash_calculator","summary":"File Hash Calculator","tags":["Utilities"],"description":"Compute MD5, SHA-1, SHA-256, SHA-512 and SHA3-256 hashes of pasted text or an uploaded file, all at once, in hex (lowercase/uppercase, with or without colons) — and verify against an expected hash.\n\n[Try File Hash Calculator in your browser →](https://iotools.cloud/tool/file-hash-calculator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Text to hash"},"ioFile":{"type":"string","contentEncoding":"base64","description":"File (hashed as raw bytes)"},"ioAlgoMd5":{"type":"boolean","description":"MD5"},"ioAlgoSha1":{"type":"boolean","description":"SHA-1"},"ioAlgoSha256":{"type":"boolean","description":"SHA-256"},"ioAlgoSha512":{"type":"boolean","description":"SHA-512"},"ioAlgoSha3":{"type":"boolean","description":"SHA3-256"},"ioHashFormat":{"enum":["lowercase","uppercase","lowercase-colons","uppercase-colons"],"description":"Hash format"},"ioExpectedHash":{"type":"string","description":"Expected hash (optional)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioHashResults":{"type":"string","description":"Hashes"},"ioVerifyResult":{"type":"string","description":"Verification result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/git-cheatsheet":{"post":{"operationId":"run_git_cheatsheet","summary":"Git Cheat Sheet","tags":["Utilities"],"description":"Searchable reference of the most common Git commands, grouped by task (setup, branching, committing, remotes, undoing changes, stashing and tags). Type to instantly filter the table by command, group or description.\n\n[Try Git Cheat Sheet in your browser →](https://iotools.cloud/tool/git-cheatsheet/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSearch":{"type":"string","description":"Search commands"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string","description":"Git commands"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/github-actions-yaml-linter":{"post":{"operationId":"run_github_actions_yaml_linter","summary":"GitHub Actions YAML Linter","tags":["Utilities"],"description":"Lint a GitHub Actions workflow YAML file in your browser. Catches syntax errors (tabs, unclosed quotes, duplicate keys), missing required keys (on, jobs), jobs without runs-on or steps, and unpinned or @main/@master action references — reported as a severity summary and a line-by-line issues table.\n\n[Try GitHub Actions YAML Linter in your browser →](https://iotools.cloud/tool/github-actions-yaml-linter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputYaml":{"type":"string","description":"GitHub Actions Workflow YAML"},"ioHints":{"type":"boolean","description":"Show best-practice hints (SHA pinning, timeouts, deprecated commands)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string"},"ioIssues":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/gzip-zlib-deflate-tester":{"post":{"operationId":"run_gzip_zlib_deflate_tester","summary":"Gzip/Zlib/Deflate Tester","tags":["Utilities"],"description":"Compress text with gzip, zlib (deflate with header), or raw deflate, and view compression stats — or decompress base64/hex encoded compressed data back to text. Runs entirely in your browser.\n\n[Try Gzip/Zlib/Deflate Tester in your browser →](https://iotools.cloud/tool/gzip-zlib-deflate-tester/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputData":{"type":"string","description":"Input Data"},"ioMode":{"enum":["compress","decompress"],"description":"Mode"},"ioFormatCompress":{"enum":["gzip","zlib","deflate-raw"],"description":"Format"},"ioFormat":{"enum":["gzip","zlib","deflate-raw","auto"],"description":"Format"},"ioInputEncoding":{"enum":["base64","hex"],"description":"Input Encoding"},"ioOutputEncoding":{"enum":["base64","hex"],"description":"Output Encoding"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Output"},"ioStatsTable":{"type":"string","description":"Compression Stats"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/har-file-performance-analyzer":{"post":{"operationId":"run_har_file_performance_analyzer","summary":"HAR File Performance Analyzer","tags":["Utilities"],"description":"Analyze a HAR (HTTP Archive) file's performance — total/median/p90 load time, TTFB, status/type/domain breakdowns, and the slowest and largest requests.\n\n[Try HAR File Performance Analyzer in your browser →](https://iotools.cloud/tool/har-file-performance-analyzer/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioHarInput":{"type":"string","description":"HAR Content"},"ioFilterType":{"enum":["any","document","xhr","script","stylesheet","image","font","media","other"],"description":"Type"},"ioFilterStatus":{"enum":["any","2xx","3xx","4xx","5xx","failed"],"description":"Status"},"ioTopN":{"enum":["10","20","50"],"description":"Top N"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Summary"},"ioByType":{"type":"string","description":"By Content Type"},"ioByDomain":{"type":"string","description":"By Domain"},"ioSlowest":{"type":"string","description":"Slowest Requests"},"ioLargest":{"type":"string","description":"Largest Requests"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/hex-dump-viewer":{"post":{"operationId":"run_hex_dump_viewer","summary":"Hex Dump Viewer","tags":["Utilities"],"description":"View any text or file as a classic hex dump — byte offset, hexadecimal bytes and printable-ASCII columns side by side, like xxd or hexdump -C. Configure bytes per row, byte grouping and a hex or decimal offset.\n\n[Try Hex Dump Viewer in your browser →](https://iotools.cloud/tool/hex-dump-viewer/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Text Input"},"ioFile":{"type":"string","contentEncoding":"base64","description":"File (read as raw bytes)"},"ioBytesPerRow":{"enum":["8","16","32"],"description":"Bytes per row"},"ioByteGrouping":{"enum":["1","2","4"],"description":"Byte grouping"},"ioOffsetFormat":{"enum":["hex","dec"],"description":"Offset format"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioHexDump":{"type":"string","description":"Hex Dump"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/html-validator":{"post":{"operationId":"run_html_validator","summary":"HTML Validator","tags":["Utilities"],"description":"Check HTML markup for structural problems — unclosed and mismatched tags, duplicate IDs, deprecated elements, missing required attributes (img alt/src, a href), and block-inside-inline nesting — with a per-issue list of line numbers. A lightweight structural linter that runs entirely in your browser.\n\n[Try HTML Validator in your browser →](https://iotools.cloud/tool/html-validator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioHtmlInput":{"type":"string","description":"HTML Input"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string"},"ioIssues":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/http-header-analyzer":{"post":{"operationId":"run_http_header_analyzer","summary":"HTTP Header Analyzer","tags":["Utilities"],"description":"Paste raw HTTP request or response headers and get them parsed, categorized (security, caching, CORS, content) and explained one by one, plus a JSON export — all in your browser.\n\n[Try HTTP Header Analyzer in your browser →](https://iotools.cloud/tool/http-header-analyzer/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioHeadersInput":{"type":"string","description":"HTTP Headers"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string"},"ioHeaders":{"type":"string"},"ioJsonOutput":{"type":"string","description":"JSON"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/http-status-codes":{"post":{"operationId":"run_http_status_codes","summary":"HTTP Status Codes","tags":["Utilities"],"description":"Look up any HTTP status code — 200, 301, 404, 429, 502 and the rest — with its reason phrase, category, defining RFC and a plain-English explanation. Search by code, group (4xx), name or keyword.\n\n[Try HTTP Status Codes in your browser →](https://iotools.cloud/tool/http-status-codes/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSearch":{"type":"string","description":"Search"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Result"},"ioResults":{"type":"string","description":"HTTP status codes"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/iban-validator":{"post":{"operationId":"run_iban_validator","summary":"IBAN Validator","tags":["Utilities"],"description":"Validate an International Bank Account Number (IBAN). Checks the country code, the country-specific length, and the ISO 7064 MOD-97-10 checksum, and shows the country, check digits, BBAN and correctly grouped IBAN.\n\n[Try IBAN Validator in your browser →](https://iotools.cloud/tool/iban-validator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioIban":{"type":"string","description":"IBAN"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Validation Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/isbn-validator":{"post":{"operationId":"run_isbn_validator","summary":"ISBN Validator","tags":["Utilities"],"description":"Validate an ISBN-10 or ISBN-13 book number by its check digit, and convert a valid ISBN-10 to its ISBN-13 equivalent (and 978-prefixed ISBN-13 back to ISBN-10). Spaces and hyphens are ignored.\n\n[Try ISBN Validator in your browser →](https://iotools.cloud/tool/isbn-validator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioIsbn":{"type":"string","description":"ISBN"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Validation Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/json-compare":{"post":{"operationId":"run_json_compare","summary":"JSON Compare","tags":["Utilities"],"description":"Compare two JSON documents and get a clear diff of exactly what changed — every added, removed and changed value listed by its key path. Objects compare by key, arrays by index. Runs entirely in your browser.\n\n[Try JSON Compare in your browser →](https://iotools.cloud/tool/json-compare/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioLeftJson":{"type":"string","description":"Left JSON"},"ioRightJson":{"type":"string","description":"Right JSON"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioDiff":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/json-key-extractor":{"post":{"operationId":"run_json_key_extractor","summary":"JSON Key Extractor","tags":["Utilities"],"description":"Extract every unique key or key path from a JSON document, with a count of how many times each one occurs. Switch between bare key names and full array-normalized paths to audit schema consistency across a dataset.\n\n[Try JSON Key Extractor in your browser →](https://iotools.cloud/tool/json-key-extractor/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInput":{"type":"string","description":"JSON input"},"ioMode":{"enum":["name","path"],"description":"Extract as"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioKeys":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/twitter-character-counter":{"post":{"operationId":"run_twitter_character_counter","summary":"Twitter Character Counter","tags":["Utilities"],"description":"Count characters the way X (Twitter) does: links always count as a fixed 23 characters (t.co), CJK and other wide Unicode characters count as 2, and everything else counts as 1 — against the 280-character limit.\n\n[Try Twitter Character Counter in your browser →](https://iotools.cloud/tool/twitter-character-counter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioTweetText":{"type":"string","description":"Tweet"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioStats":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/jsonpath-tester":{"post":{"operationId":"run_jsonpath_tester","summary":"JSONPath Tester","tags":["Utilities"],"description":"Query a JSON document with a JSONPath expression and see every matching value next to its exact resolved path. Supports wildcards, recursive descent, array slices and filter expressions. Runs entirely in your browser.\n\n[Try JSONPath Tester in your browser →](https://iotools.cloud/tool/jsonpath-tester/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioJsonInput":{"type":"string","description":"JSON data"},"ioPathExpression":{"type":"string","description":"JSONPath expression"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Result"},"ioMatches":{"type":"string","description":"Matches"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/jwt-decode":{"post":{"operationId":"run_jwt_decode","summary":"JWT Decoder","tags":["Utilities"],"description":"Decode a JSON Web Token (JWT) in your browser — split it into header, payload and signature, base64url-decode and pretty-print the header and payload as JSON, and read the registered date claims (iat, nbf, exp) as human-readable UTC times. Inspect only; the signature is never verified and the token never leaves your browser.\n\n[Try JWT Decoder in your browser →](https://iotools.cloud/tool/jwt-decode/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioJwtToken":{"type":"string","description":"JWT to decode"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioHeader":{"type":"string","description":"Header"},"ioPayload":{"type":"string","description":"Payload"},"ioSignature":{"type":"string","description":"Signature (raw — not verified)"},"ioClaims":{"type":"string","description":"Registered date claims"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/jwt-expiry-checker":{"post":{"operationId":"run_jwt_expiry_checker","summary":"JWT Expiry Checker","tags":["Utilities"],"description":"Paste a JWT to decode its payload and check whether it is expired, not yet valid, or active — with the exp, nbf and iat claims converted from Unix time to human-readable ISO 8601 UTC. The token is decoded in your browser and never uploaded.\n\n[Try JWT Expiry Checker in your browser →](https://iotools.cloud/tool/jwt-expiry-checker/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioJwt":{"type":"string","description":"JWT Token"},"ioReferenceTime":{"type":"string","description":"Reference Time (now)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioStatus":{"type":"string","description":"Status"},"ioClaims":{"type":"string","description":"Time Claims"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/jwt-verifier":{"post":{"operationId":"run_jwt_verifier","summary":"JWT Verifier","tags":["Utilities"],"description":"Verify a JSON Web Token (JWT) — cryptographically check its signature against an HMAC secret (HS256, HS384 or HS512), confirm it hasn't expired (exp) or isn't yet valid (nbf), and view the decoded header and payload once verified. This checks the signature; it doesn't just decode it. Entirely in your browser — nothing is uploaded.\n\n[Try JWT Verifier in your browser →](https://iotools.cloud/tool/jwt-verifier/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioJwtToken":{"type":"string","description":"JWT to verify"},"ioSecret":{"type":"string","description":"Secret (HMAC key)"},"ioReferenceTime":{"type":"string","description":"Reference Time (now)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioVerificationStatus":{"type":"string","description":"Verification result"},"ioHeader":{"type":"string","description":"Header (shown once verified)"},"ioPayload":{"type":"string","description":"Payload (shown once verified)"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/keycode-info":{"post":{"operationId":"run_keycode_info","summary":"JavaScript Keycode Info","tags":["Utilities"],"description":"Look up the JavaScript keyCode, event.code, event.key value, keyboard location and category for any key — type a character, key name (Enter, ArrowUp, Shift), event.code, or a numeric keyCode. Runs entirely in your browser.\n\n[Try JavaScript Keycode Info in your browser →](https://iotools.cloud/tool/keycode-info/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioQuery":{"type":"string","description":"Key or key code"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioKeyInfo":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/kubernetes-yaml-validator":{"post":{"operationId":"run_kubernetes_yaml_validator","summary":"Kubernetes YAML Validator","tags":["Utilities"],"description":"Check Kubernetes manifests before they reach a cluster: YAML syntax errors with line and column, plus API-level problems kubectl would reject — removed apiVersions, kind/apiVersion mismatches, invalid RFC 1123 names, selectors that don't match their pod template labels, unquoted ConfigMap values, missing pathType on an Ingress — and production warnings like :latest images and missing resource limits. Multi-document files supported. Runs entirely in your browser; nothing is uploaded.\n\n[Try Kubernetes YAML Validator in your browser →](https://iotools.cloud/tool/kubernetes-yaml-validator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputYaml":{"type":"string","description":"Kubernetes YAML"},"ioProfile":{"enum":["balanced","basic","strict"],"description":"Validation profile"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioStatus":{"type":"string","description":"Result"},"ioFindings":{"type":"string","description":"Findings"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/json-pointer-evaluator":{"post":{"operationId":"run_json_pointer_evaluator","summary":"JSON Pointer Evaluator","tags":["Utilities"],"description":"Evaluate a JSON Pointer (RFC 6901) against a JSON document and see the exact value it resolves to — useful for testing pointer expressions before wiring them into code.\n\n[Try JSON Pointer Evaluator in your browser →](https://iotools.cloud/tool/json-pointer-evaluator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioJson":{"type":"string","description":"JSON document"},"ioPointer":{"type":"string","description":"JSON Pointer"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Resolved value"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/line-counter":{"post":{"operationId":"run_line_counter","summary":"Line Counter","tags":["Utilities"],"description":"Count lines in pasted or uploaded text — total lines, blank lines, non-blank lines, words and characters. Handles mixed CRLF/LF/CR line endings correctly, updated live as you type.\n\n[Try Line Counter in your browser →](https://iotools.cloud/tool/line-counter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Your text"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioStats":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/list-set-operations":{"post":{"operationId":"run_list_set_operations","summary":"List Set Operations","tags":["Utilities"],"description":"Compare two text lists and compute their union, intersection, difference or symmetric difference — one item per line, with an optional case-insensitive mode.\n\n[Try List Set Operations in your browser →](https://iotools.cloud/tool/list-set-operations/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioListA":{"type":"string","description":"List A"},"ioListB":{"type":"string","description":"List B"},"ioOperation":{"enum":["union","intersection","difference-ab","difference-ba","symmetric"],"description":"Operation"},"ioCaseSensitive":{"type":"boolean","description":"Case-sensitive comparison"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Result"},"ioCount":{"type":"string","description":"Total"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/llm-token-count-estimator":{"post":{"operationId":"run_llm_token_count_estimator","summary":"LLM Token Count Estimator","tags":["Utilities"],"description":"Estimate how many tokens your text will use across GPT-4o, Claude, Gemini and more, with a context-window gauge and side-by-side API cost estimates. Approximate (chars-per-token heuristic), not an exact tokenizer.\n\n[Try LLM Token Count Estimator in your browser →](https://iotools.cloud/tool/llm-token-count-estimator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Text"},"ioModel":{"enum":["gpt-4o","gpt-4o-mini","gpt-4-turbo","gpt-4","gpt-3.5-turbo","o1","o1-mini","claude-3-5-sonnet","claude-3-opus","claude-3-haiku","gemini-1-5-pro","gemini-1-5-flash"],"description":"Target model"},"ioOutputTokens":{"type":"number","description":"Expected output tokens","minimum":0,"maximum":200000}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioStats":{"type":"string"},"ioContextHtml":{"type":"string","description":"Context window (HTML)"},"ioCostTable":{"type":"string"},"ioVizHtml":{"type":"string","description":"Visualization (HTML)"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/luhn-algorithm-validator":{"post":{"operationId":"run_luhn_algorithm_validator","summary":"Luhn Algorithm Validator","tags":["Utilities"],"description":"Validate a number against the Luhn (mod 10) checksum — credit cards, IMEIs, SINs and any Luhn-protected identifier — or compute the correct check digit for a number that is missing one. Spaces, dashes and dots are ignored.\n\n[Try Luhn Algorithm Validator in your browser →](https://iotools.cloud/tool/luhn-algorithm-validator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMode":{"enum":["validate","complete"],"description":"Mode"},"ioNumber":{"type":"string","description":"Number"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/lz4-compression":{"post":{"operationId":"run_lz4_compression","summary":"LZ4 Compression Tool","tags":["Utilities"],"description":"Compress or decompress data with the fast LZ4 algorithm, right in your browser — from a file, pasted text, or Base64. Get the Base64 result plus size and ratio stats.\n\n[Try LZ4 Compression Tool in your browser →](https://iotools.cloud/tool/lz4-compression/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMode":{"enum":["compress","decompress"],"description":"Mode"},"ioFile":{"type":"string","contentEncoding":"base64","description":"Upload a file"},"ioInputText":{"type":"string","description":"Input text"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioStats":{"type":"string","description":"Statistics"},"ioOutput":{"type":"string","description":"Output"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/markdown-link-image-extractor":{"post":{"operationId":"run_markdown_link_image_extractor","summary":"Markdown Link & Image Extractor","tags":["Utilities"],"description":"Extract every link and image from Markdown — inline, reference-style and autolinks — as a filterable table (also CSV) or JSON. Classifies each URL as external or internal, resolves reference definitions, and optionally deduplicates by URL.\n\n[Try Markdown Link & Image Extractor in your browser →](https://iotools.cloud/tool/markdown-link-image-extractor/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMarkdownInput":{"type":"string","description":"Markdown Input"},"ioExtractType":{"enum":["all","links","images"],"description":"Extract"},"ioFilterLocation":{"enum":["all","external","internal"],"description":"Filter by location"},"ioResolveReferences":{"type":"boolean","description":"Resolve reference-style links to their definitions"},"ioDeduplicate":{"type":"boolean","description":"Deduplicate by URL"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioExtractorStatsHtml":{"type":"string","description":"Summary HTML"},"ioExtractorTable":{"type":"string","description":"Extracted Result"},"ioExtractorJson":{"type":"string","description":"JSON"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/markdown-outline-extractor":{"post":{"operationId":"run_markdown_outline_extractor","summary":"Markdown Outline Extractor","tags":["Utilities"],"description":"Extract a heading outline from Markdown — every ATX (#) and Setext (underline-style) heading, with its level, line number and a ready-to-use GitHub-style anchor slug for building a table of contents.\n\n[Try Markdown Outline Extractor in your browser →](https://iotools.cloud/tool/markdown-outline-extractor/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMarkdown":{"type":"string","description":"Markdown Input"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutline":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/mime-type-lookup":{"post":{"operationId":"run_mime_type_lookup","summary":"MIME Type Lookup","tags":["Utilities"],"description":"Look up the MIME type for a file extension, or every extension that maps to a MIME type. Type an extension (.pdf, mp4) or a MIME type (image/png) and get matching extension, MIME type and category rows.\n\n[Try MIME Type Lookup in your browser →](https://iotools.cloud/tool/mime-type-lookup/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMimeQuery":{"type":"string","description":"Extension or MIME type"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Results"},"ioResults":{"type":"string","description":"Matches"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/mime-types-cheatsheet":{"post":{"operationId":"run_mime_types_cheatsheet","summary":"MIME Types Cheatsheet","tags":["Utilities"],"description":"Browse a comprehensive reference table of file extensions and their MIME (media) types, grouped by category. Filter instantly by extension, MIME type, or category to find the right Content-Type.\n\n[Try MIME Types Cheatsheet in your browser →](https://iotools.cloud/tool/mime-types-cheatsheet/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSearch":{"type":"string","description":"Search"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioTable":{"type":"string","description":"MIME Types & File Extensions"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ngram-extractor":{"post":{"operationId":"run_ngram_extractor","summary":"N-gram Extractor","tags":["Utilities"],"description":"Extract n-gram (word sequence) frequency from text — pick a gram size from 1 (single words) to 5, get a ranked frequency table with counts and percentages, and optionally drop n-grams made up entirely of stop words.\n\n[Try N-gram Extractor in your browser →](https://iotools.cloud/tool/ngram-extractor/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Input Text"},"ioN":{"type":"number","description":"N-gram size (N)","minimum":1,"maximum":5},"ioCaseSensitive":{"type":"boolean","description":"Case sensitive"},"ioIgnoreStopWords":{"type":"boolean","description":"Ignore stop-word-only n-grams"},"ioTopN":{"type":"number","description":"Show top N results","minimum":5,"maximum":200}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioFrequency":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/pdf-signature-checker":{"post":{"operationId":"run_pdf_signature_checker","summary":"PDF Signature Checker","tags":["Utilities"],"description":"Check a PDF's digital signatures — see each signer's certificate (subject, issuer, validity), when it was signed, and whether the document still matches the digest that was actually signed (tamper detection). Parsed entirely in your browser; the file is never uploaded.\n\n[Try PDF Signature Checker in your browser →](https://iotools.cloud/tool/pdf-signature-checker/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioFile":{"type":"string","contentEncoding":"base64","description":"PDF file"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string"},"ioCertificates":{"type":"string"},"ioWarnings":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/password-policy-tester":{"post":{"operationId":"run_password_policy_tester","summary":"Password Policy Tester","tags":["Utilities"],"description":"Test a password against a configurable complexity policy — minimum/maximum length, required uppercase, lowercase, digit and symbol characters, a no-whitespace rule, and an optional forbidden-text check (e.g. ban a username or company name) — with a clear pass/fail report for every rule. Runs entirely in your browser; the password is never sent anywhere.\n\n[Try Password Policy Tester in your browser →](https://iotools.cloud/tool/password-policy-tester/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioPassword":{"type":"string","description":"Password"},"ioMinLength":{"type":"number","description":"Minimum length","minimum":1,"maximum":64},"ioMaxLength":{"type":"number","description":"Maximum length","minimum":0,"maximum":128},"ioRequireUppercase":{"type":"boolean","description":"Require an uppercase letter (A-Z)"},"ioRequireLowercase":{"type":"boolean","description":"Require a lowercase letter (a-z)"},"ioRequireDigit":{"type":"boolean","description":"Require a digit (0-9)"},"ioRequireSymbol":{"type":"boolean","description":"Require a symbol (e.g. !@#$%^&*)"},"ioDisallowWhitespace":{"type":"boolean","description":"Disallow whitespace"},"ioForbiddenText":{"type":"string","description":"Must not contain (optional)"}},"required":["ioPassword"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Policy report"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/password-strength-analyzer":{"post":{"operationId":"run_password_strength_analyzer","summary":"Password Strength Analyzer","tags":["Utilities"],"description":"Score a password's strength (Weak/Fair/Good/Strong) and get specific, actionable feedback — length, character variety, common-password matches, repeated/sequential characters, and keyboard-walk patterns like \"qwerty\". Runs entirely in your browser; the password is never sent anywhere.\n\n[Try Password Strength Analyzer in your browser →](https://iotools.cloud/tool/password-strength-analyzer/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioPassword":{"type":"string","description":"Password"}},"required":["ioPassword"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Summary"},"ioFeedback":{"type":"string","description":"Feedback"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/phone-number-extractor":{"post":{"operationId":"run_phone_number_extractor","summary":"Phone Number Extractor","tags":["Utilities"],"description":"Extract and de-duplicate every phone number from a block of text or a pasted document. Recognizes US, international (+country code), toll-free, parenthesized and dotted/dashed/spaced formats, keeps the richest spelling of each number, and counts the results.\n\n[Try Phone Number Extractor in your browser →](https://iotools.cloud/tool/phone-number-extractor/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Text with Phone Numbers"},"ioSeparator":{"enum":["newline","comma","semicolon"],"description":"Separator"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCount":{"type":"string","description":"Phone numbers found"},"ioExtractedPhones":{"type":"string","description":"Extracted Phone Numbers"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/phone-number-validator":{"post":{"operationId":"run_phone_number_validator","summary":"Phone Number Validator","tags":["Utilities"],"description":"Check whether a phone number is real and dialable for its country. Reports valid/invalid, the line type (mobile, fixed line, toll free, VoIP, premium rate...), and — when invalid — the reason (too short, too long, unrecognized country code, bad area code/prefix).\n\n[Try Phone Number Validator in your browser →](https://iotools.cloud/tool/phone-number-validator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioPhoneInput":{"type":"string","description":"Phone Number"},"ioCountryCode":{"enum":["US","GB","CA","AU","DE","FR","IN","JP","CN","BR","MX","IT","ES","NL","KR","RU","ID","TR","SA","ZA","NG","AR","CO","PH","VN","TH","EG","PK","BD","PL","SE","NO","DK","FI","CH","AT","BE","PT","IE","NZ","SG","MY","HK","TW","IL","AE"],"description":"Default Country"}},"required":["ioPhoneInput"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/port-lookup":{"post":{"operationId":"run_port_lookup","summary":"Port Lookup","tags":["Utilities"],"description":"Look up TCP, UDP, SCTP and DCCP port assignments from the IANA registry. Search by port number (443), service name (https) or keyword, and filter by protocol and port range.\n\n[Try Port Lookup in your browser →](https://iotools.cloud/tool/port-lookup/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSearch":{"type":"string","description":"Search"},"ioProtocol":{"enum":["all","tcp","udp","sctp","dccp"],"description":"Protocol"},"ioPortRange":{"enum":["all","well-known","registered"],"description":"Port Range"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Results"},"ioResults":{"type":"string","description":"Matches"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ssl-certificate-decoder":{"post":{"operationId":"run_ssl_certificate_decoder","summary":"SSL Certificate Decoder","tags":["Utilities"],"description":"Decode a PEM-encoded SSL/TLS (X.509) certificate — read its subject, issuer, validity window, serial number, signature and public-key algorithms, extensions (Subject Alternative Names, key usage, basic constraints) and SHA-256/SHA-1 fingerprints. Parsed entirely in your browser; the certificate is never uploaded.\n\n[Try SSL Certificate Decoder in your browser →](https://iotools.cloud/tool/ssl-certificate-decoder/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioCertPem":{"type":"string","description":"PEM Certificate"},"ioReferenceTime":{"type":"string","description":"Reference Time (now)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioWarnings":{"type":"string"},"ioSubject":{"type":"string"},"ioIssuer":{"type":"string"},"ioValidity":{"type":"string"},"ioDetails":{"type":"string"},"ioExtensions":{"type":"string"},"ioFingerprints":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/mac-address-lookup":{"post":{"operationId":"run_mac_address_lookup","summary":"MAC Address Lookup","tags":["Utilities"],"description":"Look up the hardware vendor behind a MAC address by resolving its OUI prefix (the first three bytes) against the IEEE registry. Accepts full or partial addresses in any separator style.\n\n[Try MAC Address Lookup in your browser →](https://iotools.cloud/tool/mac-address-lookup/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMacAddress":{"type":"string","description":"MAC Address"}},"required":["ioMacAddress"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioVendor":{"type":"string","description":"Vendor"},"ioDetails":{"type":"string","description":"Vendor Details"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/open-graph-checker":{"post":{"operationId":"run_open_graph_checker","summary":"Open Graph Checker","tags":["Utilities"],"description":"Fetch any URL and inspect its Open Graph, Twitter Card and standard meta tags — see exactly how the page previews when shared on social media, and spot missing tags.\n\n[Try Open Graph Checker in your browser →](https://iotools.cloud/tool/open-graph-checker/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioUrl":{"type":"string","description":"URL"}},"required":["ioUrl"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioGeneral":{"type":"string"},"ioOpenGraph":{"type":"string"},"ioTwitter":{"type":"string"},"ioRaw":{"type":"string","description":"Raw tags"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/readability-score":{"post":{"operationId":"run_readability_score","summary":"Readability Score Checker","tags":["Utilities"],"description":"Analyze pasted text for readability with Flesch Reading Ease, Flesch-Kincaid Grade Level, Gunning Fog, SMOG, Coleman-Liau and Automated Readability Index scores, plus word/sentence/syllable counts.\n\n[Try Readability Score Checker in your browser →](https://iotools.cloud/tool/readability-score/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Text"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioScores":{"type":"string"},"ioStats":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/regex-cheatsheet":{"post":{"operationId":"run_regex_cheatsheet","summary":"Regex Cheatsheet","tags":["Utilities"],"description":"Quick reference for regular expression syntax — character classes, anchors, quantifiers, groups, lookaheads/lookbehinds, flags, and common patterns (email, URL, IPv4, hex color, date, phone, password). Search or filter by category.\n\n[Try Regex Cheatsheet in your browser →](https://iotools.cloud/tool/regex-cheatsheet/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSearchPattern":{"type":"string","description":"Search"},"ioCategory":{"enum":["all","anchors","character-classes","quantifiers","groups","lookaround","flags","common"],"description":"Category"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCheatsheet":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/regex-explainer":{"post":{"operationId":"run_regex_explainer","summary":"Regex Explainer","tags":["Utilities"],"description":"Explain a regular expression in plain English — a full sentence summary plus a token-by-token breakdown table (what each piece matches, and how). Supports the g/i/m/s/u flags and their effect on the explanation.\n\n[Try Regex Explainer in your browser →](https://iotools.cloud/tool/regex-explainer/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioPattern":{"type":"string","description":"Regular Expression Pattern"},"ioFlagGlobal":{"type":"boolean","description":"g — Global (find all matches)"},"ioFlagIgnoreCase":{"type":"boolean","description":"i — Ignore case"},"ioFlagMultiline":{"type":"boolean","description":"m — Multiline (^ and $ match line boundaries)"},"ioFlagDotAll":{"type":"boolean","description":"s — Dot matches newline"},"ioFlagUnicode":{"type":"boolean","description":"u — Unicode mode"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Plain-English Summary"},"ioBreakdown":{"type":"string","description":"Token-by-Token Breakdown"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/regex-tester":{"post":{"operationId":"run_regex_tester","summary":"Regex Tester","tags":["Utilities"],"description":"Test a JavaScript regular expression against sample text — see every match with its position, plus positional and named capture groups.\n\n[Try Regex Tester in your browser →](https://iotools.cloud/tool/regex-tester/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioPattern":{"type":"string","description":"Regular Expression Pattern"},"ioFlagGlobal":{"type":"boolean","description":"g — Find all matches (global)"},"ioFlagIgnoreCase":{"type":"boolean","description":"i — Ignore case"},"ioFlagMultiline":{"type":"boolean","description":"m — Multiline (^ and $ match line boundaries)"},"ioFlagDotAll":{"type":"boolean","description":"s — Dot matches newline"},"ioFlagUnicode":{"type":"boolean","description":"u — Unicode mode"},"ioTestString":{"type":"string","description":"Test String"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Summary"},"ioMatches":{"type":"string","description":"Matches"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/robots-txt-tester":{"post":{"operationId":"run_robots_txt_tester","summary":"Robots.txt Tester","tags":["Utilities"],"description":"Test whether a URL path is allowed or disallowed for a given crawler against pasted robots.txt content. Applies RFC 9309 precedence — longest matching rule wins, Allow beats Disallow on a tie, with `*`/`$` wildcards and most-specific user-agent group selection. Shows the exact rule that decided the verdict.\n\n[Try Robots.txt Tester in your browser →](https://iotools.cloud/tool/robots-txt-tester/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioRobots":{"type":"string","description":"Robots.txt Content"},"ioTestUrl":{"type":"string","description":"URL / path to test"},"ioUserAgent":{"type":"string","description":"User-agent (crawler)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioVerdict":{"type":"string","description":"Verdict"},"ioDetails":{"type":"string"},"ioRules":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/routing-number-validator":{"post":{"operationId":"run_routing_number_validator","summary":"Routing Number Validator","tags":["Utilities"],"description":"Validate a 9-digit ABA bank routing number by its mod-10 weighted checksum, and show whether it is valid, its Federal Reserve district, its check digit, and the full step-by-step checksum calculation. Spaces and dashes are ignored.\n\n[Try Routing Number Validator in your browser →](https://iotools.cloud/tool/routing-number-validator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioRoutingNumber":{"type":"string","description":"Routing Number"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Validation Result"},"ioSteps":{"type":"string","description":"Checksum Calculation"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/safelink-decoder":{"post":{"operationId":"run_safelink_decoder","summary":"SafeLink Decoder","tags":["Utilities"],"description":"Unwrap Microsoft SafeLinks and Proofpoint URL Defense links to reveal the real destination URL. Paste one or more wrapped links (one per line); plain lines pass through unchanged, or filter to only the decoded URLs.\n\n[Try SafeLink Decoder in your browser →](https://iotools.cloud/tool/safelink-decoder/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSafelinkInput":{"type":"string","description":"Wrapped Link(s)"},"ioExtractOnly":{"type":"boolean","description":"Show only decoded URLs (hide other lines)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioDecodedOutput":{"type":"string","description":"Decoded URL(s)"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/saml-response-decoder":{"post":{"operationId":"run_saml_response_decoder","summary":"SAML Response Decoder","tags":["Utilities"],"description":"Decode a base64-encoded SAML Response or Assertion and inspect it. Auto-detects the HTTP-POST (plain base64) and HTTP-Redirect (DEFLATE-compressed) bindings, extracts a summary of key fields (Issuer, Destination, NameID, Conditions window, AudienceRestriction, attributes, StatusCode) and pretty-prints the decoded XML. A debugging tool for SSO troubleshooting — it does not verify signatures.\n\n[Try SAML Response Decoder in your browser →](https://iotools.cloud/tool/saml-response-decoder/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSamlInput":{"type":"string","description":"SAML Response or Assertion"},"ioReferenceTime":{"type":"string","description":"Reference Time (now)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioNotes":{"type":"string"},"ioSummary":{"type":"string"},"ioXml":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/security-headers-checker":{"post":{"operationId":"run_security_headers_checker","summary":"Security Headers Checker","tags":["Utilities"],"description":"Paste a site's HTTP response headers and get a weighted A+ to F security grade, plus a header-by-header breakdown of what's missing, misconfigured, or well-configured (CSP, HSTS, X-Frame-Options, and more) — all checked in your browser.\n\n[Try Security Headers Checker in your browser →](https://iotools.cloud/tool/security-headers-checker/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioHeadersInput":{"type":"string","description":"HTTP Response Headers"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioGradeSummary":{"type":"string"},"ioHeaderResults":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/secure-compare-tool":{"post":{"operationId":"run_secure_compare_tool","summary":"Secure Compare Tool","tags":["Utilities"],"description":"Compare two secrets, tokens or passwords using a constant-time equality check instead of a plain string comparison, with optional trimming/case normalization and SHA-256 fingerprints for diagnostics. Runs entirely in your browser.\n\n[Try Secure Compare Tool in your browser →](https://iotools.cloud/tool/secure-compare-tool/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioValueA":{"type":"string","description":"Value A"},"ioValueB":{"type":"string","description":"Value B"},"ioNormalize":{"enum":["exact","trim","trim-lower"],"description":"Normalization"},"ioShowFingerprint":{"type":"boolean","description":"Show SHA-256 fingerprints"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioComparison":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/sitemap-xml-parser":{"post":{"operationId":"run_sitemap_xml_parser","summary":"Sitemap XML Parser","tags":["Utilities"],"description":"Parse a sitemap.xml or sitemap index and extract every URL with its lastmod, changefreq and priority — as a Markdown table, CSV, JSON or a plain URL list, with spec-conformance warnings. Runs entirely in your browser.\n\n[Try Sitemap XML Parser in your browser →](https://iotools.cloud/tool/sitemap-xml-parser/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioSitemapInput":{"type":"string","description":"Sitemap XML"},"ioOutputFormat":{"enum":["table","csv","json","list"],"description":"Output format"},"ioFilterDate":{"enum":["all","7","30","90","365","missing"],"description":"Filter by lastmod"},"ioSortBy":{"enum":["none","url","lastmod-desc","lastmod-asc","priority-desc","changefreq"],"description":"Sort by"},"ioShowValidation":{"type":"boolean","description":"Show validation warnings (missing fields, invalid priority, malformed dates)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Summary"},"ioValidationIssues":{"type":"string","description":"Validation"},"ioSitemapOutput":{"type":"string","description":"Extracted URLs"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/redirect-checker":{"post":{"operationId":"run_redirect_checker","summary":"Redirect Checker","tags":["Utilities"],"description":"Trace a URL's full HTTP redirect chain — every hop, status code and redirect type — and flag redirect loops, excessive hops and insecure HTTPS→HTTP downgrades.\n\n[Try Redirect Checker in your browser →](https://iotools.cloud/tool/redirect-checker/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioUrl":{"type":"string","description":"URL"}},"required":["ioUrl"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Summary"},"ioChain":{"type":"string","description":"Redirect chain"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/text-compare":{"post":{"operationId":"run_text_compare","summary":"Text Compare","tags":["Utilities"],"description":"Compare two texts and see exactly what changed — added, removed and edited lines highlighted inline, plus a copyable unified diff. Runs entirely in your browser.\n\n[Try Text Compare in your browser →](https://iotools.cloud/tool/text-compare/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioFirstText":{"type":"string","description":"First text"},"ioTextToCompare":{"type":"string","description":"Text to compare"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioUnifiedDiff":{"type":"string","description":"Unified diff"},"ioDiffHtml":{"type":"string","description":"Diff HTML"},"ioSummary":{"type":"string","description":"Summary"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/url-parser":{"post":{"operationId":"run_url_parser","summary":"URL Parser","tags":["Utilities"],"description":"Break a URL down into its parts — protocol, host, port, path, query string, search params, hash, credentials, subdomain, filename and file extension.\n\n[Try URL Parser in your browser →](https://iotools.cloud/tool/url-parser/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioUrlToParse":{"type":"string","description":"URL to Parse"}},"required":["ioUrlToParse"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioUrlParts":{"type":"string","description":"URL Parts"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/unicode-character-info":{"post":{"operationId":"run_unicode_character_info","summary":"Unicode Character Info","tags":["Utilities"],"description":"Look up detailed Unicode properties for any character or U+XXXX codepoint — name, block, plane, general category, bidi class, UTF-8/16/32 encoding, HTML entity, and known confusable characters.\n\n[Try Unicode Character Info in your browser →](https://iotools.cloud/tool/unicode-character-info/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputChars":{"type":"string","description":"Characters or Codepoints"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string","description":"Character Properties"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/url-canonicalizer":{"post":{"operationId":"run_url_canonicalizer","summary":"URL Canonicalizer","tags":["Utilities"],"description":"Normalize URLs into a single canonical form: lowercase the scheme and host, strip default ports, resolve ./.. path segments, sort query parameters, remove tracking params (utm_*, fbclid, gclid…), drop fragments and collapse duplicate slashes. Runs entirely in your browser — one URL per line.\n\n[Try URL Canonicalizer in your browser →](https://iotools.cloud/tool/url-canonicalizer/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioUrlInput":{"type":"string","description":"URLs"},"ioDecodeUnreserved":{"type":"boolean","description":"Decode unreserved percent-encoded chars (%41 → A)"},"ioRemoveDuplicateSlashes":{"type":"boolean","description":"Collapse duplicate slashes (/a//b → /a/b)"},"ioSortQueryParams":{"type":"boolean","description":"Sort query parameters alphabetically"},"ioRemoveTrackingParams":{"type":"boolean","description":"Remove tracking params (utm_*, fbclid, gclid, …)"},"ioRemoveFragment":{"type":"boolean","description":"Remove fragment / hash (#section)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCanonical":{"type":"string","description":"Canonical URLs"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/url-extractor":{"post":{"operationId":"run_url_extractor","summary":"URL Extractor","tags":["Utilities"],"description":"Extract and de-duplicate every URL from a block of text, HTML, or a pasted document. Finds http, https and ftp links (plus bare www. links with no scheme), trims stray trailing punctuation and brackets, and lets you filter by link type and sort the results.\n\n[Try URL Extractor in your browser →](https://iotools.cloud/tool/url-extractor/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Text or HTML with URLs"},"ioSchemeFilter":{"enum":["all","web","ftp"],"description":"Link type"},"ioIncludeBareWww":{"type":"boolean","description":"Also match bare www. links (no http:// prefix)"},"ioSort":{"enum":["found","alpha"],"description":"Sort order"},"ioSeparator":{"enum":["newline","comma","semicolon"],"description":"Separator"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCount":{"type":"string","description":"URLs found"},"ioExtractedUrls":{"type":"string","description":"Extracted URLs"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/user-agent-parser":{"post":{"operationId":"run_user_agent_parser","summary":"User Agent Parser","tags":["Utilities"],"description":"Parse a User-Agent string into browser, version, rendering engine, operating system and device type (desktop, mobile, tablet or bot). Paste one UA per line to parse several at once, with a JSON export.\n\n[Try User Agent Parser in your browser →](https://iotools.cloud/tool/user-agent-parser/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioUserAgent":{"type":"string","description":"User-Agent string"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string"},"ioJson":{"type":"string","description":"JSON"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/wcag-contrast-checker":{"post":{"operationId":"run_wcag_contrast_checker","summary":"WCAG Contrast Checker","tags":["Utilities"],"description":"Check the WCAG 2.x contrast ratio between a text (foreground) color and a background color. Accepts hex colors (#RGB, #RRGGBB, with or without #) and reports the exact ratio plus pass/fail for WCAG AA (4.5:1 normal, 3:1 large) and AAA (7:1 normal, 4.5:1 large).\n\n[Try WCAG Contrast Checker in your browser →](https://iotools.cloud/tool/wcag-contrast-checker/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioForeground":{"type":"string","description":"Foreground (Text) Color"},"ioBackground":{"type":"string","description":"Background Color"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Result"},"ioContrastTable":{"type":"string","description":"WCAG Compliance"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/webhook-payload-inspector":{"post":{"operationId":"run_webhook_payload_inspector","summary":"Webhook Payload Inspector","tags":["Utilities"],"description":"Paste a raw webhook request — optional HTTP headers plus a JSON or form-encoded body — and get a structured breakdown: parsed headers, a pretty-printed and validated body, detected content-type and size, the sending provider and event type, extracted timestamps, and flagged signature headers (X-Hub-Signature-256, Stripe-Signature, X-GitHub-Event…). Runs entirely in your browser.\n\n[Try Webhook Payload Inspector in your browser →](https://iotools.cloud/tool/webhook-payload-inspector/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioPayload":{"type":"string","description":"Raw Webhook Request"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOverview":{"type":"string"},"ioHeaders":{"type":"string"},"ioSignals":{"type":"string"},"ioTimestamps":{"type":"string"},"ioFormatted":{"type":"string","description":"Body"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/webhook-signature-validator":{"post":{"operationId":"run_webhook_signature_validator","summary":"Webhook Signature Validator","tags":["Utilities"],"description":"Verify a webhook's HMAC signature: paste the raw payload body, your signing secret and the signature from the provider's header (GitHub sha256=…, Shopify base64, or any custom HMAC-SHA1/SHA-256/SHA-512 in hex or base64), and confirm whether it matches.\n\n[Try Webhook Signature Validator in your browser →](https://iotools.cloud/tool/webhook-signature-validator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioPayload":{"type":"string","description":"Payload body"},"ioSecret":{"type":"string","description":"Signing secret"},"ioProvider":{"enum":["custom","github","github-legacy","shopify"],"description":"Provider"},"ioAlgorithm":{"enum":["sha1","sha256","sha512"],"description":"Algorithm"},"ioSignatureFormat":{"enum":["hex","base64"],"description":"Signature encoding"},"ioClaimedSignature":{"type":"string","description":"Claimed signature"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Verification result"},"ioExpectedSignature":{"type":"string","description":"Expected signature (computed)"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/word-frequency":{"post":{"operationId":"run_word_frequency","summary":"Word Frequency Counter","tags":["Utilities"],"description":"Count how often each word appears in a block of text and get a ranked frequency table with counts and percentages. Case-sensitivity, stop-word filtering, a minimum word length and a top-N limit are all configurable.\n\n[Try Word Frequency Counter in your browser →](https://iotools.cloud/tool/word-frequency/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Input Text"},"ioCaseSensitive":{"type":"boolean","description":"Case sensitive"},"ioIgnoreStopWords":{"type":"boolean","description":"Ignore common stop words"},"ioMinWordLength":{"type":"number","description":"Minimum word length","minimum":1,"maximum":12},"ioTopN":{"type":"number","description":"Show top N words","minimum":5,"maximum":200}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioFrequency":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/yaml-diff-comparator":{"post":{"operationId":"run_yaml_diff_comparator","summary":"YAML Diff Comparator","tags":["Utilities"],"description":"Compare two YAML documents and see exactly what changed — added, removed and modified keys with a path to each one, plus a unified line diff of the normalized YAML. Structural comparison ignores indentation, quoting and flow-vs-block formatting, and handles multi-document streams. Runs entirely in your browser.\n\n[Try YAML Diff Comparator in your browser →](https://iotools.cloud/tool/yaml-diff-comparator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioYamlA":{"type":"string","description":"YAML A (original)"},"ioYamlB":{"type":"string","description":"YAML B (modified)"},"ioSeqOrder":{"enum":["position","ignore"],"description":"Compare list items"},"ioLooseScalars":{"type":"boolean","description":"Ignore type differences"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Summary"},"ioStructuralDiff":{"type":"string","description":"Structural diff"},"ioUnifiedDiff":{"type":"string","description":"Unified diff (normalized YAML)"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/word-counter":{"post":{"operationId":"run_word_counter","summary":"Word Counter","tags":["Utilities"],"description":"Count words, unique words, characters, sentences, paragraphs and syllables — with reading time, speaking time and a top-10 word density table, updated live as you type.\n\n[Try Word Counter in your browser →](https://iotools.cloud/tool/word-counter/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioText":{"type":"string","description":"Your text"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioStats":{"type":"string"},"ioDensity":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/xpath-tester":{"post":{"operationId":"run_xpath_tester","summary":"XPath Tester","tags":["Utilities"],"description":"Evaluate an XPath expression against XML or HTML input and see every matching node, attribute or text value next to its resolved path. Runs entirely in your browser.\n\n[Try XPath Tester in your browser →](https://iotools.cloud/tool/xpath-tester/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioXmlInput":{"type":"string","description":"XML (or HTML) input"},"ioXPathExpression":{"type":"string","description":"XPath expression"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Result"},"ioMatches":{"type":"string","description":"Matches"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/youtube-thumbnail-downloader":{"post":{"operationId":"run_youtube_thumbnail_downloader","summary":"YouTube Thumbnail Downloader","tags":["Utilities"],"description":"Get the thumbnail image URLs of any YouTube video in every available size (1280×720 down to 120×90) — paste the video, Shorts, or youtu.be link and download the image you need.\n\n[Try YouTube Thumbnail Downloader in your browser →](https://iotools.cloud/tool/youtube-thumbnail-downloader/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioVideoUrl":{"type":"string","description":"YouTube video URL"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioVideoId":{"type":"string","description":"Video ID"},"ioThumbnails":{"type":"string","description":"Thumbnails"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/zip-code-validator":{"post":{"operationId":"run_zip_code_validator","summary":"ZIP Code Validator","tags":["Utilities"],"description":"Validate US ZIP codes — check one or many at once for correct 5-digit or ZIP+4 format.\n\n[Try ZIP Code Validator in your browser →](https://iotools.cloud/tool/zip-code-validator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioZipCodes":{"type":"string","description":"ZIP Codes"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResults":{"type":"string","description":"Validation Results"},"ioSummary":{"type":"string","description":"Summary"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/shell-glob-pattern-tester":{"post":{"operationId":"run_shell_glob_pattern_tester","summary":"Shell Glob Pattern Tester","tags":["Utilities"],"description":"Test a shell glob pattern against a list of file paths and see which ones match. Supports *, ?, ** globstar, [abc] character classes, {a,b} brace expansion and ! negation across Bash, Zsh, .gitignore, Python fnmatch and Go path.Match semantics.\n\n[Try Shell Glob Pattern Tester in your browser →](https://iotools.cloud/tool/shell-glob-pattern-tester/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioGlobPattern":{"type":"string","description":"Glob Pattern"},"ioShellMode":{"enum":["bash","zsh","gitignore","fnmatch","go"],"description":"Shell / Mode"},"ioFilePaths":{"type":"string","description":"File Paths (one per line)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Match Results"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/svg-path-visualizer":{"post":{"operationId":"run_svg_path_visualizer","summary":"SVG Path Visualizer","tags":["Utilities"],"description":"Parse an SVG path's d attribute into its individual commands (M, L, C, Q, A, Z and more), see a labelled breakdown table, and render an annotated preview with numbered vertices and Bézier control points. Convert between absolute and relative coordinates. Runs entirely in your browser.\n\n[Try SVG Path Visualizer in your browser →](https://iotools.cloud/tool/svg-path-visualizer/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioPathInput":{"type":"string","description":"SVG path data (d attribute)"},"ioViewBox":{"type":"string","description":"viewBox"},"ioStrokeColor":{"type":"string","description":"Stroke"},"ioStrokeWidth":{"type":"number","description":"Stroke width","minimum":0,"maximum":50},"ioFillMode":{"enum":["none","solid"],"description":"Fill"},"ioFillColor":{"type":"string","description":"Fill colour"},"ioCoordMode":{"enum":["keep","absolute","relative"],"description":"Coordinates"},"ioPrecision":{"type":"number","description":"Precision (decimals)","minimum":0,"maximum":6},"ioShowGrid":{"type":"boolean","description":"Show grid"},"ioShowPoints":{"type":"boolean","description":"Number command endpoints"},"ioShowControlPoints":{"type":"boolean","description":"Show Bézier control points"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioCommandTable":{"type":"string","description":"Command breakdown"},"ioSvgOutput":{"type":"string","description":"Annotated preview SVG"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/swift-bic-validator":{"post":{"operationId":"run_swift_bic_validator","summary":"SWIFT/BIC Validator","tags":["Utilities"],"description":"Validate a SWIFT/BIC bank identifier code (ISO 9362). Checks the 8- or 11-character format — institution code, country code, location code and optional branch code — and breaks the code down into its parts, including the participant status decoded from the location code.\n\n[Try SWIFT/BIC Validator in your browser →](https://iotools.cloud/tool/swift-bic-validator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioBic":{"type":"string","description":"SWIFT/BIC Code"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Validation Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/syllable-counter-poetry-analyzer":{"post":{"operationId":"run_syllable_counter_poetry_analyzer","summary":"Syllable Counter & Poetry Analyzer","tags":["Utilities"],"description":"Count syllables per word and per line, then validate fixed poetic forms — haiku (5-7-5), tanka (5-7-5-7-7) and limerick (8-8-5-5-8). Optionally highlight each word's stressed syllable.\n\n[Try Syllable Counter & Poetry Analyzer in your browser →](https://iotools.cloud/tool/syllable-counter-poetry-analyzer/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Text"},"ioMode":{"enum":["standard","haiku","tanka","limerick"],"description":"Analysis mode"},"ioShowStress":{"type":"boolean","description":"Highlight stressed syllables"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioForm":{"type":"string","description":"Form check"},"ioAnnotatedSource":{"type":"string","description":"Annotated HTML"},"ioStats":{"type":"string","description":"Statistics"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/tls-ssl-config-snippet-grader":{"post":{"operationId":"run_tls_ssl_config_snippet_grader","summary":"TLS/SSL Config Snippet Grader","tags":["Utilities"],"description":"Paste an Apache or Nginx TLS/SSL config block and get an A-to-F security grade, a finding-by-finding breakdown (deprecated protocols, weak ciphers, missing HSTS/OCSP stapling), and a Mozilla best-practice replacement snippet. Analyzed entirely in your browser — nothing is sent to a server.\n\n[Try TLS/SSL Config Snippet Grader in your browser →](https://iotools.cloud/tool/tls-ssl-config-snippet-grader/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioConfigInput":{"type":"string","description":"TLS/SSL Config Snippet"},"ioServerType":{"enum":["auto","apache","nginx"],"description":"Server Type"},"ioTargetProfile":{"enum":["modern","intermediate","old"],"description":"Mozilla Profile"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioGradeSummary":{"type":"string"},"ioFindings":{"type":"string"},"ioSuggestion":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/uuid-validator-decoder":{"post":{"operationId":"run_uuid_validator_decoder","summary":"UUID Validator & Decoder","tags":["Utilities"],"description":"Validate a UUID's 8-4-4-4-12 format and decode its version and variant. For time-based UUIDs (v1, v6, v7) it extracts the embedded timestamp; paste one UUID per line to validate a whole batch at once.\n\n[Try UUID Validator & Decoder in your browser →](https://iotools.cloud/tool/uuid-validator-decoder/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioUuid":{"type":"string","description":"UUID(s)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Summary"},"ioDetails":{"type":"string","description":"Decoded details"},"ioBatch":{"type":"string","description":"Batch results"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/vat-number-validator":{"post":{"operationId":"run_vat_number_validator","summary":"VAT Number Validator","tags":["Utilities"],"description":"Validate an EU VAT number's format. Detects the 2-letter country prefix and checks the national number against that country's expected structure, showing the country, country code and expected format. Structural check only — it does not contact the EU VIES registry.\n\n[Try VAT Number Validator in your browser →](https://iotools.cloud/tool/vat-number-validator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioVatNumber":{"type":"string","description":"VAT Number"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioResult":{"type":"string","description":"Validation Result"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/text-replacer":{"post":{"operationId":"run_text_replacer","summary":"Text Replacer","tags":["Utilities"],"description":"Find and replace text or regex patterns across a block of text. Case-sensitive, whole-word, replace-all-vs-first and regex modes with capture-group substitution, plus a live match count.\n\n[Try Text Replacer in your browser →](https://iotools.cloud/tool/text-replacer/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Source Text"},"ioFind":{"type":"string","description":"Find"},"ioReplaceWith":{"type":"string","description":"Replace With"},"ioUseRegex":{"type":"boolean","description":"Treat \"Find\" as a regular expression"},"ioCaseSensitive":{"type":"boolean","description":"Case sensitive"},"ioWholeWord":{"type":"boolean","description":"Whole word only"},"ioReplaceAll":{"type":"boolean","description":"Replace all occurrences (unchecked = first match only)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioMatchCount":{"type":"string","description":"Result Summary"},"ioOutput":{"type":"string","description":"Replaced Text"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/text-similarity-checker":{"post":{"operationId":"run_text_similarity_checker","summary":"Text Similarity Checker","tags":["Utilities"],"description":"Score how similar two blocks of text are — a character-level similarity percentage plus a word-overlap breakdown showing shared and unique words.\n\n[Try Text Similarity Checker in your browser →](https://iotools.cloud/tool/text-similarity-checker/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioTextA":{"type":"string","description":"Text A"},"ioTextB":{"type":"string","description":"Text B"},"ioCaseSensitive":{"type":"boolean","description":"Case sensitive"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSimilarity":{"type":"string","description":"Similarity score"},"ioBreakdown":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/xml-diff-comparator":{"post":{"operationId":"run_xml_diff_comparator","summary":"XML Diff Comparator","tags":["Utilities"],"description":"Compare two XML documents and see exactly what changed — added/removed elements, attribute changes and text changes with an XPath-like path to each one, plus a unified line diff of the normalized markup. Runs entirely in your browser.\n\n[Try XML Diff Comparator in your browser →](https://iotools.cloud/tool/xml-diff-comparator/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioXmlA":{"type":"string","description":"XML A (original)"},"ioXmlB":{"type":"string","description":"XML B (modified)"},"ioIgnoreWhitespace":{"type":"boolean","description":"Ignore whitespace differences"},"ioIgnoreComments":{"type":"boolean","description":"Ignore comment nodes"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Summary"},"ioStructuralDiff":{"type":"string","description":"Structural diff"},"ioUnifiedDiff":{"type":"string","description":"Unified diff (normalized markup)"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/x509-certificate-parser":{"post":{"operationId":"run_x509_certificate_parser","summary":"X.509 Certificate Parser","tags":["Utilities"],"description":"Parse a PEM-encoded X.509 certificate or certificate signing request (CSR) — subject, issuer, validity window, serial number, signature/public-key algorithms, extensions (SANs, key usage, basic constraints…), CSR signature verification, and SHA-256/SHA-1/SHA-512 fingerprints. Parsed entirely in your browser; nothing is uploaded.\n\n[Try X.509 Certificate Parser in your browser →](https://iotools.cloud/tool/x509-certificate-parser/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioPemInput":{"type":"string","description":"PEM Certificate or CSR"},"ioReferenceTime":{"type":"string","description":"Reference Time (now)"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioWarnings":{"type":"string"},"ioType":{"type":"string"},"ioSubject":{"type":"string"},"ioIssuer":{"type":"string"},"ioValidity":{"type":"string"},"ioDetails":{"type":"string"},"ioExtensions":{"type":"string"},"ioFingerprints":{"type":"string"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/brotli-compression":{"post":{"operationId":"run_brotli_compression","summary":"Brotli Compression Encoder/Decoder","tags":["Utilities"],"description":"Compress or decompress data with Brotli — the algorithm behind modern HTTP content-encoding — right in your browser, with size and ratio stats. Free in the browser (WASM); also available as a paid API (Node's native zlib).\n\n[Try Brotli Compression Encoder/Decoder in your browser →](https://iotools.cloud/tool/brotli-compression/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInput":{"type":"string","description":"Input data (Base64)"},"ioMode":{"enum":["compress","decompress"],"description":"Mode"},"ioQuality":{"type":"number","description":"Compression level (0 = fastest, 11 = best)","minimum":0,"maximum":11}},"required":["ioInput"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Output (Base64)"},"ioStats":{"type":"string","description":"Statistics"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/zstd-compression":{"post":{"operationId":"run_zstd_compression","summary":"Zstandard (Zstd) Compression Tool","tags":["Utilities"],"description":"Compress or decompress text or a file with Zstandard (zstd) at a chosen compression level (1-22), with size and ratio stats. Free and private in your browser; also available as a paid API.\n\n[Try Zstandard (Zstd) Compression Tool in your browser →](https://iotools.cloud/tool/zstd-compression/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMode":{"enum":["compress","decompress"],"description":"Mode"},"ioInputText":{"type":"string","description":"Input text"},"ioFile":{"type":"string","contentEncoding":"base64","description":"Or upload a file"},"ioLevel":{"type":"number","description":"Compression level (1 = fastest, 22 = best ratio)","minimum":1,"maximum":22}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Output (Base64)"},"ioStatsTable":{"type":"string","description":"Stats"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ai-content-detector":{"post":{"operationId":"run_ai_content_detector","summary":"AI Content Detector","tags":["Utilities"],"description":"Analyze pasted text with AI to estimate whether it was written by an AI model or a human, with a confidence score and supporting indicators. A probabilistic estimate, not proof — see the disclaimer below.\n\n[Try AI Content Detector in your browser →](https://iotools.cloud/tool/ai-content-detector/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":12,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ioInputText":{"type":"string","description":"Text to Analyze"}},"required":["ioInputText"]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioVerdict":{"type":"string","description":"Verdict"},"ioConfidence":{"type":"string","description":"Confidence"},"ioIndicators":{"type":"string","description":"Key Indicators"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/raw-http-request-parser":{"post":{"operationId":"run_raw_http_request_parser","summary":"HTTP Request Parser","tags":["Utilities"],"description":"Paste a raw HTTP request and get the method, target, version, headers and body split out — with the query string decoded into parameters, the body pretty-printed by Content-Type, and a ready-to-run cURL command to replay it. Runs entirely in your browser.\n\n[Try HTTP Request Parser in your browser →](https://iotools.cloud/tool/raw-http-request-parser/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioRawRequest":{"type":"string","description":"Raw HTTP request"},"ioBodyHandling":{"enum":["decode","raw"],"description":"Body"},"ioScheme":{"enum":["https","http"],"description":"Scheme for the cURL URL"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Request"},"ioHeaders":{"type":"string","description":"Headers"},"ioQuery":{"type":"string","description":"Query parameters"},"ioBody":{"type":"string","description":"Body"},"ioCurl":{"type":"string","description":"Equivalent cURL command"},"ioJson":{"type":"string","description":"JSON"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/json-merge-patch-tool":{"post":{"operationId":"run_json_merge_patch_tool","summary":"JSON Merge Patch Tool","tags":["Utilities"],"description":"Apply an RFC 7386 JSON Merge Patch to a document, or work backwards and generate the minimal merge patch between two documents. Shows the patched result plus a per-key list of what was added, replaced and removed — all in your browser.\n\n[Try JSON Merge Patch Tool in your browser →](https://iotools.cloud/tool/json-merge-patch-tool/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioMode":{"enum":["apply","generate"],"description":"Mode"},"ioBaseJson":{"type":"string","description":"Base JSON document"},"ioPatchJson":{"type":"string","description":"Merge patch"},"ioModifiedJson":{"type":"string","description":"Modified JSON document"},"ioIndent":{"enum":["2","4","tab","minified"],"description":"Output indentation"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Result"},"ioChanges":{"type":"string","description":"Changes"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/json-lines-merger":{"post":{"operationId":"run_json_lines_merger","summary":"JSON Lines Merger","tags":["Utilities"],"description":"Merge several JSON Lines (JSONL/NDJSON) sources into one JSON array or one NDJSON stream. Combines a pasted blob with any number of uploaded files, expands sources that are already JSON arrays, drops duplicate records, tags each record with where it came from, and reports invalid lines instead of failing on them.\n\n[Try JSON Lines Merger in your browser →](https://iotools.cloud/tool/json-lines-merger/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioJsonLines":{"type":"string","description":"JSON Lines input"},"ioFiles":{"type":"array","items":{"type":"string","contentEncoding":"base64"},"description":"Add JSONL / NDJSON / JSON files"},"ioOutputFormat":{"enum":["array","ndjson"],"description":"Merge into"},"ioIndent":{"enum":["2","4","tab","minified"],"description":"Indentation"},"ioDedupe":{"type":"boolean","description":"Remove duplicate records"},"ioAddSource":{"type":"boolean","description":"Tag each record with a \"_source\" key"},"ioSortKeys":{"type":"boolean","description":"Sort object keys alphabetically"},"ioSkipInvalid":{"type":"boolean","description":"Skip invalid lines"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioOutput":{"type":"string","description":"Merged output"},"ioSummary":{"type":"string","description":"Summary"},"ioIssues":{"type":"string","description":"Invalid lines"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/ini-overlay-merger":{"post":{"operationId":"run_ini_overlay_merger","summary":"INI Overlay Merger","tags":["Utilities"],"description":"Merge an INI config with one or two overlay files — the way a deployment layers defaults, environment and local settings. Overridden values are edited in place, so the base file's comments, blank lines, key order and indentation all survive, and a change report shows exactly which keys were added, changed or left alone.\n\n[Try INI Overlay Merger in your browser →](https://iotools.cloud/tool/ini-overlay-merger/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioBaseIni":{"type":"string","description":"Base INI"},"ioOverlayIni":{"type":"string","description":"Overlay INI"},"ioSecondOverlayIni":{"type":"string","description":"Second overlay INI (optional)"},"ioNewKeys":{"enum":["add","ignore"],"description":"Keys only in an overlay"},"ioPreserveComments":{"type":"boolean","description":"Keep the base file's comment lines and blank lines"},"ioIgnoreCase":{"type":"boolean","description":"Match section and key names case-insensitively"},"ioAssignment":{"enum":["spaced","tight"],"description":"Assignment style for added keys"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioMergedIni":{"type":"string","description":"Merged INI"},"ioChanges":{"type":"string","description":"Changes"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/dns-zone-file-parser":{"post":{"operationId":"run_dns_zone_file_parser","summary":"DNS Zone File Parser","tags":["Utilities"],"description":"Paste a BIND zone file and read it as a table: every record with its owner name fully qualified, its inherited TTL resolved, and its type and rdata split out. Honours $ORIGIN, $TTL and multi-line SOA blocks, flags the classic mistakes (missing SOA, a CNAME sharing a name, a target missing its trailing dot), and exports to CSV or JSON. Runs entirely in your browser — no DNS lookups.\n\n[Try DNS Zone File Parser in your browser →](https://iotools.cloud/tool/dns-zone-file-parser/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioZoneFile":{"type":"string","description":"Zone file"},"ioOrigin":{"type":"string","description":"Origin"},"ioDefaultTtl":{"type":"string","description":"Default TTL"},"ioTtlFormat":{"enum":["seconds","human"],"description":"TTL display"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Zone"},"ioRecords":{"type":"string","description":"Records"},"ioTypeCounts":{"type":"string","description":"Record types"},"ioIssues":{"type":"string","description":"Issues"},"ioNormalized":{"type":"string","description":"Normalised zone"},"ioJson":{"type":"string","description":"JSON"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}},"/v1/tool/raw-http-response-parser":{"post":{"operationId":"run_raw_http_response_parser","summary":"HTTP Response Parser","tags":["Utilities"],"description":"Paste a raw HTTP response and get the status line, headers and body split out — with the status code explained, every Set-Cookie broken into its name, value and attributes, and the body pretty-printed by Content-Type. Exports to CSV or JSON and runs entirely in your browser.\n\n[Try HTTP Response Parser in your browser →](https://iotools.cloud/tool/raw-http-response-parser/)","security":[{"bearerAuth":[]}],"x-iotools-credit-cost":3,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ioRawResponse":{"type":"string","description":"Raw HTTP response"},"ioBodyHandling":{"enum":["decode","raw"],"description":"Body"}},"required":[]}}}},"responses":{"200":{"description":"Tool output","content":{"application/json":{"schema":{"type":"object","required":["tool","tool_version","outputs","credits_used"],"properties":{"request_id":{"type":"string"},"tool":{"type":"string"},"tool_version":{"type":"string","description":"Output-contract version for this tool. Currently \"1\" for all tools."},"outputs":{"type":"object","properties":{"ioSummary":{"type":"string","description":"Response"},"ioHeaders":{"type":"string","description":"Headers"},"ioCookies":{"type":"string","description":"Cookies"},"ioBody":{"type":"string","description":"Body"},"ioJson":{"type":"string","description":"JSON"}}},"credits_used":{"type":"integer","description":"Credits this call consumed, after any settlement refund. 0 when metering is disabled."},"credits_remaining":{"type":["integer","null"],"description":"Credits left in the current monthly allowance, or null when metering is disabled."}}}}}},"400":{"description":"Invalid request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/validation_error","title":"Invalid request","status":400,"code":"validation_error","detail":"One or more inputs are invalid — see `fields`.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/invalid_api_key","title":"Invalid API key","status":401,"code":"invalid_api_key","detail":"Provide 'Authorization: Bearer <key>'.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"402":{"description":"Monthly credit allowance exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/insufficient_credits","title":"Insufficient credits","status":402,"code":"insufficient_credits","detail":"This call costs 1 credit and 0 remain in this month's allowance.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"403":{"description":"Tool exists but has no API surface.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_allowed","title":"Tool not available over the API","status":403,"code":"tool_not_allowed","detail":"\"Background Remover\" is available on iotools.cloud but has no API endpoint.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"404":{"description":"No such tool.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_not_found","title":"Tool not found","status":404,"code":"tool_not_found","detail":"No tool with that slug. See GET /v1/tools.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"413":{"description":"Body too large.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/payload_too_large","title":"Payload too large","status":413,"code":"payload_too_large","detail":"Request body exceeds this tool's size limit.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"429":{"description":"Per-minute rate limit exceeded.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/rate_limited","title":"Rate limit exceeded","status":429,"code":"rate_limited","detail":"Too many requests. Retry in 30s.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"500":{"description":"Tool failed to run.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/processing_error","title":"Tool failed to run","status":500,"code":"processing_error","detail":"The tool failed to run. Please try again.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}},"503":{"description":"Tool temporarily disabled.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"},"example":{"type":"https://iotools.cloud/docs/errors/tool_disabled","title":"Tool temporarily disabled","status":503,"code":"tool_disabled","detail":"This tool is temporarily unavailable. Try again shortly.","request_id":"e4042b29-8f1e-4c7a-9b52-6f0d1a3c7e11"}}}}}}}}}