SnapQR API

Create and manage QR codes and short links programmatically. No API key, no signup — the token returned at creation is the credential for that link. Base URL: https://snapqr.link/api

Create a link / dynamic QR

POST /api/links
Content-Type: application/json

{
  "kind": "url",                  // url | appstore | vcard | page
  "target": "https://example.com/menu",
  "alias": "summer-menu",         // optional custom code
  "title": "Summer menu",         // optional
  "campaign": "summer",           // optional grouping tag
  "utm": {                        // optional, auto-appended on redirect
    "utm_source": "poster", "utm_medium": "qr", "utm_campaign": "summer2026"
  }
}

Response 201:

{
  "code": "summer-menu",
  "short_url": "https://snapqr.link/summer-menu",
  "qr_png": "https://snapqr.link/summer-menu/qr.png",
  "qr_svg": "https://snapqr.link/summer-menu/qr.svg",
  "manage_url": "https://snapqr.link/m/<token>",
  "token": "<token>"            // keep secret — grants edit + analytics access
}

For kind: "appstore" send ios, android, fallback URLs. For kind: "vcard" send firstName, lastName, org, jobTitle, phone, email, website. For kind: "page" send headline, description and a links array of {label, url}.

Manage & analytics

GET    /api/manage/{token}            # link details + totals
PUT    /api/manage/{token}            # update target/payload/utm/active/title
DELETE /api/manage/{token}            # delete link + analytics
GET    /api/manage/{token}/stats?days=30
GET    /api/manage/{token}/scans.csv  # raw scan export

/stats returns totals, unique visitors, a per-day series and top-10 breakdowns for device, OS, browser, country, city, referrer and QR-vs-link source.

Bulk creation

POST /api/bulk            # JSON array of link objects, or {"csv": "alias,target,title,campaign\n..."}
POST /api/bulk?format=csv  # same, responds with a CSV of created codes

Max 500 rows per request.

QR images

GET /api/qr?data=hello&size=1024&fg=%23000000&bg=%23ffffff&format=png|svg&ecl=M
GET /{code}/qr.png   GET /{code}/qr.svg    # QR for an existing short code

Custom domains

POST /api/domains  {"domain": "qr.yourbrand.com"}

Then point a CNAME for that hostname at snapqr.link. TLS certificates are issued automatically on first visit, and your short codes resolve on your own domain.

Limits

Fair-use rate limits apply per IP (60 links/hour, 10 bulk requests/hour, 300 QR images/hour). Destinations must be public http(s) URLs. Codes serving malware or phishing are removed.

Example: curl

curl -X POST https://snapqr.link/api/links \
  -H "Content-Type: application/json" \
  -d '{"kind":"url","target":"https://example.com","alias":"demo-123"}'

Về SnapQR

Tự động hóa việc tạo mã QR và liên kết rút gọn với một REST API miễn phí: mã động, tạo hàng loạt, xuất phân tích, gắn thẻ UTM và tên miền tùy chỉnh. Không cần khóa API — bắt đầu tích hợp chỉ trong vài phút.

Câu hỏi thường gặp

SnapQR có thực sự miễn phí không? Có gì bất lợi không?

Có — tạo mã QR, mã động, liên kết rút gọn và phân tích đều hoàn toàn miễn phí mà không cần tài khoản. Không có hình mờ và mã không hết hạn.

Sự khác biệt giữa mã QR tĩnh và mã QR động là gì?

Mã QR tĩnh mã hóa trực tiếp nội dung của bạn trong hoa văn và không bao giờ thay đổi được. Mã QR động mã hóa một URL chuyển hướng rút gọn do bạn kiểm soát, nên bạn có thể thay đổi nơi nó trỏ đến sau khi in và theo dõi từng lượt quét.

Mã QR của tôi có hết hạn không?

Không. Mã tĩnh về bản chất không bao giờ ngừng hoạt động, và mã động vẫn hoạt động miễn phí.

Làm thế nào để chỉnh sửa mã QR sau khi in?

Khi bạn tạo mã động, bạn nhận được một URL quản lý riêng tư. Mở nó, nhập đích đến mới và lưu — mọi bản in đều lập tức trỏ đến trang mới.

Tôi có thể thêm logo vào mã QR không?

Có. Tải lên bất kỳ hình ảnh nào trong bảng Thiết kế — nó được nhúng vào giữa với mức sửa lỗi cao để mã vẫn quét đáng tin cậy. Logo được xử lý hoàn toàn trong trình duyệt của bạn.

Tôi nhận được những phân tích nào?

Cho mỗi mã: tổng lượt quét, khách truy cập duy nhất, lượt quét theo thời gian, loại thiết bị, hệ điều hành, trình duyệt, quốc gia, thành phố và nguồn giới thiệu — cùng xuất CSV. Địa chỉ IP không bao giờ được lưu.

Tôi có thể tải về những định dạng tệp nào?

PNG lên đến 4096 px (khoảng 13 inch ở 300 DPI) và vector SVG có thể phóng to vô hạn — cả hai đều phù hợp cho in ấn chuyên nghiệp.

Tôi có thể dùng tên miền của riêng mình cho liên kết rút gọn không?

Có — trỏ một CNAME đến snapqr.link và đăng ký tên miền qua API của chúng tôi. Chứng chỉ HTTPS được cấp tự động.