📖 Overview
The QR Code Generator API produces high-quality QR codes from a wide variety of content types. It assembles standards-compliant payloads (vCard 3.0, iCalendar, WIFI:, tel: …) and then asks goQR.me to render the picture — so all configuration parameters from the official goQR.me spec are supported.
📝 Plain Text
Any short or long text — perfect for notes, messages or short URLs.
👤 Business vCard
vCard 3.0 with full personal, organisational and address fields.
📅 Events
iCalendar (vCalendar) events with start/end, location and description.
🌐 Websites
Plain URL — the QR opens the link when scanned.
📶 Wi-Fi
WIFI: payload with SSID, password, encryption type and hidden flag.
📞 Phone Numbers
tel: URI — scanners prompt the user to call the number.
create-qr-code API.
This service is provided free of charge by Foundata GmbH and supports size, ECC, colour,
background, margin, quiet zone, charset and format parameters — all of which you can pass
straight through to this endpoint.
🌐 Base URL
🔐 Authentication
No authentication required. The endpoint is public and CORS-enabled.
📡 Endpoints
POST / Generate a QR code
Generate a QR code with a payload of any supported content type.
Core Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
type |
string | Required | One of: text, url, vcard, event, wifi, phone |
format |
string | Optional | Response format — image (raw PNG) or json (default) |
Type-Specific Fields
| Type | Field | Description |
|---|---|---|
text | text | Plain text payload |
url | url | Website URL (auto-prefixed with https:// if missing) |
phone | phone | Phone number (any format) |
vcard |
first_name | First name (required with last name, or supply organization) |
last_name | Last name | |
organization | Company | |
title | Job title | |
work_email | Work email (single) | |
home_email | Personal email (single) | |
work_phone | Work phone (single) | |
home_phone | Home phone (single) | |
mobile | Mobile phone (single) | |
fax | Fax (single) | |
website | Personal / business website (single) | |
address | Street address (single) | |
city | City (single) | |
region | Region / state / province (single) | |
postcode | Postal / ZIP code (single) | |
country | Country (single) | |
note | Free-form note | |
event |
summary | Event title (required) |
start | Start date/time (YYYY-MM-DD or YYYY-MM-DD HH:MM, required) | |
end | End date/time (defaults to +1h after start) | |
location | Event location | |
description | Event description | |
wifi |
ssid | Network name (required) |
password | Wi-Fi password | |
encryption | WPA (default), WEP, or nopass | |
hidden | 1 for hidden network, 0 otherwise |
Appearance / goQR.me Parameters
All parameters documented at goQR.me are supported and forwarded as-is.
| Parameter | Default | Description |
|---|---|---|
size | 300 | Pixel size: [int]x[int] (50–1000) |
ecc | M | Error correction: L (7%), M (15%), Q (25%), H (30%) |
qzone | 2 | Quiet zone in modules (0–100, recommended ≥1) |
margin | 1 | Pixel margin around the QR (0–50) |
color | 0-0-0 | Foreground RGB — decimal R-G-B or hex (000000) |
bgcolor | 255-255-255 | Background RGB |
charset_source | UTF-8 | UTF-8 or ISO-8859-1 |
charset_target | UTF-8 | UTF-8 or ISO-8859-1 |
file_type | png | Renderer output format: png, svg, gif, jpeg or eps. (Legacy alias: gformat.) See goQR.me |
Dynamic vCard Fields (vCard type only)
For type=vcard you can supply multiple emails, phones, URLs and
structured addresses using array notation. Each entry is emitted as a
separate EMAIL;TYPE=…, TEL;TYPE=…, URL or
ADR;TYPE=… line in the vCard payload.
| Field Pattern | Sub-keys | Description |
|---|---|---|
emails[i][value] |
type: WORK / HOME / INTERNET |
One email per row. Multiple rows supported via index i = 0, 1, 2 … |
phones[i][value] |
type: CELL,VOICE / WORK,VOICE / HOME,VOICE / FAX / VOICE |
One phone per row. |
urls[i][value] |
label: optional display label (not embedded in vCard) |
One URL per row. |
addresses[i][…] |
type (WORK / HOME / OTHER), street, po_box, city, region, postcode, country |
One full address per row. |
Indexes can be sparse — the server normalises and
packs them densely before emitting the vCard. Legacy single fields
(work_email, home_phone, …) are still accepted
for backward compatibility and are merged with the dynamic arrays.
💡 Example Requests
1) Plain Text
2) Website URL
3) Business vCard
4) Calendar Event
5) Wi-Fi Network
6) Phone Number
7) Direct PNG Image with Custom Dimension
8) SVG Output with Custom Colours
9) Dynamic vCard with Multiple Emails / Phones / Addresses
📊 Response Format
JSON response (default)
Image response (format=image)
Returns the raw PNG bytes directly (Content-Type image/png).
⚠️ Error Codes
| HTTP | Description |
|---|---|
| 200 | Success |
| 400 | Bad Request — missing required field or unknown type |
| 500 | Internal Server Error — goQR.me upstream issue |
🔗 Reference
Full parameter reference lives at the official goQR.me documentation: goQR.me API ↗