Toolvore

URL Shortener

Shorten long links into tidy, shareable URLs.

Your full URL — path, query string and all — is sent to TinyURL or is.gd, which is how a short link gets made. They keep it permanently, on a short public address anyone can visit. Don't shorten a link that is private because nobody has guessed it.

Turns a long link into a short shareable address — a tinyurl.com link, or an is.gd one when TinyURL cannot be reached — and keeps a running list of everything shortened since the page loaded.

How to use it

  1. 1Paste the long URL and press Enter, or click Shorten; a missing https:// is filled in for you.
  2. 2Copy the short link from the read-only field, or click Open ↗ to check where it lands.
  3. 3Scroll to "This session" for every link made since the page loaded, each with its own copy button.

Example

Input
https://example.com/very/long/path?utm_source=newsletter
Output
A tinyurl.com/… link in a read-only monospace field, with the full original URL in grey underneath

Bare input such as example.com/page is expanded to https://example.com/page first, and it is the expanded form that gets registered, so the short link resolves over HTTPS. Query strings survive untouched — a tracking parameter shortened here is still attached when someone follows the link. If TinyURL returns anything that is not an http(s) address, is.gd is tried, and its own rejection message is passed through verbatim.

What happens to your data

Be deliberate with this one: the link is the payload, and /api/shorten passes the whole URL — path, query string and all — to a third-party shortening service that stores it permanently and publicly. A short link made here cannot be revoked, expired or edited from this page. Before that call, our route resolves the hostname and refuses anything landing on a private, loopback or link-local address, with the message about private network addresses. The session list is React state only, so a reload clears the list without touching the links themselves.

Last updated August 2026

A link that was fine in a browser becomes a problem the moment it has to travel as text. A URL carrying a session id and four tracking parameters wraps across three lines in a message, breaks in half when read aloud on a call, and turns into an unreadable block on a slide or a handout.

Before shortening anything, decide which of the two kinds of short link you need. A public shortener — which is what this is — hands you an address in seconds with no account, and that is the whole trade: nobody is holding the link for you, so it can never be renamed, retired, or pointed somewhere else later. The other kind runs through an account with a provider, often on a domain you own: it costs setup time and gives you a readable ending, a destination you can change later, and a record of how often it was followed. Anything going onto signage or printed material belongs in that second category, because the one thing you cannot do with a link on a poster is fix it.

The mistake worth avoiding is treating a short link as a private one. Shortening a password reset link, a signed download URL or a document shared to anyone with the link adds no protection whatsoever — the redirect is public and the secret is still the destination. Keep the long version somewhere too, since a short code on its own tells you nothing about where it points.

How it works

Toolvore does no shortening of its own — it hands your address to a public shortening service and passes the answer back. What sits in between is a small route on our server. It parses what you typed, filling in https:// when no scheme is present, refuses anything that is not http or https, then resolves the hostname and throws the request out if any address that name maps to is private: 10.x, 127.x, 192.168.x, 172.16 through 172.31, 169.254.x, carrier-grade NAT, multicast, IPv6 loopback, link-local and unique-local are all covered. Every resolved address is checked rather than only the first, because one name can carry both a public and a private record. Only then does it call TinyURL's create endpoint, uncached, falling back to is.gd when the reply is not an http address. The weakness is structural rather than fixable: what comes back is one line of text with no ownership token in it, so once the link exists neither you nor this page has a handle on it — no edit, no expiry, no deletion, no count of who followed it.

Common use cases

  • Pasting a long article URL into a text message without it wrapping
  • Putting a link on a slide the audience has to type in by hand
  • Reading an address aloud on a call or a recorded walkthrough
  • Keeping a bio or signature field under a character limit
  • Feeding a tidy address into a QR code generator elsewhere
  • Sending a deep link with a long query string to a phone

Frequently asked questions

Do shortened links expire?

Not on a timer, as a rule — public shorteners keep a redirect working indefinitely and offer no expiry setting to whoever made it. What actually ends a short link is the service itself: if it folds or purges its database, every link it ever issued dies at once, and nothing in the short address hints at the destination, so a dead one is unrecoverable unless you kept the original. That is the argument for storing the long URL alongside the short one wherever the link matters, and for not putting a free shortener on anything printed with a five-year life.

Can I see how many people clicked my short link?

Not from a link made without an account. Click counts come from the shortener's own dashboard, and a dashboard needs a login that ties the link to a person; one created anonymously through an API call has no owner to report to. Nothing here returns a count or a stats page — the response the page receives is the short address and the original URL, nothing else. If measurement is the point, do it the other way round: put your own campaign parameters on the destination URL, shorten that, and read the numbers in your own analytics.

Can I choose my own ending, like /spring-sale?

Not through this. The code comes back from the service already assigned, a string of characters of their choosing, and there is no field here to ask for a word, because the only thing sent is the URL. Custom endings and branded domains are real, but they are account features: you register with a shortening provider, point a domain you own at it, and get links that read as yours. That matters for links people are asked to trust, since a recognisable domain is easier to click than an anonymous code.

Is it safe to open a shortened link somebody sent me?

Treat it as unknown until you have seen where it goes, because hiding the domain is exactly what shortening does, and phishing uses that deliberately. Expand it before following it: several shorteners publish a preview page that shows the destination without visiting it, and link-expander services do the same for any provider. On a phone, a long press usually reveals the full address in a menu without opening anything. If you cannot preview it and were not expecting it, leave it alone — particularly when the message around it presses urgency about an account, a delivery or a payment.

Does shortening a URL strip its tracking parameters?

No — everything after the question mark travels with the link. The short address redirects to the exact URL that was registered, so utm_source, a referral code or a session token in the query all reach the destination as if the long link had been clicked. What shortening changes is who reads them beforehand: the recipient sees a short code rather than a URL announcing where they came from, which is why people assume it cleans the link up. If you want those parameters gone, edit them out before shortening.

Why do some sites and spam filters block shortened links?

Because the destination is hidden, and a filter that cannot see where a link goes treats it as a risk. Mail systems score short links poorly, some forums and communities strip or ban them outright, and certain messaging platforms will not unfurl a preview for them. A shared shortener domain also carries the reputation of everyone else using it, so an innocent link of yours can be blocked over what strangers pointed at the same domain last week. The practical rule: use the full URL where the recipient has to trust it, and keep shorteners for places with a hard character limit.

Who gets to see the URL I shorten?

This is one of the few tools here that cannot run inside your browser: a short link has to be registered somewhere. What you type goes to a small route on our own server, which resolves the hostname and then passes the complete URL — path, query and all — to TinyURL, or to is.gd if the first attempt fails. Both calls run uncached, and the route keeps nothing — no logging or storage anywhere in it — returning only the short link and the URL registered. The consequence to weigh is not our server but theirs, since whatever sits in that address is now known to a third party.

Why was my URL refused?

The wording tells you which stage refused it. An address that will not parse comes back as not looking like a valid URL, usually a stray space or a missing dot. Anything that is not http or https is refused before any network call, so mailto and ftp addresses go nowhere. A host that resolves to a private or local network gets the message about private or local network addresses, which is why localhost and an intranet hostname cannot be shortened even though they open on your machine. If the complaint reads like it is about the link itself, it came back from is.gd word for word.