QR Code API for Python
Generate QR codes in Python using the requests library. Perfect for Django, Flask, FastAPI, scripts, and data pipelines.
Installation
pip install requests
Quick Start
import requests
import os
def generate_qr(data, filename, **options):
"""Generate a QR code and save to file."""
api_key = os.environ.get('QR_API_KEY')
params = {
'data': data,
'size': options.get('size', 300),
'format': options.get('format', 'png'),
'color': options.get('color', '000000'),
'background': options.get('background', 'ffffff'),
}
response = requests.get(
'https://qrcodeapi.io/api/generate',
params=params,
headers={'Authorization': f'Bearer {api_key}'}
)
response.raise_for_status()
with open(filename, 'wb') as f:
f.write(response.content)
return filename
# Usage
generate_qr('https://example.com', 'qr.png')
generate_qr('https://github.com', 'github.png', size=400, color='4F46E5')
Flask Example
from flask import Flask, request, Response
import requests
import os
app = Flask(__name__)
@app.route('/qr')
def generate_qr():
data = request.args.get('data')
if not data:
return {'error': 'data parameter required'}, 400
response = requests.get(
'https://qrcodeapi.io/api/generate',
params={'data': data},
headers={'Authorization': f'Bearer {os.environ["QR_API_KEY"]}'}
)
return Response(
response.content,
mimetype='image/png',
headers={'Cache-Control': 'public, max-age=86400'}
)
if __name__ == '__main__':
app.run(debug=True)
Django View
from django.http import HttpResponse
import requests
from django.conf import settings
def qr_code_view(request):
data = request.GET.get('data')
response = requests.get(
'https://qrcodeapi.io/api/generate',
params={'data': data},
headers={'Authorization': f'Bearer {settings.QR_API_KEY}'}
)
return HttpResponse(
response.content,
content_type='image/png'
)
FastAPI Example
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:
response = 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=response.content,
media_type="image/png"
)
Batch Generation
import requests
import os
def generate_batch(items):
"""Generate multiple QR codes in one request."""
response = requests.post(
'https://qrcodeapi.io/api/batch',
json={'items': items},
headers={'Authorization': f'Bearer {os.environ["QR_API_KEY"]}'}
)
return response.json()
# Generate 5 QR codes at once
results = generate_batch([
{'data': 'https://example1.com'},
{'data': 'https://example2.com'},
{'data': 'https://example3.com', 'size': 400},
{'data': 'https://example4.com', 'color': 'FF0000'},
{'data': 'https://example5.com'},
])
Start Building with Python
Get your free API key and start generating QR codes in minutes.
Get Free API Key