Concepts
This page covers the building blocks of LinkSnap: what each object is, how they relate, and the lifecycle they go through. Read this before going deep on any specific feature — the rest of the docs assume you know what a short link is and how it differs from a QR code.
The data model
Workspace
├── ShortLinks
│ ├── Tags (many-to-many)
│ └── Clicks (telemetry)
├── QrCodes
│ ├── (optional) ShortLink reference
│ └── Scans (telemetry)
├── Domains (custom shortener domains)
├── ApiKeys
└── Members
Everything is scoped to a workspace. Cross-workspace queries don't exist — if you operate two brands, you'll have two workspaces and treat them as fully separate.
Workspace
A workspace is the top-level tenant boundary. Each workspace has:
- Its own short links and QR codes
- Its own tag vocabulary
- Its own custom domains
- Its own API keys
- Its own team members
- Its own plan (FREE, PRO, or BUSINESS) and billing relationship with Plugipay
Workspaces are isolated. Data never crosses between them.
You can be a member of multiple workspaces. Switching is done via the top-left workspace switcher in the dashboard.
ShortLink
A short link is the central object in LinkSnap. It maps a slug under one of your shortener domains to a destination URL.
A short link has:
- A slug (the path after the domain, e.g.
promo) - A destination URL (where visitors are redirected)
- An optional domain reference (defaults to
lksn.app) - An optional title and description
- A list of tags
- An optional expiry timestamp — after which the link returns a 410 Gone
- An optional maxClicks — after which the link returns a 410 Gone
- A status:
active,expired, orarchived - A
createdAtandlastClickAt
Identifier: short links use the slug as their natural ID within a domain. The API accepts both the database ID and the slug for lookups.
Slugs are scoped per domain.
lksn.app/promoandgo.acme.com/promoare two different links, even in the same workspace.
QrCode
A QR code is a generated PNG or SVG image that encodes a URL. It can wrap a LinkSnap short link (recommended — you get analytics) or any arbitrary URL.
A QR code has:
- A target URL (or a reference to a short link)
- A label for your own organization
- Styling: foreground color, background color, optional logo
- A format: PNG (default) or SVG (PRO and BUSINESS)
- A download token for time-bounded direct downloads
- Scan telemetry, same shape as link clicks
Identifier: qr_<id>.
When a QR code points at a short link, scans count both toward the link's click stats and the QR code's scan stats — they share the same redirect path.
Plan caveats:
- FREE: 2 QR codes per month, watermarked, PNG only.
- PRO: 500 QR codes per month, no watermark, optional logo, SVG export.
- BUSINESS: unlimited.
Tag
A tag is a free-form label attached to one or more short links. Tags are workspace-scoped.
Use cases:
- Group by campaign (
black-friday-2026) - Group by channel (
twitter,email-newsletter) - Group by status (
needs-review)
Tags are created implicitly when you add one to a link. The Tags page in the portal lists every tag with its link count and lets you rename or delete them.
Domain
A domain is a custom shortener domain you've connected to LinkSnap. Once verified, you can issue short links under it.
A domain has:
- A hostname (e.g.
go.acme.com) - A status:
pending,verifying,active,failed - A TLS state (managed by us via Let's Encrypt)
- A DNS verification record you add to your DNS provider
Domain provisioning is a four-step flow: add → verify DNS → await TLS → activate. See Portal → Custom domains for the full walkthrough.
Plan caveats:
- FREE: no custom domains (use the default
lksn.app). - PRO: one custom domain.
- BUSINESS: unlimited.
Click and scan telemetry
Every redirect — whether from a short link visit or a QR code scan — produces a telemetry record. Each record captures:
- Timestamp
- Country (resolved from IP, never the raw IP)
- Device type (
desktop,mobile,tablet) - Browser and OS family
- Referrer host (when present and non-empty)
- The short link or QR code that served the redirect
Telemetry powers the per-link stats page, the workspace dashboard, and the analytics API. We retain records indefinitely on PRO and BUSINESS; FREE retains 30 days.
ApiKey
An API key authenticates server-to-server calls. Keys are workspace-scoped.
A key has:
- A label (your name for it)
- A secret (
lk_live_xxx— shown once at creation) - A createdAt and lastUsedAt
Keys authenticate as a Bearer token in the Authorization header. See API → Authentication.
Why this matters
The model isn't ornamental — it shapes how you build integrations:
- Bulk operations dispatch on link IDs; you don't loop one-at-a-time.
- Tag filters are first-class query params on every list endpoint.
- Stats queries take a link slug or QR code ID and a date range — identical shape.
- Custom domain routing happens at the edge, so adding one doesn't require any code change on your side.
Once you have this mental model, the rest of the docs are linear — each portal page, each API endpoint, each SDK method maps cleanly to one of these objects.
Next
- Portal tour — the dashboard, feature by feature.
- API reference — every endpoint.
- SDKs — the same model in three languages.