{"openapi":"3.1.0","info":{"title":"Σigmation API","version":"1","summary":"Math to SVG, PNG, MathML, HTML and badges by URL.","description":"Every endpoint is a `GET` that returns the rendered math. Put the URL anywhere an image works. Input is AsciiMath or TeX, auto-detected unless `l` is set. Bad input returns a JSON `400` with an `error` message.\n\nSource and library/CLI docs: https://github.com/brianfunk/sigmation","license":{"name":"MIT","url":"https://opensource.org/licenses/MIT"}},"servers":[{"url":"https://sigmation.dev"}],"tags":[{"name":"Render","description":"Rendered output in a given format."},{"name":"Legacy","description":"Routes kept from the 2017 API."},{"name":"Meta"}],"paths":{"/svg":{"get":{"tags":["Render"],"summary":"SVG","description":"Standalone SVG document sized in px.","parameters":[{"name":"m","in":"query","required":true,"description":"The math to render. Aliases: `math`, `input`, `s`.","schema":{"type":"string","maxLength":2000,"example":"sum_(i=1)^N 2^i"}},{"name":"l","in":"query","required":false,"description":"Input language. Default: auto-detect (`\\` or `$` means TeX).","schema":{"type":"string","enum":["tex","ascii"]}},{"name":"theme","in":"query","required":false,"description":"Ink shorthand: `light` = black, `dark` = white. Explicit `color` wins.","schema":{"type":"string","enum":["light","dark"],"default":"light"}},{"name":"color","in":"query","required":false,"description":"Ink color, hex.","schema":{"type":"string","pattern":"^#?([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$","example":"ff6600","default":"000000"}},{"name":"bg","in":"query","required":false,"description":"Background, hex or `transparent`.","schema":{"oneOf":[{"type":"string","pattern":"^#?([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$","example":"ff6600"},{"type":"string","enum":["transparent"]}],"default":"transparent"}},{"name":"scale","in":"query","required":false,"description":"Size multiplier.","schema":{"type":"number","minimum":0.25,"maximum":8,"default":1}},{"name":"inline","in":"query","required":false,"description":"`1` for text-style instead of display-style math.","schema":{"type":"string","enum":["0","1"],"default":"0"}}],"responses":{"200":{"description":"SVG image","headers":{"Cache-Control":{"description":"Output is a pure function of the URL, so responses are immutable for a year.","schema":{"type":"string","example":"public, max-age=31536000, immutable"}},"ETag":{"schema":{"type":"string"}}},"content":{"image/svg+xml":{"schema":{"type":"string"}}}},"400":{"description":"Bad input: missing or oversized math, invalid option, TeX syntax error, undefined macro.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":"TeX error: Missing close brace"}}}}}}},"/png":{"get":{"tags":["Render"],"summary":"PNG","description":"Rasterized PNG. Default `scale` is 2 for crispness. Fully transparent unless `bg` is set.","parameters":[{"name":"m","in":"query","required":true,"description":"The math to render. Aliases: `math`, `input`, `s`.","schema":{"type":"string","maxLength":2000,"example":"sum_(i=1)^N 2^i"}},{"name":"l","in":"query","required":false,"description":"Input language. Default: auto-detect (`\\` or `$` means TeX).","schema":{"type":"string","enum":["tex","ascii"]}},{"name":"theme","in":"query","required":false,"description":"Ink shorthand: `light` = black, `dark` = white. Explicit `color` wins.","schema":{"type":"string","enum":["light","dark"],"default":"light"}},{"name":"color","in":"query","required":false,"description":"Ink color, hex.","schema":{"type":"string","pattern":"^#?([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$","example":"ff6600","default":"000000"}},{"name":"bg","in":"query","required":false,"description":"Background, hex or `transparent`.","schema":{"oneOf":[{"type":"string","pattern":"^#?([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$","example":"ff6600"},{"type":"string","enum":["transparent"]}],"default":"transparent"}},{"name":"scale","in":"query","required":false,"description":"Size multiplier.","schema":{"type":"number","minimum":0.25,"maximum":8,"default":1}},{"name":"inline","in":"query","required":false,"description":"`1` for text-style instead of display-style math.","schema":{"type":"string","enum":["0","1"],"default":"0"}},{"name":"w","in":"query","required":false,"description":"Exact output width in px. Beats `scale`.","schema":{"type":"integer","minimum":1,"maximum":4096}},{"name":"h","in":"query","required":false,"description":"Exact output height in px.","schema":{"type":"integer","minimum":1,"maximum":4096}}],"responses":{"200":{"description":"PNG image","headers":{"Cache-Control":{"description":"Output is a pure function of the URL, so responses are immutable for a year.","schema":{"type":"string","example":"public, max-age=31536000, immutable"}},"ETag":{"schema":{"type":"string"}}},"content":{"image/png":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Bad input: missing or oversized math, invalid option, TeX syntax error, undefined macro.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":"TeX error: Missing close brace"}}}}}}},"/badge":{"get":{"tags":["Render"],"summary":"Badge","description":"Shields-style pill: label on the left, equation on a colored field on the right. 20px tall, pure vector paths. For badges, `color` is the ink for both halves (default white), `bg` is the label field (default `555`), `badgeColor` is the equation field.","parameters":[{"name":"m","in":"query","required":true,"description":"The math to render. Aliases: `math`, `input`, `s`.","schema":{"type":"string","maxLength":2000,"example":"sum_(i=1)^N 2^i"}},{"name":"l","in":"query","required":false,"description":"Input language. Default: auto-detect (`\\` or `$` means TeX).","schema":{"type":"string","enum":["tex","ascii"]}},{"name":"color","in":"query","required":false,"description":"Ink for label and equation, hex.","schema":{"type":"string","pattern":"^#?([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$","example":"ff6600","default":"ffffff"}},{"name":"bg","in":"query","required":false,"description":"Label field background, hex.","schema":{"type":"string","pattern":"^#?([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$","example":"ff6600","default":"555"}},{"name":"label","in":"query","required":false,"description":"Left-side label.","schema":{"type":"string","default":"Σ","maxLength":40}},{"name":"badgeColor","in":"query","required":false,"description":"Right-side background, hex.","schema":{"type":"string","pattern":"^#?([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$","example":"ff6600","default":"4c1"}}],"responses":{"200":{"description":"SVG badge","headers":{"Cache-Control":{"description":"Output is a pure function of the URL, so responses are immutable for a year.","schema":{"type":"string","example":"public, max-age=31536000, immutable"}},"ETag":{"schema":{"type":"string"}}},"content":{"image/svg+xml":{"schema":{"type":"string"}}}},"400":{"description":"Bad input: missing or oversized math, invalid option, TeX syntax error, undefined macro.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":"TeX error: Missing close brace"}}}}}}},"/mml":{"get":{"tags":["Render"],"summary":"MathML","description":"Presentation MathML.","parameters":[{"name":"m","in":"query","required":true,"description":"The math to render. Aliases: `math`, `input`, `s`.","schema":{"type":"string","maxLength":2000,"example":"sum_(i=1)^N 2^i"}},{"name":"l","in":"query","required":false,"description":"Input language. Default: auto-detect (`\\` or `$` means TeX).","schema":{"type":"string","enum":["tex","ascii"]}},{"name":"inline","in":"query","required":false,"description":"`1` for text-style instead of display-style math.","schema":{"type":"string","enum":["0","1"],"default":"0"}}],"responses":{"200":{"description":"MathML document","headers":{"Cache-Control":{"description":"Output is a pure function of the URL, so responses are immutable for a year.","schema":{"type":"string","example":"public, max-age=31536000, immutable"}},"ETag":{"schema":{"type":"string"}}},"content":{"application/mathml+xml":{"schema":{"type":"string"}}}},"400":{"description":"Bad input: missing or oversized math, invalid option, TeX syntax error, undefined macro.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":"TeX error: Missing close brace"}}}}}}},"/html":{"get":{"tags":["Render"],"summary":"HTML page","description":"A minimal standalone HTML page with the SVG inline, for linking rather than embedding.","parameters":[{"name":"m","in":"query","required":true,"description":"The math to render. Aliases: `math`, `input`, `s`.","schema":{"type":"string","maxLength":2000,"example":"sum_(i=1)^N 2^i"}},{"name":"l","in":"query","required":false,"description":"Input language. Default: auto-detect (`\\` or `$` means TeX).","schema":{"type":"string","enum":["tex","ascii"]}},{"name":"theme","in":"query","required":false,"description":"Ink shorthand: `light` = black, `dark` = white. Explicit `color` wins.","schema":{"type":"string","enum":["light","dark"],"default":"light"}},{"name":"color","in":"query","required":false,"description":"Ink color, hex.","schema":{"type":"string","pattern":"^#?([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$","example":"ff6600","default":"000000"}},{"name":"bg","in":"query","required":false,"description":"Background, hex or `transparent`.","schema":{"oneOf":[{"type":"string","pattern":"^#?([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$","example":"ff6600"},{"type":"string","enum":["transparent"]}],"default":"transparent"}},{"name":"scale","in":"query","required":false,"description":"Size multiplier.","schema":{"type":"number","minimum":0.25,"maximum":8,"default":1}},{"name":"inline","in":"query","required":false,"description":"`1` for text-style instead of display-style math.","schema":{"type":"string","enum":["0","1"],"default":"0"}}],"responses":{"200":{"description":"HTML page","headers":{"Cache-Control":{"description":"Output is a pure function of the URL, so responses are immutable for a year.","schema":{"type":"string","example":"public, max-age=31536000, immutable"}},"ETag":{"schema":{"type":"string"}}},"content":{"text/html":{"schema":{"type":"string"}}}},"400":{"description":"Bad input: missing or oversized math, invalid option, TeX syntax error, undefined macro.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":"TeX error: Missing close brace"}}}}}}},"/math.{ext}":{"get":{"tags":["Legacy"],"summary":"Format by extension","parameters":[{"name":"ext","in":"path","required":true,"schema":{"type":"string","enum":["svg","png","mml","html"]}},{"name":"m","in":"query","required":true,"description":"The math to render. Aliases: `math`, `input`, `s`.","schema":{"type":"string","maxLength":2000,"example":"sum_(i=1)^N 2^i"}},{"name":"l","in":"query","required":false,"description":"Input language. Default: auto-detect (`\\` or `$` means TeX).","schema":{"type":"string","enum":["tex","ascii"]}},{"name":"theme","in":"query","required":false,"description":"Ink shorthand: `light` = black, `dark` = white. Explicit `color` wins.","schema":{"type":"string","enum":["light","dark"],"default":"light"}},{"name":"color","in":"query","required":false,"description":"Ink color, hex.","schema":{"type":"string","pattern":"^#?([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$","example":"ff6600","default":"000000"}},{"name":"bg","in":"query","required":false,"description":"Background, hex or `transparent`.","schema":{"oneOf":[{"type":"string","pattern":"^#?([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$","example":"ff6600"},{"type":"string","enum":["transparent"]}],"default":"transparent"}},{"name":"scale","in":"query","required":false,"description":"Size multiplier.","schema":{"type":"number","minimum":0.25,"maximum":8,"default":1}},{"name":"inline","in":"query","required":false,"description":"`1` for text-style instead of display-style math.","schema":{"type":"string","enum":["0","1"],"default":"0"}},{"name":"w","in":"query","required":false,"description":"Exact output width in px. Beats `scale`.","schema":{"type":"integer","minimum":1,"maximum":4096}},{"name":"h","in":"query","required":false,"description":"Exact output height in px.","schema":{"type":"integer","minimum":1,"maximum":4096}}],"responses":{"200":{"description":"Rendered output in the requested format.","headers":{"Cache-Control":{"description":"Output is a pure function of the URL, so responses are immutable for a year.","schema":{"type":"string","example":"public, max-age=31536000, immutable"}},"ETag":{"schema":{"type":"string"}}}},"400":{"description":"Bad input: missing or oversized math, invalid option, TeX syntax error, undefined macro.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":"TeX error: Missing close brace"}}}}}}},"/math":{"get":{"tags":["Legacy"],"summary":"Format by Accept header","description":"Picks the format from the `Accept` (or `Content-Type`) header: `image/png`, `image/svg+xml`, `application/mathml+xml`, `text/html`. Defaults to SVG.","parameters":[{"name":"m","in":"query","required":true,"description":"The math to render. Aliases: `math`, `input`, `s`.","schema":{"type":"string","maxLength":2000,"example":"sum_(i=1)^N 2^i"}},{"name":"l","in":"query","required":false,"description":"Input language. Default: auto-detect (`\\` or `$` means TeX).","schema":{"type":"string","enum":["tex","ascii"]}},{"name":"theme","in":"query","required":false,"description":"Ink shorthand: `light` = black, `dark` = white. Explicit `color` wins.","schema":{"type":"string","enum":["light","dark"],"default":"light"}},{"name":"color","in":"query","required":false,"description":"Ink color, hex.","schema":{"type":"string","pattern":"^#?([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$","example":"ff6600","default":"000000"}},{"name":"bg","in":"query","required":false,"description":"Background, hex or `transparent`.","schema":{"oneOf":[{"type":"string","pattern":"^#?([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$","example":"ff6600"},{"type":"string","enum":["transparent"]}],"default":"transparent"}},{"name":"scale","in":"query","required":false,"description":"Size multiplier.","schema":{"type":"number","minimum":0.25,"maximum":8,"default":1}},{"name":"inline","in":"query","required":false,"description":"`1` for text-style instead of display-style math.","schema":{"type":"string","enum":["0","1"],"default":"0"}},{"name":"w","in":"query","required":false,"description":"Exact output width in px. Beats `scale`.","schema":{"type":"integer","minimum":1,"maximum":4096}},{"name":"h","in":"query","required":false,"description":"Exact output height in px.","schema":{"type":"integer","minimum":1,"maximum":4096}}],"responses":{"200":{"description":"Rendered output.","headers":{"Cache-Control":{"description":"Output is a pure function of the URL, so responses are immutable for a year.","schema":{"type":"string","example":"public, max-age=31536000, immutable"}},"ETag":{"schema":{"type":"string"}}}},"400":{"description":"Bad input: missing or oversized math, invalid option, TeX syntax error, undefined macro.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":"TeX error: Missing close brace"}}}}}}},"/api/health":{"get":{"tags":["Meta"],"summary":"Health check","responses":{"200":{"description":"OK","content":{"application/json":{"example":{"ok":true,"formats":["svg","png","mml","html","badge"]}}}}}}},"/openapi.json":{"get":{"tags":["Meta"],"summary":"This document","responses":{"200":{"description":"OpenAPI 3.1 JSON"}}}}},"components":{"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}