Tạo mã QR API
Tạo mã QR dạng PNG hoặc SVG chỉ với một request GET: link, văn bản, WiFi, danh thiếp vCard, e-mail, SMS, số điện thoại, toạ độ. Tuỳ chỉnh màu, kích thước.
API tạo mã QR biến bất kỳ đoạn văn bản hay đường link nào thành ảnh QR. Gọi GET /v1/qr?text=... là nhận ngay file PNG (hoặc SVG nếu thêm format=svg), có thể dùng thẳng trong thẻ <img>, e-mail hay mẫu in. Với format=json, bạn nhận về dữ liệu đã mã hoá, phiên bản QR, số module, mã SVG và ảnh PNG dạng base64 trong cùng một phản hồi JSON.
Ngoài văn bản thường, tham số type giúp tạo đúng định dạng mà camera điện thoại nhận diện được: wifi (ssid, password, encryption, hidden), vcard (first_name, last_name, org, title, phone, email, website, address), email (to, subject, body), sms (phone, message), tel (phone) và geo (lat, lng). Bạn không cần nhớ cú pháp WIFI:T:WPA;S:...;; hay tự xử lý ký tự đặc biệt.
Bạn có thể chỉnh kích thước (64–2000 px, mặc định 300), lề trắng (0–20 module, mặc định 4), màu mã và màu nền (mã hex như 1e90ff hoặc tên màu cơ bản) cùng mức sửa lỗi ecc (L, M, Q, H; mặc định M). Ảnh PNG dùng số pixel nguyên cho mỗi module nên có thể nhỏ hơn kích thước yêu cầu vài pixel để luôn sắc nét. Dữ liệu mã hoá tối đa khoảng 2.900 ký tự.
Tham số
| Tên | Vị trí | Kiểu | Bắt buộc | Mặc định | |
|---|---|---|---|---|---|
text | body|query | string | có | Văn bản hoặc link cần mã hoá (tên khác: data, url). Bắt buộc khi type là text (mặc định). Tối đa ~2.900 ký tự. | |
type | body|query | string | không | text | Loại nội dung: text, wifi, vcard, email, sms, tel hoặc geo. |
format | body|query | string | không | png | png (ảnh), svg (ảnh) hoặc json (data, version, modules, ecc, svg, png_base64). |
size | body|query | number | không | 300 | Chiều rộng/cao ảnh tính bằng pixel, 64–2000. |
margin | body|query | number | không | 4 | Lề trắng quanh mã, tính theo module (0–20). |
color | body|query | string | không | 000000 | Màu mã: hex (1e90ff, #333) hoặc black, white, red, green, blue, gray. |
background | body|query | string | không | ffffff | Màu nền (định dạng giống color). |
ecc | body|query | string | không | M | Mức sửa lỗi: L, M, Q hoặc H. |
ssid | body|query | string | không | type=wifi: tên mạng. Kèm password, encryption (WPA, WEP, nopass; mặc định WPA) và hidden (true/false). | |
first_name | body|query | string | không | type=vcard: các trường first_name, last_name, org, title, phone, email, website, address. | |
to | body|query | string | không | type=email: người nhận, kèm subject và body (tuỳ chọn). | |
phone | body|query | string | không | type=tel hoặc sms: số điện thoại (sms thêm message); vcard cũng dùng trường này. | |
lat | body|query | number | không | type=geo: vĩ độ, kèm lng cho kinh độ. |
Ví dụ
curl "https://apibox.io.vn/v1/qr?text=https://apibox.io.vn&size=300&color=1e3a8a" \
-H "Authorization: Bearer YOUR_API_KEY" \
-o outputconst res = await fetch('https://apibox.io.vn/v1/qr?text=https://apibox.io.vn&size=300&color=1e3a8a', {
method: 'GET',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
},
});
const blob = await res.blob();import requests
res = requests.get(
"https://apibox.io.vn/v1/qr?text=https://apibox.io.vn&size=300&color=1e3a8a",
headers={"Authorization": "Bearer YOUR_API_KEY"},
timeout=30,
)
open("output", "wb").write(res.content)<?php
$ch = curl_init('https://apibox.io.vn/v1/qr?text=https://apibox.io.vn&size=300&color=1e3a8a');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer YOUR_API_KEY'],
]);
$response = curl_exec($ch);
file_put_contents('output', $response);Kết quả trả về
binary image/png (QR code, 297×297 px)
Ứng dụng
- In mã QR lên hoá đơn, vé sự kiện, tem nhãn sản phẩm
- Cho khách quán cà phê, khách sạn quét mã để vào WiFi
- Gắn QR danh thiếp vCard lên name card và chữ ký e-mail
- Tạo nhanh QR cho link thanh toán, link theo dõi đơn hàng trong ứng dụng
Hỏi đáp
Có thể dùng URL của API làm src cho thẻ <img> không?
Được. Request GET trả về chính file ảnh (image/png hoặc image/svg+xml) kèm header cache 1 ngày. Tuy nhiên request cần API key, nên với trang công khai bạn nên tạo ảnh ở phía server rồi lưu lại.
Làm sao tạo mã QR WiFi?
Gọi /v1/qr?type=wifi&ssid=TenWiFi&password=matkhau123. Tuỳ chọn thêm: encryption=WPA|WEP|nopass (mặc định WPA) và hidden=true nếu mạng bị ẩn. API tự xử lý các ký tự đặc biệt trong tên mạng và mật khẩu.
Nên chọn mức sửa lỗi (ECC) nào?
M (khôi phục ~15%) là mặc định, phù hợp đa số trường hợp. Chọn Q hoặc H (25–30%) khi in mã nhỏ, dễ bị bẩn hoặc muốn chèn logo vào giữa; chọn L để mã gọn nhất khi link dài.
API liên quan
Tạo mã vạch
Tạo mã vạch Code 128 cho tem nhãn, mã SKU, vận đơn chỉ với một request. Xuất SVG kèm dòng chữ hoặc PNG, tuỳ chỉnh chiều cao, độ rộng và màu sắc.
▭Ảnh placeholder
Lấy ảnh giữ chỗ đúng kích thước cho mockup và test: /v1/placeholder/600x400.png. Xuất SVG với chữ và màu tuỳ chỉnh, hoặc PNG một màu.
VQRTạo mã VietQR
Tạo mã QR chuyển khoản VietQR / NAPAS 247 với ngân hàng, số tài khoản, số tiền và nội dung chuyển khoản dạng PNG, SVG hoặc payload JSON. Giải mã VietQR có sẵn.