npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@17secrets/usernames

v0.0.4

Published

Check username availability across all platforms. Simple, fast, and hassle-free.

Downloads

107

Readme

@17secrets/usernames

Check username availability across all platforms. Simple, fast and straightforward.

npm version License: MIT

What works

  • ✅ Check username availability on 10+ platforms (Discord, Instagram, TikTok, YouTube, SoloTo, GitHub, Minecraft, Roblox, Xbox, Steam)
  • ✅ Automatic alternative username suggestions with optional verification
  • ✅ Proxy support with authentication and random selection
  • ✅ TypeScript with full type definitions
  • ✅ Lightweight with minimal dependencies (only undici)

Installation

npm install @17secrets/usernames

Quick Start

TypeScript/ESM

import { Client } from '@17secrets/usernames';

const client = new Client();

// Check a username
const result = await client.discord('myusername');
console.log(result);

CommonJS with async/await

const { Client } = require("@17secrets/usernames");

(async () => {
  const client = new Client();
  const data = await client.github("pqpcara");
  console.log(data);
})();

CommonJS with .then()

const { Client } = require("@17secrets/usernames");

const client = new Client();
client.github('pqpcara').then((info) => console.log(info));

Response Format

All checker methods return a Promise<IResponse>:

interface IResponse {
  platform: string;           // Platform name (e.g., "discord")
  username: string;           // Username checked
  available: boolean | null;  // true/false or null if error
  message: string;            // Descriptive status message
  error?: string | null;      // Error details if any
  suggestions?: string | null; // Comma-separated username suggestions
}

Example response:

{
  "platform": "discord",
  "username": "myusername",
  "available": true,
  "message": "Username is valid",
  "error": null,
  "suggestions": null
}

Supported Platforms

Social Media

  • Discord - Real-time availability checking via Discord API
  • Instagram - Checks via Instagram Web API
  • TikTok - Validates against TikTok's username format and availability
  • YouTube - Checks YouTube channel availability
  • SoloTo - Checks SoloTo platform availability

Gaming Platforms

  • GitHub - Checks GitHub user profiles with HTML parsing
  • Minecraft - Checks Minecraft profiles via Mojang API
  • Roblox - Validates Roblox usernames with CSRF token handling
  • Xbox - Checks Xbox gamertag availability
  • Steam - Checks Steam profile availability

Usage Examples

Check Single Platform

const client = new Client();

// Discord
const discordResult = await client.discord("your_username");
console.log(discordResult);

// Roblox
const robloxResult = await client.roblox("your_username");
console.log(robloxResult);

// Minecraft
const minecraftResult = await client.minecraft("your_username");
console.log(minecraftResult);

// GitHub
const githubResult = await client.github("pqpcara");
console.log(githubResult);

// Instagram
const instagramResult = await client.instagram("your_username");
console.log(instagramResult);

// TikTok
const tiktokResult = await client.tiktok("your_username");
console.log(tiktokResult);

// YouTube
const youtubeResult = await client.youtube("your_username");
console.log(youtubeResult);

// Xbox
const xboxResult = await client.xbox("your_username");
console.log(xboxResult);

// Steam
const steamResult = await client.steam("your_username");
console.log(steamResult);

// SoloTo
const solotoResult = await client.soloto("your_username");
console.log(solotoResult);

With Username Suggestions

Enable automatic username suggestions when a username is taken:

const client = new Client({
  suggestions: {
    enabled: true,
    amount: 5,
    verification: true  // Verify suggestions are actually available
  }
});

const result = await client.discord('taken_username');
console.log(result.suggestions); // "taken_username1, taken_username2, ..."

Options:

  • enabled - Enable suggestions (default: false)
  • amount - Number of suggestions to generate (default: 1)
  • verification - Verify if suggestions are available (default: false, slower but accurate)

With Proxies

Use proxies for all requests with automatic random selection:

const client = new Client();

// Add proxies
client.proxy.proxies
  .add({ host: 'proxy1.com', port: 8080 })
  .add({ host: 'proxy2.com', port: 8081, username: 'user', password: 'pass' });

// Enable proxy usage
client.proxy.enabled(true);

// Now requests use a random proxy from the list
const result = await client.roblox('username');

Proxy Management:

// Add multiple proxies
client.proxy.proxies
  .add({ host: 'proxy1.com', port: 8080 })
  .add({ host: 'proxy2.com', port: 8081 });

// Check proxy count
console.log(client.proxy.proxies.size); // 2

// List all proxies
console.log(client.proxy.proxies.list());

// Clear all proxies
client.proxy.proxies.clear();

// Check if proxies are enabled
console.log(client.proxy.enabled()); // true/false

// Toggle proxy usage
client.proxy.enabled(false);

Complete Example

import { Client } from '@17secrets/usernames';

const client = new Client({
  suggestions: {
    enabled: true,
    amount: 3,
    verification: true
  }
});

// Add proxies
client.proxy.proxies
  .add({ host: 'proxy1.com', port: 8080 })
  .add({ host: 'proxy2.com', port: 8081 });

client.proxy.enabled(true);

// Check username
const result = await client.roblox('my_username');

if (result.available) {
  console.log('✅ Username available!');
} else {
  console.log('❌ Username unavailable');
  if (result.suggestions) {
    console.log('💡 Try:', result.suggestions);
  }
}

License

MIT © 2026

Links