Skip to content
noBSredir

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/demo
https://go.yourco.com/blog

Response codes

CodeMeaning
302Found - standard redirect to target URL
404Not found - no link exists for this domain/slug
410Gone - 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_source
  • utm_medium
  • utm_campaign
  • utm_term
  • utm_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.

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 loop setting)
  • 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_secret on the workspace)
  • Facebook CAPI (requires fb_pixel_id + fb_access_token on the workspace)

These do not slow down the redirect.