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.

GETPOSThttps://apibox.io.vn/v1/qr

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ênVị tríKiểuBắt buộcMặc định
textbody|querystringcó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ự.
typebody|querystringkhôngtextLoại nội dung: text, wifi, vcard, email, sms, tel hoặc geo.
formatbody|querystringkhôngpngpng (ảnh), svg (ảnh) hoặc json (data, version, modules, ecc, svg, png_base64).
sizebody|querynumberkhông300Chiều rộng/cao ảnh tính bằng pixel, 64–2000.
marginbody|querynumberkhông4Lề trắng quanh mã, tính theo module (0–20).
colorbody|querystringkhông000000Màu mã: hex (1e90ff, #333) hoặc black, white, red, green, blue, gray.
backgroundbody|querystringkhôngffffffMàu nền (định dạng giống color).
eccbody|querystringkhôngMMức sửa lỗi: L, M, Q hoặc H.
ssidbody|querystringkhôngtype=wifi: tên mạng. Kèm password, encryption (WPA, WEP, nopass; mặc định WPA) và hidden (true/false).
first_namebody|querystringkhôngtype=vcard: các trường first_name, last_name, org, title, phone, email, website, address.
tobody|querystringkhôngtype=email: người nhận, kèm subject và body (tuỳ chọn).
phonebody|querystringkhôngtype=tel hoặc sms: số điện thoại (sms thêm message); vcard cũng dùng trường này.
latbody|querynumberkhôngtype=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 output

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

Bắt đầu với 1.000 request miễn phí mỗi tháng. Nhận API key miễn phí →