Free URL Shortener

Shorten. Track.
Conquer.

Powerful link management with real-time analytics, QR codes, custom slugs, and password protection.

Your Short URL
0 links created
Enter a URL above to preview
What You Get
Every feature you need
🔗
Custom Short Links
Choose your own slug or let us generate one. Memorable, branded links that look professional.
📊
Real-Time Analytics
Track clicks, countries, devices, browsers, referrers. See your data in beautiful charts.
📷
QR Code Generation
Generate customized QR codes instantly for any link. Download as PNG for print or digital use.
🔒
Password Protection
Keep links private with password gates. Only those with the password can access the destination.
Link Expiration
Set an expiry date and time. Links automatically disable after expiry — perfect for time-limited offers.
📦
Bulk Shortening
Paste in hundreds of URLs and shorten them all at once. Export results to CSV in one click.
📈
UTM Builder
Build UTM-tagged URLs for campaign tracking. Then shorten them for cleaner sharing.
Cloudflare Edge
Runs on Cloudflare's global edge network. Sub-millisecond redirects in 300+ cities worldwide.
🛠
Developer API
RESTful API with full CRUD operations. Integrate URL shortening into any app or workflow.

Built for
Developers

The Shortlify API gives you programmatic access to all features. Shorten URLs, track stats, manage links — all via clean RESTful endpoints.

Set your API key in the Cloudflare Pages dashboard as the API_KEY environment variable.

  • POST/api/links
  • GET/api/links
  • GET/api/links/:slug
  • PATCH/api/links/:slug
  • DELETE/api/links/:slug
  • GET/api/links/:slug/stats
  • POST/api/links/bulk
// Shorten a URL const res = await fetch('/api/links', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer YOUR_API_KEY' }, body: JSON.stringify({ url: 'https://very-long-url.com', slug: 'my-link', // optional password: 'secret', // optional expiresAt: '2025-12-31',// optional preview: false // optional }) }); const { slug, shortUrl } = await res.json(); // → { slug: "my-link", shortUrl: "https://s.you/my-link" }