Appearance
Slugs
Slugs default to a short base62 string. You can override with a custom slug per link.
Rules
- The slug is unique workspace-wide (DB-level unique index).
- No length limit is enforced in the model — keep it under 64 chars in practice for usability.
- Allowed characters depend on the redirect path; lowercase alphanumeric and hyphens are universally safe.
Custom slug
json
POST /api/v1/short-links
{ "url": "https://example.com/long-target", "slug": "spring-promo" }If the slug collides with an existing one, the API returns 409 Conflict.
Auto-generated slug
Omit the slug field and the API picks a base62 string of ~6 characters. The response includes the assigned slug.
Rotating the destination
Slugs are stable; url can change. Update via PUT /api/v1/short-links/:slug (or wherever your client surfaces it) — clicks already in flight redirect to the new target on the next hit.