Help Center

How can we help you?

Find answers, learn best practices, and get the most out of Lnki.io.

Getting Started

Set up your account and shorten your first link in a few minutes.

What is Lnki.io and what can I do with it?

Lnki.io turns long URLs into short, branded links and shows you who clicks them. In one workspace you can:

How do I create an account?

Go to Sign up and either continue with Google or GitHub, or enter your full name, email and a password of at least 8 characters.

You are signed in straight away and get a personal workspace on a 14-day trial. You do not enter a card to start.

If a teammate invited you, open the link in the invitation email instead. You will join their workspace rather than starting a new one.

Do I need to verify my email address?

Your welcome email contains a confirmation link that is valid for 3 days. Nothing in the product is locked while your address is unconfirmed, but confirming it makes sure password resets and alerts reach you.

Lost the email? Open Settings › Profile and use send the link again under your email address. You can request it up to 3 times an hour.

Accounts created with Google or GitHub are verified automatically.

How does the 14-day trial work?

Every new workspace starts on a 14-day trial with no card required. During the trial you can have up to 5 active links and 1 custom domain, and import up to 500 rows at a time. Links created on the trial expire after 30 days unless you pick a different expiry.

The workspace owner gets a reminder from 3 days before the trial ends. When it ends:

  • Your existing short links and QR codes keep redirecting.
  • Creating new links, QR codes and imports is paused until you choose a plan in Settings › Billing.

See what each plan includes.

What is a workspace?

A workspace holds your links, QR codes, domains, analytics and billing. You get one when you sign up, and everything you create belongs to it rather than to you personally, so teammates you invite see the same links.

Each person can own one workspace and can be a member of others.

QR Codes

Create styled QR codes for print and screens.

How do I create a QR code?

  1. Open QR Codes › Create.
  2. Choose Paste long URL to shorten a new destination, or Existing link to use a link you already have.
  3. Style it: colours, pattern, logo and label.
  4. Press Create, then download it.

Each short link can have one QR code.

Can I change where a QR code goes after printing it?

Yes. A saved QR code always opens its short link, not the destination directly, so you only need to change the link's destination. The printed code stays valid.

Save before you download. When you paste a long URL, the preview points straight at that URL until you press Create. Download the file after creating the code so it carries the short link.

What can I customise on a QR code?

  • Colours for the code, the corner eyes and the background.
  • Shape: 11 patterns (square, rounded, dots, classy, diamond, star and more), 5 eye styles and 3 corner styles.
  • Logo: a JPG, PNG or SVG up to 2 MB, sized from 12% to 28% of the code.
  • Label: a caption of up to 60 characters in three styles, with your choice of font, size and colours.
  • Margin and error correction. Error correction switches to High automatically when you add a logo so the code stays scannable.

On a custom domain you can save these as the domain's QR defaults.

Which formats and sizes can I download?

PNG, SVG and PDF, plus Copy QR code image for pasting into a document. In the builder, PNG and PDF use the size you pick: 256, 500 or 1024 px. Downloads from the QR Codes list are 1024 px.

For print, use SVG. It is a vector file and stays sharp at any size.

How are QR scans counted?

A scan is a counted click on the QR code's short link. If you also share that short link as text, those clicks are included too, so use a separate link when you want to measure print on its own.

Bots, link previews and double-taps are filtered out the same way as for any click.

What happens when I archive or delete a QR code?

  • Archive archives the short link behind it, so the code stops working until you restore it.
  • Delete removes only the QR design. The short link keeps working.
  • Permanently deleting a link also removes its QR code.

Is there a limit on QR codes?

There is no separate QR code limit. A QR code made from a new URL creates a short link, and that link counts toward your plan's link allowance. You need a running trial or a paid plan to create one.

My QR code will not scan. What should I check?

  • Contrast: use a dark code on a light background.
  • Margin: keep some quiet space around the code; do not crop it tightly.
  • Logo size: a smaller logo leaves more of the code readable.
  • Print size: very small prints are hard for older cameras. Test the final size before a print run.
  • The link itself: make sure it is not archived or expired.

