Why format rules vary
Every platform has its own rules for what characters are allowed, where dots can appear, whether consecutive underscores are permitted, and how capitalization is treated. A handle with a period can pass on Threads and fail on Twitch; one with a hyphen can pass on GitHub and fail on Instagram.
The safest cross-platform pattern
If you want one handle that passes the format rules on every platform we check:
- 5-15 characters. Snapchat and X (Twitter) set the 15-character ceiling; Telegram and X (Twitter) need at least 5.
- Lowercase letters and numbers. Capital letters are rejected by npm.
- Start with a letter. A leading digit is rejected by Snapchat and Telegram.
- Skip separators if you can. The underscore is rejected by Bluesky and GitHub. The period is rejected by GitHub, Kick, Pinterest, Roblox, Telegram, Twitch, and X (Twitter). The hyphen is rejected by Instagram, Kick, Pinterest, Roblox, Telegram, Threads, TikTok, Twitch, and X (Twitter). If you need one, the underscore is rejected by the fewest.
A plain lowercase handle of letters and numbers in that length range passes format validation on every platform we check. Type it into the validator above to confirm.
Username rules by platform
Every platform in the validator, with its sign-up length and allowed characters. Each rule links the official page it comes from; where a platform doesn’t publish a rule, the note says what we use instead.
- Bluesky: 3-253 characters; letters, numbers, hyphens (-) - case-insensitive (stored lowercase). Short form like "alice" (auto-appends .bsky.social) or full DNS like "alice.bsky.social". The protocol allows 253 characters, but Bluesky's help center caps custom-domain handles at 30. Rule source
- GitHub: 1-39 characters; letters, numbers, hyphens (-) - no leading, trailing, or consecutive hyphens. Rule source
- Instagram: 1-30 characters; letters, numbers, periods (.), underscores (_) - no consecutive periods, cannot start or end with a period. Instagram's help center doesn't publish these rules; they are what Instagram's own sign-up form enforces (checked October 2026). Rule source
- Kick: 4-25 characters; letters, numbers, and underscores (_). Kick publishes only the 25-character maximum. Its sign-up form confirmed the character set and maximum in October 2026; the 4-character minimum was observed there in August 2026. Rule source
- LinkedInRules only, not checked: 3-100 characters; letters, numbers, hyphens (-). Rule source
- Linktree: 1-50 characters; letters, numbers, periods (.), underscores (_), hyphens (-). Linktree doesn't publish exact length or character limits. Rule source
- npm: 1-214 characters; lowercase letters, numbers and hyphens (-). npm's docs only mention lowercase letters, hyphens and numbers; its own validator also accepts periods, underscores and ! ~ * ( ). Rule source
- Pinterest: 3-30 characters; letters, numbers, underscores (_) - must include at least one letter. Rule source
- RedditChecking paused: 3-20 characters; letters, numbers, underscores (_), hyphens (-). Reddit Help does not state the length or character limits. Rule source
- Roblox: 3-20 characters; letters, numbers, at most one underscore (_) - not as the first or last character. Rule source
- Snapchat: 3-15 characters; letters, numbers and one hyphen (-), underscore (_) or period (.) - must start with a letter and end with a letter or digit. Rule source
- SubstackChecking paused: 4-32 characters; letters and numbers only. Rule source
- Telegram: 5-32 characters; letters, numbers, underscores (_) - must start with a letter, no consecutive or trailing underscores. Telegram publishes 5-32 characters, a-z, 0-9 and underscores; the start, end and double-underscore rules are not published. Rule source
- Threads: 1-30 characters; letters, numbers, periods (.), underscores (_) - no consecutive periods, cannot start or end with a period. Threads doesn't publish its username rules; profiles created with Instagram follow Instagram's. Rule source
- TikTok: 2-24 characters; letters, numbers, underscores (_) and periods (.) - cannot end with a period. Rule source
- Twitch: 4-25 characters; letters, numbers, underscores (_). Twitch does not publish which characters a username may start with. Rule source
- X (Twitter): 5-15 characters; letters, numbers, and underscores (_) only. Rule source
- YouTube: 3-30 characters; letters and numbers in any of YouTube's 75 supported languages, underscores (_), hyphens (-), periods (.), middle dot (·) - cannot start or end with a separator. Rule source
Labelled rows are reference only: we don't check LinkedIn availability at all, and checks on Reddit and Substack are paused, so their rules are here for reference.
Building a validator of your own? A machine-readable version of these rules - length limits, regex patterns, and platform quirks - is published as a free dataset at github.com/NameSniperPro/username-rules (CC BY 4.0).