One service, one API key, one place to manage the qrcode dependency.
Generate QR codes — as PNG data URLs or SVG — from any internal tool
with a single JSON POST request.
// One call, no npm dependency in your project const res = await fetch('http://localhost:3350/api/qr', { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-Api-Key': process.env.QR_SERVICE_KEY }, body: JSON.stringify({ data: targetUrl, format: 'dataUrl' }), }); const { dataUrl } = await res.json(); // dataUrl → <img src="data:image/png;base64,...">
qrcode npm package lives here and nowhere else. Security patches and upgrades happen in one place — every connected tool benefits immediately.<img> embedding, an SVG for scalable print output, or both — with a single JSON POST.One flat annual fee. Generate QR codes all year — logins, labels, integrations, or anything else. When your 10,000 base credits run low, buy a refill at the tier that fits your volume.
Pick the tier that matches your volume. When credits run low, buy your tier from the dashboard — no decision fatigue, just one click. Refills stack on your current balance and don't expire until renewal.
Pass your API key in X-Api-Key or Authorization: Bearer <key>. All request and response bodies are JSON.
// Request { "data": "https://your-app.example.com/resource/12345", "format": "dataUrl", // 'both' | 'dataUrl' | 'svg' "options": { "width": 400 } } // Response { "dataUrl": "data:image/png;base64,...", "creditsRemaining": 9999 }
// Request { "items": [ { "data": "https://app.example.com/resource/aaa-001", "format": "svg" }, { "data": "https://app.example.com/resource/bbb-002", "format": "svg" } ] } // Response { "results": [ { "svg": "<svg...>" }, { "svg": "<svg...>" } ], "creditsRemaining": 9997 }