Check Slug Availability
Check if a workspace slug is available for reservation.Workspace slug to check
Whether the slug is available
Availability status: “available”, “taken”, or “reserved”
- available: Slug can be reserved or used
- taken: Slug is already used by an existing workspace
- reserved: Slug is reserved by another user (not expired)
Reserve Slug
Reserve a workspace slug before creating an account.Desired workspace slug (lowercase, alphanumeric, hyphens)
Email address for the reservation
Whether reservation was successful
Unique reservation token
- Reservations expire after 30 days
- Confirmation email sent with verification link
- Link format:
{APP_URL}/reserve/{token} - Maximum 3 active reservations per email
admin,api,featul,feedback,www,appsupport,help,mail,blog,status,docspricing,signup,signin,start,invitereserve,verify,staging
- 1-minute cooldown between reservation attempts per email
- Prevents spam and abuse
Lookup Reservation
Retrieve reservation details by token.Reservation token from email
null if:
- Token is invalid
- Reservation is expired
- Reservation status is not “reserved” (cancelled or claimed)
Confirm Reservation
Confirm a reservation via email token.Reservation token to confirm
Whether confirmation was successful
- Token must be valid and not expired
- Reservation must have “reserved” status
- Updates the reservation’s
updatedAttimestamp
404: Invalid reservation token410: Reservation expired409: Reservation not active (already claimed or cancelled)
Claim on Signup
Check if current user has an active reservation to claim.Reserved slug if one exists for user’s email, otherwise null
- Check if user’s email has an active reservation
- Pre-fill the slug field if reservation exists
- Lock the slug field to prevent changes
- Mark reservation as “claimed” after workspace creation
- Matches user’s email against active reservations
- Only returns reservations with “reserved” status
- Only returns non-expired reservations
- Case-insensitive email matching
Reservation Flow
Reservation Lifecycle:
Implementation Notes:
- Reservations are stored in
workspaceSlugReservationtable - Status field tracks: “reserved”, “claimed”, “cancelled”, “expired”
- Token is UUID for security
- Email verification prevents unauthorized reservations
- System automatically filters out expired reservations in queries
Reservations help users secure their preferred workspace slug before completing signup, reducing frustration from slug conflicts.