Link management

Every basic, done precisely.

Custom paths, editable destinations, redirect codes, expiring links via the API — the table stakes. The routing engine underneath is what's different; the basics just work.

Control the destination

Change where it goes. Never the link.

Every edit — a new destination, a different status code, a renamed path — reaches the routing layer the moment you save. Not a nightly sync: the same Redis engine that answers every request sees your change immediately.

The destination of go.example.com/summer changes from example.com/summer-2025 to example.com/summer-2026 and is live immediately.

Lifetime

Decide how long a link lives.

Account links never expire unless you say so — and an expiry ends a link cleanly, with a 410, never a silent 404.

Example of link expiry, set through the API or MCP: go.example.com/earlybird points at example.com/tickets with a 302 status code and expires on 30 September 2026. After that moment the link answers 410 Gone instead of redirecting, so nothing fails silently.

Link expiry

Set an expiry when you create or update a link through the API or your AI agent. After it, the link answers 410 Gone — an honest end state that browsers, crawlers and humans all understand — instead of quietly 404ing or, worse, still redirecting to a sale that ended.

Account links never expire unless you say so, on any plan. Expiry dates are set through the API or MCP on every plan; the dashboard doesn’t show them — see the plan matrix.

Organized at scale

Five hundred links, still one screen.

Search by path, filter by domain or response type, and drag links into the order they match in — with the same instant sync a single edit gets.

Example of the link list filtered to go.example.com: four links in matching order — /launch, /keynote, /promo and /deck — each with its destination, status code and position.

Search & filter
Find a link by its path, narrow the list to one domain, or show only redirects — or only plain responses — then sort by order, path or creation date.
Matching order
Links on one domain match top to bottom. Drag one into place and the routing layer follows the new order straight away.

Example CSV import file with three columns — slug, destination, status — and three rows: launch, keynote and promo. Bulk import via CSV is on the roadmap.

Bulk import
One row per link — slug, destination, status. Collisions get flagged for review, never silently renamed. Ships Q4 2026; the date lives on the changelog until it does.
Export
Settings → Export downloads every link in the workspace in one file: a CSV with one row per link, or lossless JSON with the routing rules. Workspace owners and admins can run it, and your domain stays yours — custom domains covers re-pointing it.
How links look when shared

One link, tagged per channel.

Print it as a QR code that follows every edit, tag the destination with the built-in UTM builder, and share it with its own utm_source per channel — each click records both, no extra tool.

Example of a link's QR code: the code points at the short link go.example.com/summer, so a destination edit reaches the printed code too. A fixed parameter, utm_source=flyer, is added in the QR editor, and scans show up as QR traffic in analytics.

A QR code on the same link

The code points at the short link, so a destination edit reaches the printed code too. Fixed parameters — utm_source=flyer, say — are set in the QR editor, and scans show up as QR traffic in analytics. More on QR codes.

Example of campaign tags: go.example.com/summer redirects to example.com/summer-2026 with utm_campaign=summer set on the destination with the built-in UTM builder, and the link is shared per channel with its own ?utm_source — newsletter, instagram, flyer. Each click records both: the channel's utm_source from the short link and the campaign tag on the destination it was sent to, shown side by side in analytics.

Campaign tags, per channel

Set the campaign’s UTMs on the destination once with the UTM builder — source and medium lowercased, no duplicate tags — then share the link with its own ?utm_source per channel. Each click records the tags on the short link it came through and on the destination it was sent to, and both break down side by side in analytics; the campaign playbook is on the marketing page.

The basics are covered. See what’s different.

On Premium, routing rules and dynamic responses are where rii.link stops being a shortener. Start free — account links never expire unless you set a date, and clicks are never metered.

✓No credit card✓Free forever tier✓GDPR / DSGVO compliant✓Export & leave anytime