{
  "openapi": "3.0.3",
  "info": {
    "title": "QR Code Generator",
    "description": "Generate QR codes as PNG, SVG, or data URI — custom size, colors, margin, and error correction.",
    "version": "1.0.0"
  },
  "components": {
    "schemas": {}
  },
  "paths": {
    "/generate": {
      "get": {
        "summary": "Generate a QR code (PNG, SVG, or data URI)",
        "tags": [
          "QR"
        ],
        "description": "Encodes text or a URL into a QR code. format=png returns an image/png, format=svg returns image/svg+xml, format=datauri returns JSON with a base64 data URI you can drop into an <img> src.",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "example": "https://abundanceapis.com",
            "in": "query",
            "name": "data",
            "required": true,
            "description": "Text or URL to encode"
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "png",
                "svg",
                "datauri"
              ],
              "default": "png"
            },
            "in": "query",
            "name": "format",
            "required": false,
            "description": "Output format"
          },
          {
            "schema": {
              "type": "integer",
              "default": 256,
              "minimum": 64,
              "maximum": 2000
            },
            "in": "query",
            "name": "size",
            "required": false,
            "description": "Image width in px"
          },
          {
            "schema": {
              "type": "integer",
              "default": 4,
              "minimum": 0,
              "maximum": 20
            },
            "in": "query",
            "name": "margin",
            "required": false,
            "description": "Quiet-zone modules"
          },
          {
            "schema": {
              "type": "string",
              "enum": [
                "L",
                "M",
                "Q",
                "H"
              ],
              "default": "M"
            },
            "in": "query",
            "name": "ecc",
            "required": false,
            "description": "Error-correction level"
          },
          {
            "schema": {
              "type": "string",
              "default": "#000000"
            },
            "in": "query",
            "name": "dark",
            "required": false,
            "description": "Foreground hex color"
          },
          {
            "schema": {
              "type": "string",
              "default": "#ffffff"
            },
            "in": "query",
            "name": "light",
            "required": false,
            "description": "Background hex color"
          }
        ],
        "responses": {
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Bad request",
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "Generate a QR code (POST, for long data)",
        "tags": [
          "QR"
        ],
        "description": "Same as GET /generate but accepts the parameters in a JSON body (useful for long data).",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "string",
                    "description": "Text or URL to encode",
                    "example": "https://abundanceapis.com"
                  },
                  "format": {
                    "type": "string",
                    "enum": [
                      "png",
                      "svg",
                      "datauri"
                    ],
                    "default": "png",
                    "description": "Output format"
                  },
                  "size": {
                    "type": "integer",
                    "default": 256,
                    "minimum": 64,
                    "maximum": 2000,
                    "description": "Image width in px"
                  },
                  "margin": {
                    "type": "integer",
                    "default": 4,
                    "minimum": 0,
                    "maximum": 20,
                    "description": "Quiet-zone modules"
                  },
                  "ecc": {
                    "type": "string",
                    "enum": [
                      "L",
                      "M",
                      "Q",
                      "H"
                    ],
                    "default": "M",
                    "description": "Error-correction level"
                  },
                  "dark": {
                    "type": "string",
                    "default": "#000000",
                    "description": "Foreground hex color"
                  },
                  "light": {
                    "type": "string",
                    "default": "#ffffff",
                    "description": "Background hex color"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Bad request",
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "servers": [
    {
      "url": "https://web-toolbox-api-production.up.railway.app/qr",
      "description": "Production"
    }
  ]
}