Expiring Links: Make a Short Link Stop at a Set Time
Set a date and time for a short link to stop redirecting, and learn how the per-link visit limit works, what visitors see, and how to extend an expiry.
To make a link that expires, give the short link an expiry date and time: until then it redirects as usual, and from that moment it shows a "Link expired" page instead. On SendURL that's a switch in the Create link form, on every plan, and an expired link can be revived by moving or removing the date.
This post covers setting an expiry, when to use one, what visitors and search engines see, and the other way a link can stop: its visit limit.
How expiry works
After the expiry moment, anyone who opens the link or scans its QR code sees "Link expired", and the request answers with HTTP status 410 (Gone). SendURL checks the expiry on every visit, so the link stops on time.
After expiry:
- No click is recorded and nothing counts toward the link's visit limit
- The link keeps its slug, QR code and click history
- It shows an Expired badge in your link list and on its page
- A later expiry, or none, brings it back at any time
Set an expiry when you create a link
- In the console, choose Create link and paste the destination.
- Turn on Set an expiry.
- Pick the date and time. They're in your browser's time zone, which the form names under the field, such as Europe/Berlin.
- Choose Create short link.
The expiry must be in the future and no more than 100 years ahead. Guest links made on the home page can't have one; claim the link first.
To change it later, open the link's page and use the Expiry card: Set expiry, Change expiry (earlier or later, including on an expired link) or Remove expiry. Changes reach visitors within seconds.
When to use an expiring link
| Situation | Use | Why |
|---|---|---|
| A sale, registration window or download with a known end | Expiry | It stops on its own, on time |
| Something went wrong and the link must stop now | Disable | Immediate, and you switch it back on by hand |
| The page moved but the link's purpose is the same | Change the destination | Every copy, printed ones included, keeps working |
| A printed QR code for a campaign that will end | Change the destination when it ends | An expired code is a dead end; a redirected one still helps |
404 or 410: what visitors and search engines see
A disabled link answers "Link not found" with a 404. An expired link answers "Link expired" with a 410, and a link at its visit limit "Visit limit reached", also 410. A 410 says the link was removed on purpose, which is clearer to a visitor than a generic not-found. Every status a short link can answer is in how URL shorteners work.
For search engines it makes little difference: Google's documentation says it treats all 4xx errors except 429 the same and drops the URL from its index. Neither page records a click.
Time zones and buffers
The console shows times in your browser's time zone and stores them in UTC. Set an expiry of 9:00 on 1 December in Tokyo and the link stops at 9:00 Tokyo time, which is 00:00 UTC; a colleague in New York sees the same expiry as 19:00 on 30 November.
Two habits avoid surprises:
- Expire in your audience's time zone. For a campaign aimed at another region, convert first, or use the API with an explicit offset.
- Add a buffer for slow channels. SMS and email arrive late and get opened hours later; printed flyers and QR codes stay up after the offer ends. Expire at the end of the last day, not at the advertised minute, or point the link at an "offer ended" page instead.
Set an expiry with the API
Send expiresAt as an ISO 8601 date-time with Z or an offset, when creating a link or in PATCH /links/:id. null removes it:
curl -X PATCH https://api.sendurl.to/api/v1/links/LINK_ID \
-H "Authorization: Bearer $SENDURL_API_KEY" \
-H "Content-Type: application/json" \
-d '{"expiresAt": "2030-12-01T09:00:00+09:00"}'A value without an offset is refused rather than guessed at. See Update a link.
Visit limits
Separately from expiry, each link has a visit capacity from your plan: 100,000 visits per link on Free. The link's Visit capacity card shows visits used out of the limit.
At the limit, the link shows "Visit limit reached" with a 410. Visits to a disabled or expired link don't use capacity, and neither do views of a password page before the right password. Link previews do: when a chat app fetches the link to build a preview, that request is a redirect like any other.
You can't set a lower limit yourself; to stop a link after a while, use an expiry. For most links the limit never comes into play.
Checklist for an expiring link
- The end time is in your audience's time zone
- There's a buffer for SMS, email or print
- Printed QR codes will be taken down, or the link will be redirected instead
- You've opened the link once before sharing it
Start tracking links free.
Create your first short link with click analytics in seconds. No credit card, no sign-up to start.
Shorten a link