Short links in SMS: carrier rules, click tracking and API setup
Last updated:
API and automation

LucaG is the co-founder of ShortPen. Before that, he built Guadagnissimo from scratch, a personal finance blog that reached hundreds of thousands of readers per year and was later acquired. That experience is where he learned SEO and marketing attribution hands-on. He also runs NTSOT, a newsletter on tools for work and life. His background spans product design, growth, and building online businesses.
Show more
Short links in SMS should run on a domain you own, like go.yourbrand.com/fall26. A branded short link keeps a text inside one 160-character segment, meets the US carrier guideline that asks senders to use a shortener dedicated to them, and lets you track clicks and conversions. Shared shorteners like bit.ly get filtered. For volume, create the links through an API and insert them into your SMS sends.
This guide covers the character math, what carriers filter and why, when your SMS platform’s built-in shortener is enough, and how to generate and track SMS links with an API. The examples use ShortPen (our product), but the method works with any link tool that supports custom domains.
Send SMS links from your own domain
Connect a custom domain on the free plan, create branded links from the dashboard or the API, and track clicks and conversions in one place.
Why links in SMS need to be short
You pay for a link in a text message by the character. SMS is billed per segment, and a long URL can turn a one-segment text into two.
SMS character limits and segments
A standard SMS holds 160 characters in the GSM-7 encoding. Using short links helps maximize the available character count and keep more of your text in a single message.
Longer messages are split into segments of 153 characters each, because part of every segment carries the data that joins them back together. Shorter links also reduce the chance of awkward line breaks or broken-looking URLs in SMS messages.
Unicode lowers the limits to 70 characters, or 67 per segment. One emoji or curly apostrophe switches the whole message to Unicode, so a text that fit in one segment can suddenly need three.

What a long link costs you
Take a 100-character offer and a 21-character opt-out line (“Reply STOP to opt out”). Add a typical tracked URL:
https://www.example-store.com/collections/fall-sale?utm_source=sms&utm_medium=sms&utm_campaign=fall_2026_launch
That URL is 111 characters. The full message reaches 234 characters and goes out as 2 segments. Swap in https://go.brand.co/fall26 (26 characters) and the message drops to 149 characters, which is 1 segment.
Same offer, half the sending cost. The UTM tags still reach your analytics because they sit on the destination behind the short link. The characters you save can go to the offer or a clearer call to action.
Why the link’s look matters
Plain SMS has no anchor text. You can’t hide a URL behind “Shop now” the way you would in an email, so the raw link always appears in the message.
The domain is part of what the reader sees and judges before tapping, and a custom domain helps recipients recognize the sender, trust the link, and feel more confident it leads to the intended destination.
Public shorteners vs branded domains
Use a short domain that belongs only to you. Shared public shorteners are the most common reason SMS links get filtered in the US.
Why carriers filter shared shorteners
Spammers used free shorteners for years, so a domain like bit.ly carries traffic from thousands of unrelated senders. Carriers can’t tell your link apart from theirs.
The CTIA Messaging Principles and Best Practices (May 2023) address this in section 5.3.2. When a sender uses a URL shortener, its web address and IP addresses should be “dedicated to the exclusive use of the Message Sender.” The same section asks for links that clearly identify the website owner.
Messaging providers enforce it. Twilio’s error 30892 rejects A2P 10DLC campaigns whose sample messages include a public URL shortener and tells senders to use a branded short domain they own. ClickSend gives the same advice for toll-free numbers in the US and Canada and names bit.ly, TinyURL and t.co.