Analytics & UTM

Understand who clicks your links and which campaigns bring them.

What do the analytics reports show?

Analytics covers the whole workspace in five tabs:

  • Overview: clicks, unique visitors, filtered traffic, active links, the trend against the previous period, your best time of day, and top, fastest-growing and gone-quiet links.
  • Traffic: clicks per day, the busiest day, hour and weekday, and a weekday-by-hour heatmap.
  • Audience: countries, languages, devices, operating systems, browsers and in-app browsers such as Instagram or WhatsApp.
  • Sources: social, messaging, email, search, other websites and direct, plus the top referring sites.
  • Links: every link with its clicks, change, share of traffic, lifecycle and destination health.

Every plan gets the same reports, and every workspace member can read them.

How are clicks and unique visitors counted?

A click is a real person opening your short link. Automated traffic is filtered out, and a second tap from the same visitor on the same link within 10 seconds counts once.

Unique visitors are counted per day and added up across the period. Someone who clicks on Monday and again on Wednesday counts as two, so treat the figure as an estimate rather than a head count.

Why are some clicks shown as “Filtered out”?

Not every request to a short link is a person. These are kept out of your click counts and listed separately so you can see how much there was:

  • Link previews: apps fetching the page to show a preview card.
  • Bots and crawlers: search engines, uptime monitors, mail security scanners and scripts.
  • Browser prefetch: a browser loading the link before anyone taps it.
  • Link checkers: tools that only ask whether the link exists.
  • Double-taps: a repeat within 10 seconds.

Filtered requests are still redirected normally. They are just not counted.

How quickly do new clicks appear?

Clicks are recorded in the background as they happen. While you are viewing a report, today's figures refresh at most every 30 seconds, and the page shows when it was last updated.

Which date ranges can I report on?

Last 7, 30 or 90 days, or a custom range of up to 366 days. Each report is compared with the period of the same length just before it. Trends are shown per day up to 62 days and per week beyond that.

Days and hours in the reports follow UTC.

What do you store about the people who click my links?

For each counted click we keep the time, country, device type, operating system, browser, language, the referring site's host name and any UTM values.

  • IP addresses are not stored with clicks. The IP is only used at the moment of the click to work out a visitor token.
  • That token changes every day, so it cannot follow a person from one day to the next.
  • Location stops at country level. No city or region is recorded.
  • Only the referring site's host is kept, never the full referring URL.

See the Privacy Policy for the full picture.

How long is click data kept?

Individual click records are kept for 400 days. This is the same on every plan.

How do I add UTM parameters to my links?

  1. Open Campaigns & UTM and go to Builder.
  2. Enter the destination and pick a campaign.
  3. Select one or more channels, for example Email newsletter and LinkedIn.
  4. Create. You get one short link per channel, each with the right utm_source, utm_medium and utm_campaign written into its destination.

You can also pick a campaign on the Custom tab when creating a single link. UTM values are tidied automatically: lowercased, with spaces turned into underscores.

What are campaigns and channels?

A campaign is what you are promoting, such as a spring sale. It sets utm_campaign and can have dates, a colour and a status.

A channel is where you share it: a named source and medium pair like newsletter / email. Every workspace starts with 11 common channels, including Facebook, Instagram, LinkedIn, Google Ads, SMS and Print & QR, and you can add your own.

The Campaigns & UTM page then reports clicks by campaign, channel and parameter. Deleting a campaign or channel leaves its links and their UTMs untouched.

Can UTM parameters be added automatically?

Yes. In Settings › UTM, an admin can set default values and switch on auto-append. It is off by default. When on, new links get the defaults for any UTM key the destination does not already carry, so parameters you typed yourself are never overwritten.

The UTM settings panel is available on paid plans. Each custom domain can also have its own UTM defaults.

