Redirect behavior
The redirect endpoint is the public-facing core of noBSredir. No auth required.
GET /:slug
Hit any configured domain with a slug to trigger a redirect.
https://fnl.sh/demohttps://go.yourco.com/blogResponse codes
| Code | Meaning |
|---|---|
302 | Found - standard redirect to target URL |
404 | Not found - no link exists for this domain/slug |
410 | Gone - link has expired (past expires_at) and no fallback_url is set |
If the link has expired and has a fallback_url, it returns 302 to the fallback URL instead of 410.
UTM parameter injection
If the link or workspace has UTM params configured, they are auto-appended to the target URL as query parameters:
utm_sourceutm_mediumutm_campaignutm_termutm_content
Link-level UTM params override workspace defaults. Existing query params on the target URL are preserved - UTM params are only added if they’re not already present.
Geo & device routing
Geo and device routing require a Team or Agency plan.
If the link has routing_rules configured:
Geo routing - redirects to a country-specific URL based on the visitor’s location:
{ "routing_rules": { "geo": { "DE": "https://example.de/seite", "FR": "https://example.fr/page" } }}Device routing - redirects based on the visitor’s device type:
{ "routing_rules": { "device": { "mobile": "https://m.example.com/page", "tablet": "https://tablet.example.com/page" } }}Device routing takes precedence over geo routing (evaluated second, overrides if matched).
If no routing rule matches, the default target is used.
Link sequences
Requires a Pro plan or higher.
If the link has a sequence configured, the redirect target changes on each visit per visitor:
- A cookie tracks the visitor’s current step in the sequence
- First visit serves URL 1, second visit URL 2, and so on
- After the last URL, either loops back to URL 1 or stays on the last URL (based on the
loopsetting) - The sequence-resolved target is used as the base URL before routing rules, A/B testing, and other redirect logic is applied
Programmable interstitials
Requires a Pro plan or higher.
If the link has an interstitial configured, visitors see a custom page before being redirected:
- Displays a title, optional body text, and a CTA button
- Auto-redirects after the configured delay (1-30 seconds)
- With
show_once: true(default), a cookie ensures returning visitors skip the interstitial - Social bots skip the interstitial entirely and get the normal redirect/OG response
- The click is tracked when the visitor continues past the interstitial, not when the interstitial loads
Priority order in the redirect chain: Password > Interstitial > Survey > Deep link > Normal redirect.
Social bot previews
When a social bot crawls the link (Facebookbot, Twitterbot, LinkedInBot, etc.) and the link has OG overrides (og_title, og_description, or og_image), the response is an HTML page with Open Graph meta tags instead of a raw 302. Non-bot browsers are still redirected immediately.
Retargeting script injection
Requires a Team or Agency plan.
If the workspace has retargeting_scripts configured (array of script URLs), the redirect response is a brief interstitial page that loads those scripts before redirecting. There is a small delay to give tracking scripts time to fire.
Server-side analytics
On every click, noBSredir fires analytics events server-side (if configured on the workspace):
- Google Analytics 4 (requires
ga_id+ga_api_secreton the workspace) - Facebook CAPI (requires
fb_pixel_id+fb_access_tokenon the workspace)
These do not slow down the redirect.