Skip to content
PithLab

↑↓ to move · Enter to open · Esc to close

Wi-Fi QR Code Generator API

Generate a Wi-Fi QR code (SVG) that phones scan to join a network, plus the WIFI: payload text.

POST /api/v1/tools/wifi-qr-code-generatorMCP wifi_qr_code_generatorGenerators

Create a QR code that joins guests to your Wi-Fi in one scan. Supports WPA2, WPA3, WEP, open and hidden networks, with a printable Scan to join card.

Input

Send these as a JSON object. Unknown fields are rejected.

ssid
Network name (SSID), up to 32 bytes. (string, up to 64 characters, required)
password
Network password. WPA/SAE: 8 to 63 characters or a 64-digit hex key. WEP: 5 or 13 characters, or 10 or 26 hex digits. Ignored for nopass. (string, up to 64 characters, default "")
security
WPA (WPA/WPA2 and mixed WPA3), SAE (WPA3 only), WEP (legacy) or nopass (open network). (string, one of WPA, SAE, WEP, nopass, default "WPA")
hidden
The network does not broadcast its name. (boolean, default false)
size
SVG width and height in pixels. (integer, 64 to 4096, default 512)
curl https://pithlab.com/api/v1/tools/wifi-qr-code-generator \n  -H "Authorization: Bearer $PITHLAB_KEY" \n  -H "Content-Type: application/json" \n  -d '{"ssid":"Cafe Guest","password":"espresso-2026","security":"WPA"}'
Example response
{
  "ok": true,
  "result": {
    "payload": "WIFI:T:WPA;S:Cafe Guest;P:espresso-2026;;",
    "svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 37 37\" width=\"NaN\" height=\"NaN\" shape-rendering=\"crispEdges\"><rect width=\"37\" height=\"37\" fill=\"#ffffff\"/><path d=\"M4 4h7v1h-7zM15 4h2v1h-2zM23 4h1v1h-1zM26 4h7v1h-7zM4 5h1v1h-1zM10 5h1v1h-1zM13 5h2v1h-2zM16 5h2v1h-2zM19 5h2v1h-2zM23 5h2v1h-2zM26 5h1v1h-1zM32 5h1v1h-1zM4 6h1v1h-1zM6 6h3v1h-3zM10 6h1v1h-1zM12 6h1v1h-1zM15 6h1v1h-1zM18 6h1v1h-1zM23 6h1v1h-1zM26 6h1v1h-1zM28 6h3v1h-3zM32 6h1v1h-1zM4 7h1v1h-1zM6 7h3v1h-3zM10 7h1v1h-1zM12 7h4v1h-4zM17 7h3v1h-3zM22 7h1v1h-1zM26 7h1v1h-1zM28 7h3v1h-3zM32 7h1v1h-1zM4 8h1v1h-1zM6 8h3v1h-3zM10 8h1v1h-1zM12 8h1v1h-1zM15 8h2v1h-2zM19 8h1v1h-1zM22 8h1v1h-1zM24 8h1v1h-1zM26 8h1v1h-1zM28 8h3v1h-3zM32 8h1v1h-1zM4 9h1v1h-1zM10 9h1v1h-1zM12 9h2v1h-2zM15 9h3v1h-3zM19 9h4v1h-4zM24 9h1v1h-1zM26 9h1v1h-1zM32 9h1v1h-1zM4 10h7v1h-7zM12 10h1v1h-1zM14 10h1v1h-1zM16 10h1v1h-1zM18 10h1v1h-1zM20 10h1v1h-1zM22 10h1v1h-1zM24 10h1v1h-1zM26 10h7v1h-7zM12 11h1v1h-1zM16 11h3v1h-3zM21 11h1v1h-1zM23 11h2v1h-2zM4 12h1v1h-1zM6 12h5v1h-5zM15 12h3v1h-3zM19 12h1v1h-1zM21 12h2v1h-2zM24 12h1v1h-1zM26 12h5v1h-5zM5 13h5v1h-5zM11 13h1v1h-1zM14 13h1v1h-1zM18 13h1v1h-1zM22 13h2v1h-2zM26 13h1v1h-1zM28 13h2v1h-2zM32 13h1v1h-1zM5 14h1v1h-1zM8 14h1v1h-1zM10 14h3v1h-3zM14 14h2v1h-2zM17 14h1v1h-1zM19 14h3v1h-3zM24 14h1v1h-1zM28 14h1v1h-1zM30 14h1v1h-1zM32 14h1v1h-1zM4 15h3v1h-3zM12 15h7v1h-7zM22 15h8v1h-8zM32 15h1v1h-1zM4 16h1v1h-1zM6 16h2v1h-2zM9 16h5v1h-5zM16 16h2v1h-2zM19 16h2v1h-2zM24 16h2v1h-2zM29 16h4v1h-4zM6 17h1v1h-1zM8 17h1v1h-1zM12 17h1v1h-1zM18 17h3v1h-3zM24 17h1v1h-1zM29 17h4v1h-4zM4 18h2v1h-2zM7 18h1v1h-1zM10 18h4v1h-4zM15 18h2v1h-2zM21 18h1v1h-1zM27 18h1v1h-1zM30 18h1v1h-1zM4 19h5v1h-5zM12 19h3v1h-3zM16 19h1v1h-1zM23 19h4v1h-4zM28 19h3v1h-3zM4 20h2v1h-2zM8 20h4v1h-4zM13 20h1v1h-1zM15 20h1v1h-1zM19 20h4v1h-4zM24 20h1v1h-1zM27 20h1v1h-1zM30 20h1v1h-1zM4 21h1v1h-1zM7 21h2v1h-2zM12 21h3v1h-3zM16 21h2v1h-2zM20 21h1v1h-1zM24 21h3v1h-3zM28 21h2v1h-2zM31 21h2v1h-2zM4 22h1v1h-1zM8 22h4v1h-4zM14 22h1v1h-1zM16 22h3v1h-3zM21 22h1v1h-1zM24 22h1v1h-1zM27 22h2v1h-2zM31 22h1v1h-1zM4 23h1v1h-1zM6 23h1v1h-1zM9 23h1v1h-1zM11 23h1v1h-1zM13 23h1v1h-1zM17 23h1v1h-1zM20 23h1v1h-1zM23 23h7v1h-7zM32 23h1v1h-1zM4 24h1v1h-1zM7 24h5v1h-5zM13 24h1v1h-1zM15 24h1v1h-1zM18 24h3v1h-3zM22 24h1v1h-1zM24 24h5v1h-5zM30 24h3v1h-3zM12 25h1v1h-1zM15 25h2v1h-2zM22 25h3v1h-3zM28 25h3v1h-3zM4 26h7v1h-7zM13 26h4v1h-4zM19 26h3v1h-3zM23 26h2v1h-2zM26 26h1v1h-1zM28 26h3v1h-3zM4 27h1v1h-1zM10 27h1v1h-1zM12 27h1v1h-1zM18 27h1v1h-1zM20 27h1v1h-1zM23 27h2v1h-2zM28 27h2v1h-2zM4 28h1v1h-1zM6 28h3v1h-3zM10 28h1v1h-1zM12 28h4v1h-4zM19 28h4v1h-4zM24 28h5v1h-5zM4 29h1v1h-1zM6 29h3v1h-3zM10 29h1v1h-1zM12 29h1v1h-1zM15 29h2v1h-2zM18 29h1v1h-1zM22 29h1v1h-1zM27 29h1v1h-1zM31 29h1v1h-1zM4 30h1v1h-1zM6 30h3v1h-3zM10 30h1v1h-1zM12 30h1v1h-1zM15 30h3v1h-3zM19 30h3v1h-3zM23 30h1v1h-1zM29 30h1v1h-1zM31 30h1v1h-1zM4 31h1v1h-1zM10 31h1v1h-1zM14 31h4v1h-4zM20 31h1v1h-1zM22 31h1v1h-1zM25 31h1v1h-1zM27 31h1v1h-1zM29 31h4v1h-4zM4 32h7v1h-7zM12 32h5v1h-5zM19 32h2v1h-2zM25 32h2v1h-2zM28 32h4v1h-4z\" fill=\"#000000\"/></svg>",
    "version": 3
  }
}