Version 1.0.0 - animated QR code rendering over HTTP
| Method | Path | Description |
|---|---|---|
| GETPOST | /api/v1/render |
Render an animated SVG QR code |
| GET | /api/v1/health |
Health check, returns ok |
| GET | /api/v1/ |
This page |
| GET | /api/v1/openapi.json |
OpenAPI 3.1.0 machine-readable spec |
Pass preset=<name> to choose an animation style. Default is bloom.
https://queue-arr.shannonskipper.com/api/v1/render?payload=https%3A%2F%2Fexample.com&preset=aurora
curl 'https://queue-arr.shannonskipper.com/api/v1/render?payload=hello&preset=bloom' \
-o hello.svg
curl -X POST 'https://queue-arr.shannonskipper.com/api/v1/render' \
-H 'content-type: application/json' \
-d '{"payload":"hello","preset":"chroma"}' \
-o hello.svg
Responses are valid image/svg+xml with permissive CORS so the URL works directly as an image source. Set a width because the SVG has only a viewBox and renders small at the browser default otherwise.
<img src="https://queue-arr.shannonskipper.com/api/v1/render?payload=hello&preset=bloom"
alt="QR code" width="240" height="240"
loading="lazy" decoding="async">

Note: animation plays in browsers that render the embedded <img> as live content. Some hosts proxy remote SVGs through a sanitiser and serve a static snapshot (GitHub READMEs are one such case).
All errors use RFC 7807 Problem Details with Content-Type: application/problem+json.
{
"type": "/api/v1/errors/missing-payload",
"title": "Payload Required",
"status": 400,
"detail": "The payload field is required and must be a non-empty string."
}