Custom Domains

Use your own domain for branded short links.

How do I connect a custom domain?

  1. Open Domains and choose Add domain. You need the Admin or Owner role.
  2. Enter the domain, for example go.yourbrand.com.
  3. At your DNS provider, add one of the records shown.
  4. Back in Lnki.io, press Check DNS now, or wait for the automatic check.

Once the domain is verified you can pick it when creating links, QR codes and rotators. A domain can be connected to only one workspace.

Which DNS records do I need to add?

The domain's page shows three options with the exact values to copy. Any one of them is enough to verify the domain:

RecordUse it forName / HostPoints to
CNAME (recommended)Subdomains such as go.yourbrand.comThe subdomain part, e.g. gocname.lnki.io
A recordRoot domains such as yourbrand.com@The IP address shown on the page
TXTProving ownership@lnki-verify=… (your token)

Always copy the values from your own domain's page, since the verification token is unique to you.

How long does domain verification take?

Usually a few minutes after you save the record, though DNS changes can occasionally take up to 48 hours to spread. Lnki.io re-checks pending domains every 15 minutes, and you can press Check DNS now at any time.

A domain that is still unverified after 24 hours triggers a reminder in the bell. If yours is stuck, check for a typo in the record, make sure there is no conflicting record on the same name, and confirm you edited the DNS zone that is actually live for the domain.

Do links on my domain use HTTPS?

Yes. HTTPS is set up for a domain once its DNS is verified, and Force HTTPS is on by default, so a visitor who types http:// is sent to the secure address first. You can see the certificate's issuer and expiry under View SSL certificate.

Should I use a root domain or a subdomain?

A subdomain such as go.yourbrand.com or links.yourbrand.com is the simplest choice. It needs a single CNAME record and leaves your main website untouched.

From Domains you can also use Add subdomain to create one under a domain you have already connected, and label what it is for. Subdomains count toward your plan's domain limit.

What is the primary domain?

It is the domain new links start on. Each workspace has one, and it can be lnki.io or any verified custom domain. Change it from the domain's settings page. You can still choose a different domain for an individual link.

How many custom domains can I connect?

PlanCustom domains
Trial1
Starter3
ProUnlimited
BusinessUnlimited

The built-in lnki.io domain is always available and does not count.

What are the Fallback URL and Root redirect settings?

Both are in a domain's settings under Redirects & security:

  • Fallback URL: where visitors go when a short link on this domain does not exist, has expired or is paused. Leave it blank and they get a plain 404.
  • Root redirect: where the bare domain itself, go.yourbrand.com with nothing after it, sends visitors.

Each must be a full http or https URL and cannot point back at the same domain.

Can each domain have its own defaults?

Yes. Every custom domain has a settings page where you can set:

  • Short links: generated code length (4 to 32), characters, an optional prefix, default expiration, default folder and tags.
  • QR codes: default size, colours, pattern, eye and corner styles, and logo.
  • Campaigns & UTM: default campaign, source and medium, and whether to append them automatically.
  • Link Rotator: the default rotation strategy.

The built-in lnki.io domain has no settings of its own.

How do I remove a custom domain?

Open the domain's menu in Domains and choose Remove.

  • If it is your primary domain, make another domain primary first.
  • If it has links, you are asked to reassign them to another domain. They keep their back-halves and start answering on the new domain.

Short URLs on the removed domain stop working, so update anything you have printed or shared with the old address.

Why was my custom domain disabled?

When a paid subscription ends, the workspace returns to the trial allowance of one custom domain. The oldest domain is kept. Any others are marked Disabled: plan limit exceeded, and the primary domain falls back to lnki.io if needed.

To use them again, choose a plan with room for them in Settings › Billing. If a domain stays disabled afterwards, contact support.

Account & Team

Manage your sign-in, your teammates and your data.

I forgot my password. How do I reset it?

  1. Open Forgot password and enter your email address.
  2. Open the link in the email within 1 hour. It works once.
  3. Choose a new password of at least 8 characters.

