{"openapi":"3.1.0","info":{"title":"signal:// ASCII API","version":"1.0.0","description":"Convert images into ASCII/ANSI art with a physically-accurate pipeline: linear-light perceptual luminance, unsharp-mask detail enhancement, optional Sobel edge line-art, and Floyd–Steinberg dithering. The live studio adds an adaptive temporal filter for flicker-free video."},"servers":[{"url":"https://platphorm-v2a-2r5kpzc55-platphormnews.vercel.app"}],"paths":{"/api/health":{"get":{"summary":"Liveness + capability probe","responses":{"200":{"description":"Service healthy"}}}},"/api/v1/render":{"post":{"summary":"Render an image to ASCII/ANSI/HTML/JSON/SVG","description":"Accepts multipart/form-data (field `image`) or JSON ({ imageUrl } or { imageBase64 }). Render params may be passed as query string, form fields, or JSON keys.","requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"image":{"type":"string","format":"binary"},"columns":{"type":"integer","description":"Output width in characters."},"charset":{"type":"string","description":"One of: standard, detailed, blocks, binary, dots, minimal."},"format":{"type":"string","description":"text | ansi | html | json | svg."},"color":{"type":"boolean","description":"Per-cell 24-bit color (ignored by plain text)."},"invert":{"type":"boolean","description":"Invert luminance mapping."},"contrast":{"type":"number","description":"Tonal contrast multiplier."},"brightness":{"type":"number","description":"Luminance offset."},"saturation":{"type":"number","description":"Color-mode saturation boost."},"gamma":{"type":"number","description":"Perceptual midtone response."},"edges":{"type":"boolean","description":"Sobel edge-detection line-art mode."},"edgeStrength":{"type":"number","description":"Edge magnitude multiplier."},"dither":{"type":"boolean","description":"Floyd–Steinberg error diffusion."},"sharpen":{"type":"number","description":"Unsharp-mask detail enhancement."},"autoLevels":{"type":"number","description":"Automatic percentile histogram stretch."},"monoColor":{"type":"string","description":"Color for mono/ansi/svg/html output."}}}},"application/json":{"schema":{"type":"object","properties":{"imageUrl":{"type":"string"},"imageBase64":{"type":"string"},"columns":{"type":"integer","description":"Output width in characters."},"charset":{"type":"string","description":"One of: standard, detailed, blocks, binary, dots, minimal."},"format":{"type":"string","description":"text | ansi | html | json | svg."},"color":{"type":"boolean","description":"Per-cell 24-bit color (ignored by plain text)."},"invert":{"type":"boolean","description":"Invert luminance mapping."},"contrast":{"type":"number","description":"Tonal contrast multiplier."},"brightness":{"type":"number","description":"Luminance offset."},"saturation":{"type":"number","description":"Color-mode saturation boost."},"gamma":{"type":"number","description":"Perceptual midtone response."},"edges":{"type":"boolean","description":"Sobel edge-detection line-art mode."},"edgeStrength":{"type":"number","description":"Edge magnitude multiplier."},"dither":{"type":"boolean","description":"Floyd–Steinberg error diffusion."},"sharpen":{"type":"number","description":"Unsharp-mask detail enhancement."},"autoLevels":{"type":"number","description":"Automatic percentile histogram stretch."},"monoColor":{"type":"string","description":"Color for mono/ansi/svg/html output."}}}}}},"responses":{"200":{"description":"Rendered output (content-type varies by `format`)."},"400":{"description":"Bad request / no image supplied."},"413":{"description":"Image exceeds size limit."}}}},"/api/mcp":{"post":{"summary":"Model Context Protocol endpoint (JSON-RPC 2.0)","description":"Implements initialize, tools/list and tools/call for the `render_ascii` tool.","responses":{"200":{"description":"JSON-RPC response"}}}}}}