Python Integration

Generate QR codes in Python using the requests library.

Installation

pip install requests

Quick Start

import requests
import os

def generate_qr(data: str, **options) -> bytes:
    """Generate a QR code image."""
    response = requests.get(
        'https://qrcodeapi.io/api/generate',
        params={'data': data, **options},
        headers={'Authorization': f'Bearer {os.environ["QR_API_KEY"]}'}
    )
    response.raise_for_status()
    return response.content

# Usage
qr_image = generate_qr('https://example.com', size=400)
with open('qr.png', 'wb') as f:
    f.write(qr_image)

Flask Integration

from flask import Flask, request, Response
import requests
import os

app = Flask(__name__)

@app.route('/qr')
def generate_qr():
    data = request.args.get('data')
    r = requests.get(
        'https://qrcodeapi.io/api/generate',
        params={'data': data},
        headers={'Authorization': f'Bearer {os.environ["QR_API_KEY"]}'}
    )
    return Response(r.content, mimetype='image/png')

Django View

from django.http import HttpResponse
import requests
from django.conf import settings

def qr_view(request):
    data = request.GET.get('data')
    r = requests.get(
        'https://qrcodeapi.io/api/generate',
        params={'data': data},
        headers={'Authorization': f'Bearer {settings.QR_API_KEY}'}
    )
    return HttpResponse(r.content, content_type='image/png')

FastAPI (Async)

from fastapi import FastAPI
from fastapi.responses import Response
import httpx
import os

app = FastAPI()

@app.get("/qr")
async def generate_qr(data: str, size: int = 300):
    async with httpx.AsyncClient() as client:
        r = await client.get(
            "https://qrcodeapi.io/api/generate",
            params={"data": data, "size": size},
            headers={"Authorization": f"Bearer {os.environ['QR_API_KEY']}"}
        )
    return Response(content=r.content, media_type="image/png")

Batch Processing Script

import requests
import os
from concurrent.futures import ThreadPoolExecutor

def generate_single(item):
    r = requests.get(
        'https://qrcodeapi.io/api/generate',
        params={'data': item['url']},
        headers={'Authorization': f'Bearer {os.environ["QR_API_KEY"]}'}
    )
    with open(f'qr_{item["id"]}.png', 'wb') as f:
        f.write(r.content)
    return item['id']

items = [
    {'id': 1, 'url': 'https://example1.com'},
    {'id': 2, 'url': 'https://example2.com'},
    {'id': 3, 'url': 'https://example3.com'},
]

with ThreadPoolExecutor(max_workers=5) as executor:
    results = list(executor.map(generate_single, items))

Get Your API Key

Get Free API Key