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 코드와 단축 링크 생성을 자동화하세요: 동적 코드, 대량 생성, 분석 내보내기, UTM 태깅, 맞춤 도메인. API 키가 필요 없어 몇 분 만에 연동을 시작할 수 있습니다.

자주 묻는 질문

SnapQR은 정말 무료인가요? 숨은 조건이 있나요?

네 — QR 코드, 동적 코드, 단축 링크, 분석 생성이 계정 없이 100% 무료입니다. 워터마크가 없고 코드는 만료되지 않습니다.

정적 QR 코드와 동적 QR 코드의 차이는 무엇인가요?

정적 QR 코드는 콘텐츠를 패턴에 직접 인코딩하여 절대 변경할 수 없습니다. 동적 QR 코드는 사용자가 관리하는 단축 리디렉션 URL을 인코딩하므로, 인쇄 후에도 가리키는 대상을 변경하고 모든 스캔을 추적할 수 있습니다.

제 QR 코드는 만료되나요?

아니요. 정적 코드는 설계상 절대 작동을 멈추지 않으며, 동적 코드도 무료로 계속 활성 상태를 유지합니다.

인쇄 후 QR 코드를 어떻게 수정하나요?

동적 코드를 만들면 전용 관리 URL을 받게 됩니다. 이를 열어 새 대상을 입력하고 저장하면 — 인쇄된 모든 사본이 즉시 새 페이지를 가리킵니다.

QR 코드에 제 로고를 추가할 수 있나요?

네. 디자인 패널에서 아무 이미지나 업로드하세요 — 높은 오류 정정과 함께 중앙에 삽입되어 코드가 안정적으로 스캔됩니다. 로고는 전적으로 브라우저에서 처리됩니다.

어떤 분석을 제공받나요?

코드별로 총 스캔 수, 순 방문자, 시간대별 스캔, 기기 종류, 운영 체제, 브라우저, 국가, 도시, 리퍼러 — CSV 내보내기 포함. IP 주소는 절대 저장되지 않습니다.

어떤 파일 형식으로 다운로드할 수 있나요?

최대 4096 px의 PNG(300 DPI에서 약 13인치)와 무한 확장 가능한 SVG 벡터 — 둘 다 전문 인쇄에 적합합니다.

단축 링크에 제 도메인을 사용할 수 있나요?

네 — CNAME을 snapqr.link로 지정하고 저희 API를 통해 도메인을 등록하세요. HTTPS 인증서는 자동으로 발급됩니다.