Resetting signs you out on every device. If no email arrives, check your spam folder and that you used the address you signed up with. For your protection the page shows the same message whether or not an account exists, and sends at most 3 reset emails an hour to one address.

How do I change my password?

Go to Settings › Security and choose Change password. You need your current password. Changing it signs out your other devices and sends you a confirmation email.

If you signed up with Google or GitHub you never chose a password. Use Forgot password once to set one.

Can I sign in with Google or GitHub?

Yes, from the login and signup pages. If the Google or GitHub email matches an existing Lnki.io account, you are signed in to that account and the provider is linked to it.

Manage linked providers in Settings › Profile with Connect and Disconnect. You cannot disconnect your only way of signing in, so set a password first if you want to remove a provider.

How do I change my email address?

Update it in Settings › Profile. The new address must not belong to another account. We send a confirmation link to the new address and a notice to the old one. Verification and unsubscribe links from earlier emails stop working.

Does Lnki.io support two-factor authentication?

Not yet. For now you can protect your account by:

  • using a long, unique password;
  • keeping Login Email Alerts on in Settings › Security, so you hear about sign-ins from a browser you have not used before;
  • reviewing your active sessions from time to time;
  • signing in with Google or GitHub, where you can use the two-step verification those accounts offer.

How do I see where I am signed in?

Settings › Security lists every device that is signed in, with its IP address and when it was last active. Sign out any single session, or use Sign out other sessions to keep only the one you are using.

The same page shows your recent sign-in history. Sign-ins are kept for 180 days.

How do I invite teammates?

Open Settings › Team, enter an email address, choose a role and send. Inviting needs the Admin or Owner role and a plan with team seats:

PlanSeats (including the owner)
Trial and Starter1
Pro3
Business10
  • Pending invitations count as used seats.
  • An invitation is valid for 7 days. You can resend it, which restarts the 7 days, or revoke it.
  • The person must sign in or sign up with the same email address the invitation was sent to.

What can each role do?

RoleCan do
ViewerSee links, QR codes, folders and analytics. Manage their own profile, password and notifications.
EditorEverything a Viewer can, plus create, edit and archive links, QR codes, folders, tags, rotators and imports.
AdminEverything an Editor can, plus team members, custom domains, API keys, webhooks, workspace settings and data exports.
OwnerEverything, including billing and transferring ownership. Each workspace has one owner.

Admins can change a member's role or remove them from Settings › Team. The owner's role cannot be changed there.

How do I transfer ownership of a workspace?

Only the owner can do this. In Settings › Team, open the menu next to an active Admin and choose Make owner, then confirm by typing the workspace name. The new owner must not already own a workspace of their own.

After the transfer you become an Admin. Saved cards are removed from the workspace, so the new owner needs to add a payment method before the next renewal. Both of you get an email.

How do I control which emails I get?

Everything is in Settings › Notifications:

  • An overall level: All Emails, Important Only or None.
  • A switch and a frequency (instant, daily or weekly digest) for each category: analytics summary, high-click alerts, broken-link alerts, team, billing, security and product updates.
  • Quiet hours, 10 PM to 7 AM by default, which hold back non-urgent email until morning.

Every email also has an unsubscribe link in its footer. A few essential messages are always sent: password resets and changes, email changes, export results, payment failures and trial reminders.

What does the notification bell show?

The bell is your inbox for things that need attention in the current workspace, and it updates live. Examples:

  • a custom domain that is still unverified, or has been disabled;
  • a webhook paused after repeated failures, or a failed payment;
  • links about to expire, or the link limit getting close;
  • a broken destination, a traffic spike or drop;
  • a finished import, or a teammate joining.

Items clear themselves when the underlying problem is fixed. Most are also emailed after a short delay unless you have already read them in the app.

How do I export my data?

Owners and admins can request an export from Settings › Data & Privacy. Choose All data, Links & clicks, Account data or Team data.

