The Problem: Links That Outlive Their Welcome
You send a pricing proposal to a prospect. They go dark. Six months later the link is still live, your pricing has changed, your branding has moved on, and the prospect may have forwarded the page to a competitor who is quietly benchmarking you.
Shared content has a shelf life. Proposals go stale. Training materials get updated. Lead lists contain personal data that shouldn't persist indefinitely. Yet most sharing tools treat links as permanent by default and leave cleanup to someone who never remembers to do it.
Auto-expiry makes links time-limited by design. Set a window, share the link, and HTMLvault takes the page offline when the window closes, with no manual cleanup and no forgotten links still circulating.
Who This Is For
Sales reps sharing time-sensitive proposals or pricing that shouldn't remain accessible after a deal closes or goes cold. Marketers distributing campaign assets or landing pages tied to specific promotions. RevOps teams circulating lead lists, territory assignments, or compensation documents that contain sensitive data. IT and security stakeholders who need assurance that shared content won't persist beyond policy-compliant retention windows.
If your organization has data retention policies, or you've ever wished a shared link would disappear once it stopped being useful, auto-expiry makes that automatic.
How It Works
Each link gets an expiry when you publish it, chosen from the Expires in dropdown on the upload form or sent with the API call. When that time passes, the link shows an expiration page instead of your content. The check runs on the server, so there is no client-side clock for a viewer to manipulate.
The dropdown starts on your account's default, which you set under Settings, in the Link defaults card. Expiry comes in fixed steps rather than calendar dates, and the steps you see depend on your plan.
Free Accounts: 24 Hours to 30 Days
Signed-in Free accounts choose 24 hours, 3 days, 7 days or 30 days, so 30 days is the longest a Free link stays up. The list also shows Never (Pro); choosing it opens an upgrade prompt and leaves your selection unchanged. Uploads made without an account are held to 7 days.
Pro and Above: 1 Hour to Never
On the web, Pro, Teams and Enterprise accounts choose 1 hour, 24 hours, 3 days, 7 days, 30 days, 1 year or Never. Never is for content that genuinely needs to persist, such as a standing rate card or onboarding material. HTMLvault enforces whatever you set.
What Happens When a Link Expires
Expired links don't show a generic 404. Visitors see a page saying the link has expired, with an Ask for a new link button. The button asks for the visitor's name and email address, then emails the link's owner with the request.
If a prospect asks for a new link after your proposal expired, you know they're still engaged, and you decide what they see next: the same URL with its expiry extended, the same URL with updated content, or a new conversation.
A Worked Example: Time-Boxed Pricing Proposal
A sales rep at a SaaS company generates a custom pricing proposal with Claude, exports it as HTML, and uploads it to HTMLvault. The deal has a 14-day decision window. Fourteen days isn't one of the steps, so she picks 30 days: the decision window plus a buffer for a slow signature. The reasoning behind that buffer is covered in choosing a window that matches the deal.
The prospect receives the link and views it twice (she can see this in analytics) but doesn't respond. When the 30 days are up, the link expires. A few weeks later he comes back, clicks the link, and sees the expiration page. He clicks Ask for a new link, enters his name and email address, and the rep gets an email.
The request tells her the prospect is back after going dark. Her rates have changed since the quote, so she can replace the pricing on the same page and extend its expiry, which brings back the link he already has, or she can use the request as an opening to restart the conversation. Either way, she's not stuck defending a stale quote from two months ago.
Setting Expiry via API and Integrations
When you create links programmatically, through the REST API, Zapier, Clay or the MCP server, set expiry with the expiresIn field. It takes one of 1h, 24h, 3d, 7d, 30d, 1y or never. Any other value is refused with a 400 error, and there is no option for an exact date or timestamp.
{
"html": "<html>...</html>",
"expiresIn": "30d"
}
Leave expiresIn out and the link gets your account's default expiry from Settings, Link defaults. Accounts created since October 2026 start with a 1-year default. The MCP create_link tool takes expiresIn with the same values except 1y.
Neither the REST API nor MCP can set a password; add one on the web after publishing (see password-protected links). Free accounts have no REST API access, and a link a Free account publishes through MCP lasts at most 30 days.
Limits and Caveats
- Expiry can be changed after the fact. An owner can change or extend a link's expiry at any time from the links dashboard, including after the link has expired, until its content is deleted at the end of the retention window (below). The same URL comes back, so nobody needs a new link.
- Expired content is kept, then deleted. An expired page stays stored for your account's retention window, a single account-wide setting of 7 days to 2 years on paid plans and 7 to 90 days on Free, counted from the link's expiry. When the window ends, the content is deleted along with its per-visitor view data.
- An open tab keeps showing the page. If a viewer has your page open in a browser tab when it expires, they can still see it until they reload. Expiry controls access to the page on the server, not what's already rendered in the browser.
- Free links stop at 30 days. 1 year and Never need Pro or above, and uploads made without an account stop at 7 days.
- Password protection and expiry are independent. A link can be both password-protected and time-limited. Expiry applies even to viewers who have the password.
Why This Matters
Auto-expiry keeps a proposal from outliving the deal it was written for. You set the window when you publish, and the quote goes offline on schedule instead of waiting for someone to remember to delete it.
Auto-expiry turns link hygiene from a manual chore into a default. When the prospect clicks after the window has closed, the old quote stays offline and the request lands in your inbox, so the next price they see is the one you decide to send.
