Documentation

Everything you need to build, customize, and manage your LARP profile.

Getting started

From signup to a live page in a few minutes.

Create your account

Register with a username (3–20 characters, letters, numbers, and underscores) and a password of at least 6 characters. Your page goes live immediately at larp.link/yourusername.

Set your identity

In Dashboard → Overview, set a display name and bio. The display name is what visitors see; your username stays the URL.

Add links and socials

Dashboard → Links adds titled buttons in any order. Dashboard → Socials adds recognized platform icons that render automatically.

Your UID

Every account gets a permanent UID in signup order — lower numbers mean you were here earlier. It never changes and is never reused, even if an account is deleted. Hide it any time in Appearance.

Customizing your page

Appearance controls almost every pixel of your profile.

Backgrounds

Use a solid color, gradient, image, or video. Uploads go up to 50MB for backgrounds; you can also paste an external media URL instead of uploading.

Layouts and cards

Choose from centered, compact, wide, minimal, and portfolio layouts, then pick a card style — glass, solid, outline, luxury, neon, frosted, shadow, or raw.

Effects

Username effects include glitch, rainbow, typewriter, neon, glow, flicker, wave, gradient, bounce, shake, and outline. Cursor glow, particles, box tilt, and animated borders are toggled separately.

Music

Upload an audio file (up to 20MB) or embed Spotify, SoundCloud, or YouTube. Autoplay is opt-in and browsers may still require a click first.

Badges

Two kinds of badges, clearly distinguished.

Custom badges (free)

Create your own badges in Dashboard → Badges. Pick a label, an icon, and any color. They are free, instant, and cosmetic.

Awarded badges

Verified, staff, premium, OG, and similar badges are granted by administrators and cannot be self-assigned. They render distinctly from custom badges so nothing you make can imply verification.

Display options

Appearance → badge display switches between icon-only, labeled, pill, or hidden. You can also hide custom badges while keeping awarded ones visible.

Views and discovery

How your numbers are counted and where you show up.

Unique views

One view is counted per visitor location and browser fingerprint, not per page load — refreshing your own page will not inflate it.

Discover and Leaderboard

Public profiles appear on Discover, and the Leaderboard ranks by view count. Your email is never shown on either.

View counter placement

Position the counter under your name, in the footer, inside metadata, or pinned to any page corner.

Account and data

Credentials, storage, and deletion.

Passwords

Passwords are stored as salted scrypt hashes and never in plain text. Sessions use signed, HTTP-only cookies that expire after about 7 days.

Storage

Profiles persist in the configured store (Vercel Blob, Upstash Redis, or Netlify Blobs). Check /status to confirm your deployment is persisting writes.

Deleting your account

Account deletion is handled by an administrator and confirmed with a single-use token valid for 10 minutes. Contact support to start the process.

More resources

Public API

Profiles, the directory and the badge catalogue are readable as JSON. Public endpoints need no credentials; anything under /me takes a bearer token issued per account. The index lives at /api.

GET/api/v1/profiles/{username}A public profile document
GET/api/v1/profiles/{username}/linksThe links on a profile
GET/api/v1/directoryPaginated public directory
GET/api/v1/leaderboardMost-viewed profiles
GET/api/v1/badgesBadge catalogue
GET/api/v1/meThe token owner's account
PATCH/api/v1/me/profileUpdate the token owner's profile
GET/api/v1/vibesCurrent vibes

Example

curl https://larp-bio.vercel.app/api/v1/profiles/yourname

curl https://larp-bio.vercel.app/api/v1/me   -H "Authorization: Bearer <token>"

Rate limit: 120 requests per minute, per token or IP. Errors come back as{ "error": { "code", "message" } }with the matching HTTP status.