The export is prepared in the background as a compressed archive of CSV and JSON files: your links, daily click totals per link, team, account details and, for All data, QR codes and domains. You get an email when it is ready. The download stays available for 7 days, only to the person who requested it, and each type can be requested once every 24 hours.

How do I delete my account?

Account deletion is handled by our support team for now. Contact us from the email address on your account. Before we can delete it:

  • cancel any paid subscription;
  • if you own a workspace with other members, remove them or transfer ownership.

Deletion is permanent. It removes the workspace you own together with its links, click history, QR codes, domains, webhooks and API keys, so export your data first if you want a copy.

API & Webhooks

Create and manage links from your own code, and get notified when things happen.

How do I get an API key?

API keys are available on the Business plan. An Admin or Owner can create one on the API Keys page.

The full key, which starts with lnki_live_, is shown once when you create it. We store only a fingerprint of it, so copy it somewhere safe straight away. If you lose it, regenerate the key.

The key itself is not sent with each request. You exchange it for a short-lived access token.

How do I authenticate and what can the API do?

Exchange your key for an access token at POST /api/v1/oauth/token, then send that token in the Authorization header. A token lasts one hour and comes with a refresh token for getting the next one:

Authorization: Bearer lnki_at_…

The API manages links, QR codes (/api/v1/qr_codes) and bulk imports (/api/v1/imports). For links, under /api/v1/links:

  • GET /api/v1/links lists links.
  • POST /api/v1/links creates one. Send destination_url, plus optional fields such as slug, domain, title, tag_ids, folder_id and expiry_days.
  • GET, PATCH and DELETE /api/v1/links/:id read, update and archive a link.

A token has full read and write access to its workspace's links, QR codes and imports. A missing, expired or invalid token gets 401, and so does a raw lnki_live_ key sent in place of a token. See the documentation for full examples.

What are the API rate limits?

Each API key can make up to 5,000 requests per minute, shared by all the access tokens issued from it. Creating links is additionally limited to 60 per minute per workspace, and imports to 10 per minute.

Every response tells you where you stand in the X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset headers. Over the limit you get 429 Too Many Requests with a Retry-After header that says how many seconds to wait. Read it and pause, rather than retrying immediately.

How do pagination and errors work?

List requests take page and per_page. For links, per_page can be 5, 10, 25 or 50; anything else is treated as 10. The response's meta object carries the total and the current page.

Errors come back as JSON with a readable message and a stable code, { "error": "…", "code": "…" }. Validation failures add an errors list.

StatusMeaning
400The request body could not be read
401Missing, invalid or expired access token
403Not allowed on your plan
404No such link, QR code or import
422The request was not valid
429Rate limit reached

How do I rotate or revoke an API key?

On the API Keys page, Regenerate issues a new key under the same name and stops the old one immediately. Revoke stops a key for good. Either one also ends every access and refresh token issued from that key.

The page shows each key's requests this month, and you are reminded about keys that have gone unused for 90 days. Treat a key like a password: keep it on your server, never in browser code or a public repository.

How do I set up a webhook?

  1. Open Webhooks (Admin or Owner) and add an endpoint.
  2. Enter a public HTTPS URL. Addresses on private networks or localhost are not accepted.
  3. Choose the events you want.
  4. Copy the signing secret, which starts with whsec_. It is shown only once.
  5. Use Test webhook to send a sample webhook.test event.

Webhooks are a paid-plan feature. You can pause and resume an endpoint at any time.

Which webhook events can I subscribe to?

EventSent when
link.createdA link is created
link.updatedA link is changed
link.deletedA link is archived
link.clickedA link gets a counted click
domain.connectedA custom domain is verified
api_key.createdAn API key is created

Clicks are grouped so a busy link does not flood your endpoint: up to 50 clicks, or 5 seconds' worth, arrive together as one link.clicked.batch event.

