Paste anything
URLs up to 8,192 characters, deep links, UTM spaghetti, tracking parameters from another decade. We take it all and strip what doesn't matter.
// link compression engine — v4.2.0
Compress any URL into a branded, trackable short link — and keep the files behind it in the vault. One console for links, cloud storage and telemetry.
hashing slug…
scan · same place
RECENT COMPRESSIONS
// the engine
Paste, and the pipeline takes over — hashing, slugging and pinning your link to the nearest of 142 edge cities before you lift your finger.
URLs up to 8,192 characters, deep links, UTM spaghetti, tracking parameters from another decade. We take it all and strip what doesn't matter.
Take a generated 6-character hash, type your own, or pin your brand domain. Collisions are impossible — the keyspace is 56 billion wide.
Anycast routing answers every click from the closest of 142 cities. Median redirect: 34 ms. The visitor never notices the hop.
Clicks, geos, referrers, devices, bot ratio — streamed live to the dashboard or out through webhooks. Own your data, export it anytime.
// cloud storage
Drop a file, get a link. Assets live encrypted and replicated across three regions, so openshort.link/f/… delivers press kits, builds and cutdowns as fast as any redirect.
Vault usage — workspace “ada”
…
// telemetry
Top sources — /launch-day
DE 22% · US 31% · IN 12% · BR 9% · JP 7% · other 19%
// developer surface
Everything the console does, the API does programmatically. Keys are scoped, rate limits are generous, and webhooks fire on every click.
# mint a short link curl -X POST https://api.openshort.link/v1/links \ -H "Authorization: Bearer $OPENSHORT_KEY" \ -d '{"url":"https://example.com/spring-launch", "slug":"launch","ttl":"90d"}' # ← HTTP/2 201 { "short": "openshort.link/launch", "clicks": 0 }
// node 20+ const res = await fetch("https://api.openshort.link/v1/links", { method: "POST", headers: { Authorization: `Bearer ${process.env.OPENSHORT_KEY}` }, body: JSON.stringify({ url, slug: "launch" }) }); const { short } = await res.json(); // openshort.link/launch
# pip install openshort import openshort client = openshort.Client(key="osk_live_…") link = client.links.create( url="https://example.com/spring-launch", slug="launch", tags=["q3"], ) print(link.short) # openshort.link/launch
// pricing
For the occasional link
25 links/mo · 1 GB vault · 30-day analytics · openshort.link domain
For brands & campaigns
Unlimited links · 100 GB vault · custom domain · 1-year analytics · QR + UTM builder
For teams shipping daily
Everything in Studio · 1 TB vault · API + webhooks · 5 seats · bot shield
For platforms & enterprises
SSO / SAML · 99.99% SLA · data-residency pinning · dedicated edge cities · solution engineer
// answers
Never, unless you want them to. Every link supports an optional TTL — 24 hours to forever. Default is forever, because dead short links are the internet's worst habit.
Yes, from the Studio plan up. Add one CNAME record, we provision TLS automatically, and every new link is minted on your domain — e.g. yourbrand.co/launch. You can also run multiple domains per workspace.
Encrypted with AES-256 at rest and replicated across three regions you choose. Files are rescanned for malware hourly; anything suspicious is quarantined and the link page shows a warning instead of serving the file.
60 requests/min on Drift, 600/min on Studio, 3,000/min on Scale, and negotiated on Edge. Bursts are allowed — limits are rolling windows, not hard walls.
You do. Full CSV export on every plan, real-time webhooks from Scale up, and we never sell or enrich data with third parties. GDPR, DPA and data-residency pinning available.
Still curious? Read the docs or ping [email protected]