Hosted pages and embeds
Share your published page or embed it on your website.
Only published revisions have a shareable URL or embed. Draft and paused waitlists show no public controls worth sharing.
Hosted page
Publish first
Complete Publishing. Draft edits must be published before visitors see them.
Copy the hosted URL
In Page → Publish options → Hosted page, copy /w/your-slug. This is the canonical Waitlyze URL.
Optionally connect a domain
Add join.example.com in Waitlist settings → Custom domain. When status is Ready, it serves the same published revision. See Custom domains.
Local development uses your local origin; preview and production use their configured environment URLs. Do not hardcode one environment's URL into another.
Embed on your website
Copy the embed code from the builder's Publish options. It carries your public waitlist ID, not a secret API key.
<div class="waitlyze-widget" data-key-id="YOUR_WAITLIST_ID"></div>
<script src="https://waitlyze.com/js/embed.js" defer></script>Public embed, private API key
The embed uses a public waitlist ID and needs no secret. Keep API keys on your server only.
- Place the snippet where the form should appear.
- The frame sizes itself to the form, so there is nothing to tune. Set
data-heightonly if you want to reserve space before the form loads. - Referral
?r=CODEand UTM parameters from your page URL are forwarded into the widget. - The frame reports its own height to the page that embeds it. Only messages from the Waitlyze origin are accepted.
- For local development, point the script
srcat your local Waitlyze origin instead of production.
Prop
Type
Leaderboard & counter widgets
Show social proof on any site - no API key needed. Both widgets serve JSON by default and an embeddable HTML snippet with ?format=html (iframe it). Emails are always masked server-side (b***@g***); raw addresses never leave these endpoints. Responses are public-cacheable for 60 seconds (s-maxage=60, stale-while-revalidate=300) and share the widget rate-limit budget (429 carries Retry-After).
<iframe
src="https://waitlyze.com/api/widgets/leaderboard?waitlistId=YOUR_WAITLIST_ID&format=html&limit=10"
width="100%"
height="420"
style="border:0"
loading="lazy"
title="Waitlist leaderboard"
></iframe><iframe
src="https://waitlyze.com/api/widgets/counter?waitlistId=YOUR_WAITLIST_ID&format=html"
width="100%"
height="180"
style="border:0"
loading="lazy"
title="Waitlist counter"
></iframe>- Leaderboard needs a published waitlist with referrals on (
404otherwise); the counter needs only a published waitlist.limitis 1–50 (default 10). - Prefer JSON (
?format=json) when rendering in your own components:{ "total": 2418, "entries": [{ "position": 1, "maskedEmail": "b***@g***", "referrals": 12 }] }and{ "total": 2418 }.
Checklist before sharing
- Status is
Publishedand Overview saysPublished page, notPublish your latest changes. - You copied the URL or snippet after the last publish.
- Your site's Content Security Policy allows the Waitlyze script and frame.
- Custom domain, if used, shows Ready.
If the embed is blank, see Troubleshooting.
Building a fully custom form instead? The custom frontend guide pairs the Signup API with referrals, your domain, and your sender end-to-end.