shrtnr is a self-hosted URL shortener for managing links through a web dashboard, REST API, typed SDKs, or an MCP server. It runs on Cloudflare Workers and D1 in your Cloudflare account, within Cloudflare’s free tier, and keeps links and click data in your D1 database. The API offers an OpenAPI 3.1 specification, an interactive reference on each deployment, and scoped bearer keys. SDKs are available for TypeScript, Python, and Dart/Flutter. Click analytics cover countries, referrers, devices, operating systems, browsers, QR scans versus link clicks, and timelines. Bundles combine analytics for related links. A destination can use a random slug and multiple custom slugs, with each tracked and switchable independently. Cloudflare Access supplies identity controls, while the MCP server connects Claude, Copilot, and other MCP clients through OAuth. The dashboard supports English, Indonesian, and Swedish, with three themes and QR codes. Custom domains and API access are included. Password-protected links, imports, exports, routing, tags, social preview overrides, and click webhooks are listed as unavailable.
Who it is for
shrtnr is aimed at apps, teams, and AI agents needing programmable short-link management. It suits users comfortable operating services in their own Cloudflare account.
What is good
- Runs within Cloudflare’s free tier
- Detailed click analytics and timelines
- REST API with OpenAPI 3.1 specification
- Typed SDKs for three ecosystems
- MCP connections for Claude and Copilot
What to know first
- Several link features are not yet available
- Requires self-hosting in a Cloudflare account
- Dashboard language choices are limited to three
- Links and data remain tied to D1
Verdict
shrtnr offers programmable shortening, analytics, bundles, and AI integrations while keeping hosting in your Cloudflare account. Check its unavailable features before adopting it for advanced link-management requirements.
shrtnr plans and pricing
All plansCompared on URL shorteners
- Free plan
- Yes
- Custom domains
- Yes
- API access
- Yes



