Node.js Integration

Generate QR codes in Node.js with built-in fetch or any HTTP client.

Quick Start (Node 18+)

// qr-client.js
async function generateQR(data, options = {}) {
  const params = new URLSearchParams({
    data,
    size: options.size || 300,
    format: options.format || 'png',
    ...options
  });

  const response = await fetch(
    `https://qrcodeapi.io/api/generate?${params}`,
    {
      headers: {
        'Authorization': `Bearer ${process.env.QR_API_KEY}`
      }
    }
  );

  return Buffer.from(await response.arrayBuffer());
}

// Usage
const fs = require('fs');
const qr = await generateQR('https://example.com');
fs.writeFileSync('qr.png', qr);

Express.js Middleware

const express = require('express');
const app = express();

app.get('/api/qr', async (req, res) => {
  const { url, size } = req.query;
  
  const response = await fetch(
    `https://qrcodeapi.io/api/generate?data=${encodeURIComponent(url)}&size=${size || 300}`,
    {
      headers: { 'Authorization': `Bearer ${process.env.QR_API_KEY}` }
    }
  );

  const buffer = Buffer.from(await response.arrayBuffer());
  res.set('Content-Type', 'image/png');
  res.send(buffer);
});

app.listen(3000);

Next.js API Route

// app/api/qr/route.js
export async function GET(request) {
  const { searchParams } = new URL(request.url);
  const data = searchParams.get('data');

  const response = await fetch(
    `https://qrcodeapi.io/api/generate?data=${encodeURIComponent(data)}`,
    {
      headers: { 'Authorization': `Bearer ${process.env.QR_API_KEY}` }
    }
  );

  const buffer = await response.arrayBuffer();
  
  return new Response(buffer, {
    headers: { 'Content-Type': 'image/png' }
  });
}

TypeScript Helper

interface QROptions {
  size?: number;
  format?: 'png' | 'svg';
  color?: string;
  background?: string;
}

export async function generateQR(
  data: string,
  options: QROptions = {}
): Promise<Buffer> {
  const params = new URLSearchParams({ data, ...options } as any);
  
  const res = await fetch(`https://qrcodeapi.io/api/generate?${params}`, {
    headers: { Authorization: `Bearer ${process.env.QR_API_KEY}` }
  });
  
  return Buffer.from(await res.arrayBuffer());
}

Get Your API Key

Get Free API Key