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 🙏

© 2024 – Pkg Stats / Ryan Hefner

spacebots

v1.2.0

Published

Space Bots API to post stats and more, work only on SBL server for join https://discord.gg/jkwDfC7

Downloads

99

Readme

This is a helper for the SBL API endpoint docs, which can be found here

Endpoints

Stat retrieval

GET /api/bots/:id

Returns information about a single bot whose user ID matches the id url param\

Response

A JSON structures as:

{
  id: string;                // The bot's user ID
  prefix: string;            // The bot's prefix
  owner: Array<string>;      // An array of the bot's owners' IDs, can sometimes be more than one ID
  library: string;           // The library the bot uses
  description: string;       // The bot's short description
  longDescription: string;   // The bot's long description
  certified: boolean;        // Whether the bot is certified or not
  pageURL: string;           // The bot's page on SBL
  website?: string;          // A URL leading to the bot's website
  support?: string;          // The code for the invite to the bot's support server
  github?: string;           // The bot's GitHub repository
  servers?: number;          // The bot's server count, (sometimes doesn't exist)
  users?: number;            // The bot's user count, (sometimes doesn't exist)
  votes: number;             // The amount of users that voted for the bot on the website, can be 0
}

Error

When there's no bot with the specified ID

Status code: 404 Not Found
Response:

{
  "error": {
    "code": 404,
    "message": "A client with the given ID does not exist!"
  }
}

Stat posting

POST /api/bots/:id

Posts stats for the bot whose user ID matches the id url param\

Headers

  • Authorization | The SBL API key of the bot

Body

Should be a JSON structured as:

{
  guilds: number; // Bot's server count (required, can be 0)
  users?: number; // Bot's user count (optional, can't be 0)
}

Response

A JSON structured as:

{
  servers: number; // The newly-posted server count
  users?: number;  // The newly-posted / already stored user count, if exists
}

Error

When there's no bot with the specified ID

Status code: 404 Not Found
Response:

{
  "error": {
    "code": 404,
    "message": "A client with the given ID does not exist!"
  }
}
When there's no Authorization header

Status code: 401 Unauthorized
Response:

{
  "error": {
    "code": 401,
    "message": "No API key in headers!"
  }
}
When the Authorization header doesn't match the bots API key

Status code: 403 Forbidden
Response:

{
  "error": {
    "code": 403,
    "message": "The provided API key is invalid!"
  }
}
When there's no guild count (guilds field) in the requests body

Status code: 400 Bad Request
Response:

{
  "error": {
    "code": 400,
    "message": "No guild count in the request's body!"
  }
}
When the guild count (guilds field) in the requests body is not a number

Status code: 400 Bad Request
Response:

{
  "error": {
    "code": 400,
    "message": "Invallid guild count in the request's body!"
  }
}
When the (optional) user count (users field) in the requests body is present and is not a number

Status code: 400 Bad Request
Response:

{
  "error": {
    "code": 400,
    "message": "Invallid user count in the request's body!"
  }
}