Skip to content
Back to Home
QR Code API Docs
v1.0
Free · No API Key · CORS-Enabled

QR Code API for Developers

Generate QR codes programmatically via HTTP. PNG, SVG, or JSON response — no signup, no API key, CORS-enabled. Perfect for websites, apps, and server-side integrations.

No API Key
No signup
CORS-Enabled
Browser-ready
60 req/min
Per IP free tier
No Tracking
Zero harm
Quick Copy

The Entire API — One URL

Copy this URL, change the datavalue, and you're done. That's the whole API.

Base URL
https://qrendless.pro/api/qr/?data=https://example.com
&format=pngPNG (default)
&format=jpgJPG image
&format=svgSVG vector
&format=pdfPDF print
&size=51264–1024 px
&transparent=trueNo background
&dark=#1a73e8Dark color
&light=#ffffffLight color
&ecc=HL/M/Q/H
&margin=40–10 modules
Full example (all params)
https://qrendless.pro/api/qr/?data=https://example.com&format=png&size=512&transparent=true&dark=%231a73e8&light=%23ffffff&ecc=H&margin=2
What You Get

Copying This API = 1 of Our 7 Tools

The site has 7 tools in the browser. The API exposes only 1 tool — the QR Code Generator. The other 6 tools are browser-only (by design — they need camera, image upload, or heavy compute that can't be done over HTTP).

✓ What the API Does

Generates QR codes from any text/URL via the data parameter.

The Generator covers 1,421+ QR types across 38 categories — Payment, Business, Food & Restaurant, Real Estate, Automotive, and 33 more.

All 1,421+ types work via the same single endpoint — just pass the right data value (URL, WiFi string, vCard, UPI URI, etc.).

✗ What the API Doesn't Do

These 6 tools are browser-only — not exposed via the API:

  • QR Scanner (needs camera)
  • QR Decoder (needs image upload)
  • QR Customizer (logo/colors)
  • Bulk QR Generator (heavy compute)
  • QR Enhancer (image upscale)
  • QR Expiry Checker (image upload)
1
Tool Exposed
QR Generator
7
Total Tools
In-browser suite
1,421+
QR Types
URL, WiFi, vCard, UPI...
38
Categories
Payment, Business, AI...
QR Categories

1,421+ QR Types Across 38 Categories — All Work Via API

The QR Generator (the tool this API exposes) supports 1,421+ QR types organized into 38 categories. The API doesn't care about the category — it just encodes whatever you pass in data. Here's a sample of 12 categories with the kind of data value each expects.

Communication
24 types
Sample data
mailto:[email protected]
Payment
24 types
Sample data
upi://pay?pa=name@upi&am=100
Food & Restaurant
162 types
Sample data
https://menu.example.com
Business & Marketing
28 types
Sample data
https://biz.example.com
Smart Packaging
106 types
Sample data
https://track.example.com
Automotive
102 types
Sample data
https://service.example.com
Real Estate
96 types
Sample data
https://tour.example.com
Social Media
22 types
Sample data
https://instagram.com/user
Education
25 types
Sample data
https://course.example.com
Health & Emergency
23 types
Sample data
tel:+155911
Events & Venues
17 types
Sample data
https://event.example.com
AI & Automation
31 types
Sample data
https://api.example.com

+ 26 more categories including Networking, Events, Education, Health, Smart Packaging, Public Services, Policy, Environment, and more. Browse all 1,421+ types in the in-browser QR Generator tool.

One API, All Categories

You Copy ONE API — Not 1,421 Different APIs

The QR Generator tool covers 1,421+ QR types across 38 categories (URL, WiFi, UPI, vCard, Email, Phone, SMS, Geo, etc.). But you do NOT need to copy 1,421 different API endpoints. ONE endpoint covers all of them — the data parameter determines what gets encoded.

1 Endpoint
/api/qr/?data=...
Same URL for every QR type
1,421+ QR Types
38 Categories
Just change the data value

Same Endpoint, Different QR Type

URL/api/qr/?data=https://qrendless.pro
WiFi/api/qr/?data=WIFI:T:WPA;S:MyNet;P:pass;;
UPI Payment/api/qr/?data=upi://pay?pa=name@upi&am=100
vCard/api/qr/?data=BEGIN:VCARD...END:VCARD

Why this works: A QR code is just a 2D barcode that encodes arbitrary text. The QR standard doesn't care whether the text is a URL, a WiFi string, a vCard, or a UPI URI — it encodes whatever bytes you give it. So one endpoint that accepts data=anything covers every QR type that exists.

API Architecture

How Big Sites Provide APIs — 4 Patterns Compared

Big API providers use 4 main architecture patterns. QREndlessPro uses pattern #4 (one endpoint, data param) — the simplest for a single-purpose API like QR generation.

1

Many endpoints (one per resource type)

Examples: Stripe (/v1/charges, /v1/customers, /v1/products), Twilio (/2010-04-01/Accounts, /Messages)

How: Each resource type gets its own URL endpoint. Developers learn many URLs.

Best for: Complex APIs with many distinct resources (payments, messaging, CRM).

2

One endpoint per tool

Examples: iLovePDF (/api/v1/merge, /api/v1/split, /api/v1/compress), Smallpdf

How: Each tool (merge, split, compress) is a separate endpoint. Clear but verbose.

Best for: Multi-tool suites where each tool does something fundamentally different.

3

One endpoint, action param

Examples: bit.ly (/v4/shorten, /v4/expand — but unified via OAuth scopes)

How: Single endpoint + `action` parameter to select behavior. Compact API surface.

Best for: APIs with related actions on the same data type.

4

One endpoint, data param (QREndlessPro approach)

Examples: QREndlessPro (/api/qr/?data=...), QRCode Monkey (api.qrserver.com/api/create)

How: Single endpoint. The `data` parameter determines what the QR encodes. 1 endpoint = 1,421+ QR types.

Best for: Single-purpose APIs (QR generation) where the input is the only variable.

Our approach
Quick Start

Generate a QR Code in 1 Line

The base URL is https://qrendless.pro/api/qr/. Use GET with query params or POST with JSON body.

# Generate a PNG QR code (default 256x256)
curl "https://qrendless.pro/api/qr/?data=https://example.com" -o qr.png

# SVG format, custom size + color
curl "https://qrendless.pro/api/qr/?data=https://example.com&format=svg&size=512&dark=%231a73e8" -o qr.svg

# JSON response (returns data URL)
curl "https://qrendless.pro/api/qr/?data=hello&format=json"
Interactive

Try It Live

Generate a QR code right here — no API key, no signup. Adjust the options and see the live preview + request URL.

Live Try-It

No API key
QR preview appears here
Request URL
/api/qr/?data=https%3A%2F%2Fqrendless.pro&size=256&format=png&dark=%23000000&light=%23ffffff&ecc=M
Reference

API Reference

All parameters work with both GET (query string) and POST (JSON body).

ParameterTypeDescription
datastringText or URL to encode. Max 2,048 chars (GET) or 10,000 chars (POST). Covers all 1,421+ QR types — just change the data value.
formatstringOutput format: png | jpg | svg | pdf. (WebP removed — use PNG + browser canvas.toDataURL if needed.)
sizenumberImage size in pixels. Range: 64–1024.
transparentbooleanTransparent background (PNG only — JPG doesn't support alpha). Use transparent=true for overlaying QR on colored backgrounds.
darkstringHex color for dark modules. Format: #RGB or #RRGGBB.
lightstringHex color for light background. Ignored when transparent=true.
eccstringError correction level: L (7%) | M (15%) | Q (25%) | H (30%).
marginnumberQuiet zone margin in modules. Range: 0–10.
Response Formats

4 Output Formats — PNG, JPG, SVG, PDF

Pick the format that fits your use case. All formats are generated server-side via pure-JS encoders (qrcode + pngjs + jpeg-js + jspdf). PNG supports transparent=true for transparent backgrounds. WebP is not supported — use PNG and convert client-side via canvas.toDataURL('image/webp') if needed.

PNGDefault

Binary image/png. Lossless, universal. Use for downloads, embedding, blob URLs. Supports transparent=true for transparent background (alpha channel).

JPGNew

Binary image/jpeg. Smaller file size (quality 90). Use for colored QRs on web pages. format=jpg or jpeg. No transparency (JPG doesn't support alpha).

SVG

Text image/svg+xml. Vector, scalable to any size. Ideal for print, PDFs, design tools. Supports transparent background.

PDFNew

Binary application/pdf. A4 portrait with QR centered. Print-ready for business cards, flyers, posters.

Use Cases

Generate Any QR Type via API

The API accepts any text or URL scheme in the data parameter. Here are 8 common QR types with real-world scenarios + the exact data value to pass.

URL / Website QR

Marketing campaigns, product packaging, print ads — scan to open a landing page.

Data value
https://qrendless.pro

💡 URL-encode special characters (& = ?) when passing via GET query string.

WiFi Network QR

Cafes, restaurants, hotels, offices — scan to auto-join the WiFi network.

Data value
WIFI:T:WPA;S:MyNetwork;P:MyPassword;;

💡 Format: WIFI:T:<auth>;S:<ssid>;P:<password>;; — supported natively by iOS + Android.

vCard / Contact QR

Business cards, networking events — scan to save contact details to phone.

Data value
BEGIN:VCARD\nVERSION:3.0\nN:Last;First\nTEL:+1234567890\nEND:VCARD

💡 Use POST /api/qr/ for vCards — they exceed 2,048 chars (GET limit).

UPI Payment QR

Retail stores, freelancers, donations — scan to pay via UPI apps.

Data value
upi://pay?pa=name@upi&pn=Name&am=100&cu=INR

💡 am= amount, cu= currency. Works with PhonePe, GPay, Paytm, BHIM.

Email QR

Support cards, contact forms — scan to open pre-filled email.

Data value
mailto:[email protected]?subject=Hello

💡 Use mailto: scheme — opens default email client with subject pre-filled.

Phone Call QR

Customer support, helplines — scan to dial the number.

Data value
tel:+15551234567

💡 Include country code (+1, +91, +44) for international compatibility.

SMS QR

Subscription signups, feedback forms — scan to send a pre-filled SMS.

Data value
sms:+15551234567?body=SUBSCRIBE

💡 Body text is URL-encoded. iOS + Android both support the sms: scheme.

Location / Geo QR

Event venues, real estate, tourism — scan to open in maps app.

Data value
geo:40.7128,-74.0060

💡 Format: geo:<lat>,<long> — opens in Google Maps, Apple Maps, or Waze.

Tools & Permissions

What the API Exposes (and What It Doesn't)

QREndlessPro has 7 main tools in the browser. The public API exposes only 1 capability — QR code generation. The other 6 tools are browser-only (by design, for zero-harm privacy).

Tool Exposure Matrix

ToolExposed?
QR Code Generator Yes
Bulk QR Generator No
QR Customizer (logo, colors) No
QR Scanner (camera) No
QR Decoder (image) No
QR Enhancer (upscale) No
QR Expiry Checker No

Permissions Required

RequirementNeeded?Note
API Key NoneNone — public API
OAuth / Bearer Token NoneNone — no auth flow
JWT NoneNone — no token exchange
Referer Header NoneNone — works from any origin
Account / Signup NoneNone — anonymous use
Credit Card NoneNone — free tier is the only tier
CORS preflight (OPTIONS) YesHandled automatically by browsers
HTTPS YesProduction enforces HTTPS only

Summary: The API requires zero authentication. Just send an HTTP GET or POST request — no API key, no signup, no headers beyond Content-Type for POST.

Security

Full Security Posture

The API is fully secure by design — no authentication surface, no data retention, edge-sandboxed runtime. Here are the 10 security properties enforced.

HTTPS Encrypted in Transit

All API requests + responses travel over HTTPS. No plaintext exposure.

No Authentication Required

No API key, no OAuth, no JWT, no Bearer tokens. Public read-style API — just send the request.

CORS-Enabled (Cross-Origin)

Access-Control-Allow-Origin: * — call directly from any website's frontend JavaScript.

Rate-Limited per IP

60 requests/minute per IP. Prevents abuse without requiring signup or throttling legitimate users.

No PII Logging

Client IP used only for in-memory rate limiting — never written to disk, never logged, never stored.

No Tracking Cookies

API sets zero cookies. No analytics, no fingerprinting, no cross-site tracking.

Edge-Sandboxed Runtime

Runs as a Cloudflare Pages Function (V8 isolate). Sandboxed — cannot access filesystem, shell, or other tenants.

No Database Access

This Function has no D1/KV bindings. Cannot read or write any persistent storage — by design.

Data Processed + Discarded

The `data` parameter is used to render the QR, then garbage-collected. Nothing about your data is retained.

nodejs_compat (No Native Modules)

Uses the `qrcode` npm package via Node.js Buffer polyfill. No native addons, no file I/O, no spawning processes.

Rate Limits

Free Tier Limits

60 requests/minute per IP

• Each response includes X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset headers

• When exceeded: HTTP 429 with Retry-After header (seconds until reset)

• Rate limit counter resets every 60 seconds

Error Codes

HTTP Status Codes

200OK — QR code generated successfully (PNG, JPG, SVG, or PDF).
204No Content — CORS preflight (OPTIONS) succeeded.
400Bad Request — missing or invalid `data` parameter.
413Payload Too Large — data exceeds max length (2K GET/10K POST) OR exceeds QR Code capacity (~2,953 bytes with L ECC).
429Too Many Requests — rate limit exceeded. Check Retry-After header.
500Internal Server Error — QR generation failed unexpectedly. Try again later.

Zero-Harm Privacy Guarantee

✓ No API key required — no email, no signup
✓ Client IP used only for rate-limiting, never stored
✓ No tracking cookies, no fingerprinting
✓ QR data processed and immediately discarded
✓ No request logging of `data` parameter contents
✓ HTTPS encrypted in transit
FAQ

Frequently Asked Questions

10 common questions about pricing, production use, rate limits, privacy, and what the API can do.

Is the QR code API really free?

Yes. No paid tier, no credit card, no API key. 60 requests/minute per IP is the only limit. Use it commercially, in production, at any scale within the rate limit.

Can I use the API in production?

Yes. It runs on Cloudflare Pages Functions (edge network with global availability). No uptime SLA, but the underlying infrastructure is Cloudflare's production-grade Workers platform.

Do I need to attribute or link back?

No attribution required. The API is GPL-licensed like the rest of QREndlessPro, but using the API endpoint itself does not require any link, badge, or credit in your app.

What happens if I exceed the rate limit?

You get HTTP 429 with a Retry-After header (seconds until reset). The counter resets every 60 seconds. Just back off and retry — no ban, no suspension, no account lockout (there are no accounts).

Do you log the data I encode in QR codes?

No. The `data` parameter is used to render the QR matrix and immediately garbage-collected. We do not log it, store it, or send it to any third party. The only thing we track is the request count per IP (for rate-limiting) — and that's an in-memory counter that resets every minute.

Can I get a higher rate limit?

The free tier is 60 req/min per IP. If you need more, options are: (1) proxy through your own backend with multiple IPs, (2) self-host the open-source Cloudflare Function from the GitHub repo, or (3) run the `qrcode` npm package in your own server. We have no paid tier.

Does the API support batch generation?

No. The public API exposes only single-QR generation. For batch (up to 5,000 QR codes per request with split-ZIP download), use the in-browser Bulk QR Generator at /bulk-qr/ — it runs entirely client-side.

Can I add my logo to the QR code via the API?

No. Logos, custom dot styles, frames, and gradients are too complex for query params. Use the in-browser QR Customizer at /qr-customize/ — it has 35+ templates and exports PNG/SVG/PDF.

Why does the API only expose QR generation, not scanning/decoding?

Scanning requires camera access (getUserMedia) — only available in browsers. Decoding requires image uploads — we keep user images browser-side (zero-harm privacy). Generation is the only tool that makes sense as an HTTP API.

Is the API indexed by Google?

Yes. The /api-docs/ page is a server-rendered Next.js page with FAQPage + SoftwareApplication JSON-LD schemas, comprehensive unique content (code samples, use cases, security matrix), and is included in the sitemap. Search "free QR code API" and this page is optimized to rank.

Comparison

How QREndlessPro Compares to Other QR APIs

Factual feature comparison. Other QR APIs typically require API keys, have restrictive free tiers, and disable CORS for browser use.

FeatureQREndlessPro
API Key Required None required
Free Tier Rate Limit60 req/min per IP
CORS (Browser Use) Yes
Response FormatsPNG + JPG + SVG + PDF
Custom Colors + ECC Yes
Account / Signup None required
QR Types Supported1,421+ across 38 categories
Open Source Yes
Hosting ModelEdge (Cloudflare Pages Function)
Pricing ModelFree forever (GPL)

Comparison is based on publicly documented features of major QR code API providers as of 2025. We do not name specific competitors to remain factual and AdSense-compliant.