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

QR ኮድ እና አጭር አገናኝ መፍጠርን በነጻ REST API በራስ-ሰር ያድርጉ፦ ተለዋዋጭ ኮዶች፣ የጅምላ ማመንጨት፣ የትንታኔ ወደ ውጭ መላክ፣ UTM መለያ እና ብጁ ጎራዎች። API ቁልፍ አያስፈልግም — በደቂቃዎች ውስጥ ማዋሃድ ይጀምሩ።

በተደጋጋሚ የሚጠየቁ ጥያቄዎች

SnapQR በእውነት ነጻ ነው? ወጥመዱ ምንድን ነው?

አዎ — QR ኮዶችን፣ ተለዋዋጭ ኮዶችን፣ አጫጭር አገናኞችን እና ትንታኔን መፍጠር 100% ነጻ ነው መለያ ሳያስፈልግ። ውሃ-ምልክት የለም እና ኮዶች አያበቁም።

በስታቲክ እና በተለዋዋጭ QR ኮድ መካከል ያለው ልዩነት ምንድን ነው?

ስታቲክ QR ኮድ ይዘትዎን በቀጥታ በጥለቱ ውስጥ ያስቀምጣል እና ፈጽሞ ሊቀየር አይችልም። ተለዋዋጭ QR ኮድ እርስዎ የሚቆጣጠሩትን አጭር የማዞሪያ URL ያስቀምጣል፣ ስለዚህ ከታተመ በኋላ የት እንደሚጠቁም መቀየር እና እያንዳንዱን ስካን መከታተል ይችላሉ።

የእኔ QR ኮዶች ያበቃሉ?

አይ። ስታቲክ ኮዶች በንድፍ ፈጽሞ መስራት አያቆሙም፣ ተለዋዋጭ ኮዶችም በነጻ ንቁ ሆነው ይቆያሉ።

ከታተመ በኋላ QR ኮድን እንዴት አስተካክላለሁ?

ተለዋዋጭ ኮድ ሲፈጥሩ የግል የአስተዳደር URL ያገኛሉ። ይክፈቱት፣ አዲሱን መድረሻ ያስገቡ እና ያስቀምጡ — እያንዳንዱ የታተመ ቅጂ ወዲያውኑ ወደ አዲሱ ገጽ ይጠቁማል።

አርማዬን ወደ QR ኮድ ማከል እችላለሁ?

አዎ። በዲዛይን ፓነል ውስጥ ማንኛውንም ምስል ይስቀሉ — በከፍተኛ የስህተት እርማት በመሃል ላይ ይካተታል ስለዚህ ኮዱ አሁንም በአስተማማኝ ሁኔታ ይቃኛል። አርማው ሙሉ በሙሉ በአሳሽዎ ውስጥ ይሰራል።

ምን ዓይነት ትንታኔ አገኛለሁ?

በእያንዳንዱ ኮድ፦ ጠቅላላ ስካኖች፣ ልዩ ጎብኚዎች፣ በጊዜ ሂደት ስካኖች፣ የመሣሪያ ዓይነት፣ ኦፕሬቲንግ ሲስተም፣ አሳሽ፣ አገር፣ ከተማ እና ማጣቀሻ — ከCSV ወደ ውጭ መላክ ጋር። የIP አድራሻዎች ፈጽሞ አይቀመጡም።

ምን ዓይነት የፋይል ቅርጸቶችን ማውረድ እችላለሁ?

PNG እስከ 4096 px (በ300 DPI ወደ 13 ኢንች ገደማ) እና ያለ ገደብ የሚመዘን የSVG ቬክተር — ሁለቱም ለሙያዊ ህትመት ተስማሚ ናቸው።

ለአጫጭር አገናኞች የራሴን ጎራ መጠቀም እችላለሁ?

አዎ — CNAME ወደ snapqr.link ያመልክቱ እና ጎራውን በእኛ API በኩል ይመዝግቡ። የHTTPS የምስክር ወረቀቶች በራስ-ሰር ይሰጣሉ።