The “October 2025 CTIA update” myth
Several vendor blogs claim CTIA published new shortener rules in October 2025. It didn’t. CTIA’s October 2025 paper covers messaging security and doesn’t mention URL shorteners. The rule that applies is still section 5.3.2 from May 2023.
Trust and smishing
Readers have good reasons to hesitate before tapping. The FTC reports that people lost $470 million in 2024 to scams that started with a text message, five times the 2020 figure. Fake package delivery notices were the most reported type.
A bit.ly link tells the reader nothing about where it goes. go.yourbrand.com tells them who sent it. Inside a plain text, the domain is the only trust signal you control.
Rules outside the US
India has the strictest rule. Since October 1, 2024, TRAI has required operators to block commercial SMS containing URLs the sender hasn’t whitelisted. If you send to India, whitelist your custom short domain on the DLT platform before the campaign.
In the UK and EU there is no shortener-specific rule. A branded domain is still the safer default.
ShortPen’s free plan includes one custom domain, unlimited links and unlimited tracked clicks, with no ads on your links. You can set up a branded SMS domain before paying for anything.
Yearly paid plans also include a free .link domain, which keeps the domain part of every link short.
Built-in SMS platform shorteners: when they’re enough
If you send from one platform and only need basic campaign tracking metrics, its built-in shortener is usually enough. The trade-offs show up in domains, expiry, and where the data lives. If you need more control, a dedicated URL shortening service works alongside any SMS provider.
Platform | How it shortens | Limit to know |
|---|---|---|
Twilio | Your verified domain plus a 10-character code | Link mapping kept 90 days, then a fallback URL |
Klaviyo | Shared | Branded domains need a paid SMS plan |
Iterable | Shared | Custom tracking domain available |
Sinch | Links over 22 characters cut to 22 | Shortened links are charged per link |
Cordial | Its own shortener domain | Links expire after 30 days |
A separate link tool makes sense when:
you want link data that stays with you if you switch SMS providers
the same campaign runs across SMS, email and QR codes and you want one report
you need to track signups or purchases after the click
links have to keep working after a 30- or 90-day platform window
ShortPen is built for those cases. One link works in a text, an email or on print, and every link can also be a dynamic QR code. Click and conversion data stay in your ShortPen workspace whichever SMS provider sends the message, and folders and tags keep each campaign separate. If you’re moving from Bitly or Short.io, ShortPen imports your existing links, and on paid plans the team migrates what it can by hand.
If you paste your own branded link, turn off the platform’s auto-shortening. Omnisend’s tutorial shows the switch. Otherwise your link gets rewritten onto the platform’s domain.
One link per campaign or one link per recipient?
Use one link per campaign for broadcasts. Use one link per recipient for transactional texts or small segments where you need to know who clicked.
Per-campaign link | Per-recipient link | |
|---|---|---|
What you learn | Total clicks, devices, countries, timing | Which person clicked |
Links to create | 1 per campaign or test variant | 1 per phone number, with dynamic parameters to identify the campaign, recipient, or segment for tracking |
Best for | Promotions, broadcasts, A/B tests | Order updates, bookings, follow-ups |
Watch out for | No individual data | API volume, more personal data stored |
Per-recipient links let you create unique links, see who clicked, and send a follow-up to people who didn’t click, a workflow Omni Octo shows here. They also make it easier to measure whether someone took the desired action after landing on a mobile-optimized page. The cost is volume.
ShortPen’s API allows 60 requests per minute, which is 3,600 links per hour. A 50,000-recipient blast would need about 14 hours of link creation before sending. For large broadcasts, per-campaign links with UTM tags are faster and cover most reporting needs.
How to create SMS short links with an API
The flow has four steps: connect a domain, create the link with UTM tags, insert it into the SMS body, and handle limits. The examples use the ShortPen API, which takes a bearer token at https://api.shortpen.com.
You don’t need a sales call or an enterprise contract to use it. Full API access comes with every paid plan: you create a token in your organization settings and send your first request right away.
Step 1: Connect a custom domain and get its ID
Add your domain in ShortPen and set the DNS record. Then call POST /v1/get with resource: "domain" to get the domain_id your links will use.
Step 2: Create the link
The response returns the short link in data.link. When you place that new link in the SMS copy, pair it with a clear CTA. The param object appends the UTM tags to the destination, so they never count against your SMS characters. redirect_type: 302 keeps repeat clicks visible in analytics, and folder_id keeps each campaign’s links in one place.
Step 3: Insert the link into your SMS send
Pass data.link into the message body of whatever SMS API you use. With Twilio’s Python library:
Leave Twilio’s own link shortening off for these messages so it doesn’t rewrite your link.
Step 4: Handle limits and errors
The API allows 60 requests per minute per token. Space out bulk jobs and retry with backoff.
HTTP
429means a limit was reached, and the response message says which one.No bulk-create endpoint is documented, so large batches loop over
POST /v1/generate. For one-off batches, CSV import and bulk shortening in the dashboard are simpler.Teams without developers can build the same flow in Zapier or Make.
The free plan includes 200 API calls a month, enough to test the setup. Paid plans have unlimited API calls and a 14-day free trial, starting at $23 a month on yearly billing (pricing).
How to track SMS link clicks and conversions
Track clicks and click-through rate on the short link, add UTM tags for your web analytics, and connect a conversion pixel if signups or sales matter to you. An SMS URL shortener with built-in analytics gives you all three in one place. Clicks show interest. Conversions show who bought.

