{
  "service": "QR Code Generator API",
  "version": "3.0.0",
  "endpoints": {
    "GET /generate": "Basic QR code. Params: data*",
    "GET /wifi": "WiFi QR. Params: ssid*, password, encryption, hidden",
    "GET /vcard": "vCard contact. Params: name*, phone, email, org, url, title, address, note",
    "GET /email": "Email QR. Params: to*, subject, body, cc, bcc",
    "GET /sms": "SMS QR. Params: phone*, message",
    "GET /phone": "Phone call QR. Params: phone*",
    "GET /whatsapp": "WhatsApp QR. Params: phone*, message",
    "GET /telegram": "Telegram QR. Params: username*",
    "GET /geo": "Location QR. Params: lat*, lng*, label",
    "GET /event": "Calendar event QR. Params: title*, start*, end*, location, description",
    "GET /crypto": "Crypto payment QR. Params: coin*, address*, amount, label, message",
    "GET /upi": "UPI payment QR. Params: pa*, pn*, am, cu, tn",
    "POST /batch": "Bulk generation (max 20). Body: JSON array",
    "POST /dynamic": "Create dynamic QR with redirect. Body: { url, label? }",
    "GET /r/:id": "Dynamic QR redirect (scan endpoint)",
    "GET /health": "Health check"
  },
  "styling": {
    "size": "50-2000 (default: 300)",
    "format": "svg | json (default: svg)",
    "style": "square | dots | rounded | classy | diamond (default: square)",
    "corner_style": "square | dots | rounded (default: matches style)",
    "color": "Hex without # (default: 000000)",
    "bg": "Hex without # or 'transparent' (default: ffffff)",
    "corner_color": "Hex without # for corner markers (default: same as color)",
    "gradient": "linear | radial (default: none)",
    "gradient_color": "End color hex for gradient",
    "gradient_angle": "0-360 for linear gradient (default: 45)",
    "logo": "URL of logo image to embed in center",
    "logo_size": "Logo size as % of QR (10-40, default: 20)",
    "label": "Text label below QR code",
    "label_color": "Label text color hex (default: matches color)",
    "label_size": "Label font size 8-48 (default: 14)",
    "frame": "none | box | banner (default: none)",
    "ec": "Error correction: L | M | Q | H (default: M, forced H with logo)",
    "margin": "Quiet zone 0-10 (default: 2)",
    "download": "Set to 1 for download header"
  }
}