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"}'

關於 SnapQR

透過免費的 REST API 自動化建立 QR 碼與短連結:動態 QR 碼、批次產生、分析匯出、UTM 標記與自訂網域。無需 API 金鑰——數分鐘內即可開始整合。

常見問題

SnapQR 真的免費嗎?有什麼陷阱?

是的——建立 QR 碼、動態 QR 碼、短連結與分析都是 100% 免費,無需帳號。沒有浮水印,QR 碼也不會過期。

靜態與動態 QR 碼有什麼差別?

靜態 QR 碼將內容直接編碼在圖案中,永遠無法變更。動態 QR 碼編碼的是一個你可掌控的短重新導向網址,因此列印後仍能變更指向並追蹤每一次掃描。

我的 QR 碼會過期嗎?

不會。靜態 QR 碼在設計上永遠有效,動態 QR 碼也會免費保持啟用。

列印後要如何編輯 QR 碼?

建立動態 QR 碼時,你會取得一個私人管理網址。開啟它,輸入新的目的地並儲存——每一份已列印的副本會立即指向新的頁面。

我可以在 QR 碼加上標誌嗎?

可以。在設計面板上傳任何圖片——它會嵌入中央並搭配高容錯等級,使 QR 碼仍能可靠掃描。標誌完全在你的瀏覽器中處理。

我能取得哪些分析資料?

每個 QR 碼:總掃描次數、不重複訪客、隨時間變化的掃描、裝置類型、作業系統、瀏覽器、國家、城市與來源——並可匯出 CSV。絕不儲存 IP 位址。

我可以下載哪些檔案格式?

最高 4096 px 的 PNG(在 300 DPI 下約 13 英吋)以及可無限縮放的 SVG 向量檔——兩者皆適合專業列印。

我可以為短連結使用自己的網域嗎?

可以——將 CNAME 指向 snapqr.link 並透過我們的 API 註冊該網域。HTTPS 憑證會自動核發。