Every payload has the same envelope: event, event_id, created_at and data.

How do I verify that a webhook came from Lnki.io?

Each request carries an X-Lnki-Signature header of the form sha256=<hex>. It is the HMAC-SHA256 of the raw request body, keyed with your endpoint's signing secret. Compute the same value and compare:

const crypto = require("crypto")

                  function isFromLnki(rawBody, header, secret) {
                    const expected = "sha256=" + crypto.createHmac("sha256", secret).update(rawBody).digest("hex")
                    return header.length === expected.length &&
                      crypto.timingSafeEqual(Buffer.from(header), Buffer.from(expected))
                  }

Use the body exactly as received, before any JSON parsing. To ignore repeats, remember the event_id from the payload: retries of the same delivery also share one X-Lnki-Delivery-Key header.

What happens when my endpoint fails or is slow?

Reply with any 2xx status within 10 seconds to acknowledge a delivery. If your endpoint times out, cannot be reached, or returns 429 or a 5xx, we try again: up to 5 attempts in total, waiting 30 seconds, then 1, 2 and 4 minutes. Other 4xx responses are not retried.

After 5 deliveries in a row have failed, the webhook is paused and admins are notified. Fix the endpoint and press Resume.

View deliveries shows each attempt with its status, response code and duration for the last 30 days.

Billing & Plans

Understand your plan, your invoices and how changes take effect.

What does each plan include?

Every workspace starts on a 14-day trial. The paid plans are Starter, Pro and Business:

TrialStarterProBusiness
Active links5UnlimitedUnlimitedUnlimited
Custom domains13UnlimitedUnlimited
Custom back-halvesNoYesYesYes
Team seats11310
Rows per import5002,0005,00010,000
WebhooksNo510Unlimited
API keysNoNoNoYes

Analytics reports are the same on every plan. Current prices are shown in Settings › Billing when you choose a plan.

How do I upgrade or change my plan?

The workspace owner opens Settings › Billing, chooses Change plan and picks a plan. Payment is completed on a secure Stripe checkout page, and the new plan is active as soon as the payment goes through.

Only the owner can see and change billing.

Which payment methods can I use?

Credit and debit cards. In Settings › Billing you can add a card, choose the default and remove old ones, and Manage billing opens the Stripe customer portal.

Payments are processed by Stripe. Your card details go straight to Stripe and are not stored on Lnki.io servers.

Where do I find my invoices?

Settings › Billing lists your invoices with date, amount, status and the card used. Each has a PDF to download, and you can filter the list by status and period.

What happens if a payment fails?

The owner gets an urgent bell notification and an email with a link to update the payment method. It clears as soon as a payment succeeds, and a receipt is emailed.

To help you avoid this, we also email the owner when the default card is due to expire this month or next.

How do I cancel my subscription?

The owner can cancel from Settings › Billing with Cancel Subscription. Your plan stays active until the end of the period you have already paid for. We do not offer partial refunds for unused time.

When the period ends:

  • existing short links and QR codes keep redirecting, and nothing is deleted;
  • creating new links, QR codes and imports is paused until you choose a plan again;
  • custom domains beyond the trial allowance of one are disabled.

My trial has ended. What now?

Nothing you made is lost. Your links and QR codes keep working and your analytics stay available. To create new links, QR codes or imports, the owner needs to choose a plan in Settings › Billing.

What is the monthly click figure on my plan?

Each plan has a monthly click figure, shown as a usage meter in Settings › Billing: 1,000 on the trial, 10,000 on Starter, 100,000 on Pro and 1,000,000 on Business. It counts real clicks in the current calendar month, after bots and previews are filtered out.

Your links are not switched off if you pass it. If you are regularly above your plan's figure, consider moving up a plan.

No results

Try fewer or different words, or pick a topic. If the answer is not here, ask us and we will add it.

Contact support

New to Lnki.io?

Follow the getting started guide and create your first branded short link in under 5 minutes.

Start the guide