What click data you get
A short link records each click with its time, device, operating system and country. Referrer data is usually empty for SMS traffic, because messaging apps rarely pass one. A dedicated link per channel is how you know a visit came from a text.
In ShortPen, clicks appear in real time, grouped by folder or tag, with UTM campaign breakdowns.
Add UTMs so your web analytics see SMS
Without UTM tags, SMS visits often show up as direct traffic in Google Analytics. A common convention is utm_source=sms, utm_medium=sms and a campaign name. Put the tags on the destination URL, not in the visible link.
Use 302 redirects for campaign links
A 301 redirect is permanent, so a browser can cache it and skip the short link on a second tap. That hides repeat clicks. A 302 sends every tap through the link and keeps the count accurate. ShortPen defaults to 301, so set redirect_type to 302 for SMS campaigns.
Watch for link previews and bots
Some phones and security scanners open links automatically to build previews or check for malware. Those hits look like clicks unless something filters them. Twilio’s click webhook, for example, reports “click” and “preview” as separate events (Twilio).
ShortPen filters bot clicks out of your analytics, so automated hits don’t inflate your click rate. If you compare numbers across tools, expect some differences from how each one counts these hits.
Track signups and purchases, not only clicks
Install the ShortPen Pixel once on your site, then create events from the dashboard. URL-triggered events fit thank-you pages, and code-triggered events fit actions like signups. Shopify stores can use the ShortPen app, which maps Add to Cart, Checkout and Purchase.
Each conversion is credited to the last ShortPen link the visitor clicked, with no attribution window. For your own reports, POST /v1/analytics exports raw click events by date range. The free plan tracks 100 conversions a month, enough to test a campaign end to end, and Plus covers 10,000.

This matters for SMS because revenue varies far more than clicks. Klaviyo’s 2026 SMS benchmarks found that automated SMS flows earn about 8 times more revenue per recipient than one-off campaigns. Measure revenue per recipient and treat clicks as the early signal. Conversion rates matter more than click volume when judging SMS revenue impact, especially when the link sends people to a focused landing page.
SMS link best practices
Put the link in the first half of the message so it shows in the notification preview.
Use a readable slug like
/fall26instead of a random code.Keep emoji out of messages that sit close to a segment limit.
Use the same domain on every campaign so readers learn to recognize it.
Pair the branded short link with a clear call to action, like “Shop the sale:” right before the link.
Redirect your short domain’s root and 404 pages to your site, so a mistyped link doesn’t dead-end.
Test the message on iOS and Android before sending.
For a benchmark, Klaviyo’s 2026 data puts a good SMS click rate at 5.6% for campaigns and 9.65% for automated flows.
FAQ
How do I shorten a link for SMS?
Create a short link on a custom domain you own, then paste it into the message. Most link tools support custom domains, and ShortPen’s free plan includes one. For automated sends, create the link through an API and insert it into the SMS body. Avoid shared domains like bit.ly for US traffic.
Is it safe to click shortened links in texts?
It depends on the sender. A shared shortener hides the destination, which is why scammers use them. A branded short link shows the sender’s domain. If a text is unexpected, the FTC advises against tapping the link and suggests contacting the company directly.
Can you hyperlink text in an SMS?
No. Plain SMS can’t hide a URL behind anchor text, so the full link always shows. That’s why a short, recognizable link matters.
Do carriers block bit.ly links in SMS?
In the US, often. CTIA guidelines ask for shorteners dedicated to the sender, and Twilio rejects 10DLC campaigns with public shorteners in their sample messages (error 30892). Use your own domain.
Do UTM parameters make my SMS longer?
Only if you paste the full tagged URL into the text. Add the UTMs to the destination behind a short link, and the message only carries the short link.
Can I track who clicked a link in a text?
Only with one link per recipient. A shared campaign link shows how many people clicked and from which devices and countries, but not which person.
What is a good SMS click rate?
Klaviyo’s 2026 benchmarks put a good click rate at 5.6% for SMS campaigns and 9.65% for automated flows. Rates vary by industry and list quality.
Should SMS links use 301 or 302 redirects?
Use 302 for campaign links. A 301 can be cached by the browser, which hides repeat clicks from your analytics.
Conclusion
Short links in SMS work best on your own domain, created per campaign (or per recipient for transactional texts), with UTM tags on the destination and conversion tracking after the click.
That setup keeps texts in one segment, gets past US carrier filters and shows which messages bring in revenue. To try it, connect a custom domain on ShortPen’s free plan and create your first SMS link from the dashboard. When you’re ready to automate, the 14-day trial unlocks full API access.
Branded links and QR codes you can edit after printing
Conversions tied to the exact link or QR code, from your website or store online
Workspaces, custom domains and full analytics history as your team grows
Ready to make every click count?
Simplify your link management, gain valuable insights, and take control of your online presence. Your journey to better links starts here.
