• Stars
    star
    446
  • Rank 97,888 (Top 2 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created over 4 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Up to date Discord API Typings, versioned by the API version

Discord API Types

discord-api-types

GitHub npm deno Patreon Donate Ko-fi Donate GitHub Sponsors Powered by Vercel

Simple type definitions for the Discord API.

Installation

Install with npm / yarn / pnpm:

npm install discord-api-types
yarn add discord-api-types
pnpm add discord-api-types

Usage

You can only import this module by specifying the API version you want to target. Append /v* to the import path, where the * represents the API version. Below are some examples

const { APIUser } = require('discord-api-types/v10');
// TypeScript/ES Module support
import { APIUser } from 'discord-api-types/v10';

You may also import just certain parts of the module that you need. The possible values are: globals, gateway, gateway/v*, payloads, payloads/v*, rest, rest/v*, rpc, rpc/v*, utils, utils/v*, voice, and voice/v*. Below are some examples

const { GatewayVersion } = require('discord-api-types/gateway/v10');
// TypeScript/ES Module support
import { GatewayVersion } from 'discord-api-types/gateway/v10';

Note: The v* exports (discord-api-types/v*) include the appropriate version of gateway, payloads, rest, rpc, and utils you specified, alongside the globals exports

Deno

We also provide typings compatible with the deno runtime. You have 3 ways you can import them:

  1. Directly from GitHub
// Importing a specific API version
import { APIUser } from 'https://raw.githubusercontent.com/discordjs/discord-api-types/main/deno/v10.ts';
  1. From deno.land/x
// Importing a specific API version
import { APIUser } from 'https://deno.land/x/discord_api_types/v10.ts';
  1. From skypack.dev
// Importing a specific API version
import { APIUser } from 'https://cdn.skypack.dev/discord-api-types/v10?dts';

Project Structure

The exports of each API version is split into three main parts:

  • Everything exported with the API prefix represents a payload you may get from the REST API or the Gateway.

  • Everything exported with the Gateway prefix represents data that ONLY comes from or is directly related to the Gateway.

  • Everything exported with the REST prefix represents data that ONLY comes from or is directly related to the REST API.

    • For endpoint options, they will follow the following structure: REST<HTTP Method><Type><Query|(JSON|FormData)Body|Result> where the type represents what it will return.

      • For example, RESTPostAPIChannelMessageJSONBody or RESTGetAPIGatewayBotInfoResult.

      • Some exported types (specifically OAuth2 related ones) may not respect this entire structure due to the nature of the fields. They will start with either RESTOAuth2 or with something similar to REST<HTTP Method>OAuth2

    • If a type ends with Result, then it represents the expected result by calling its accompanying route.

      • Types that are exported as never usually mean the result will be a 204 No Content, so you can safely ignore it. This does not account for errors.
  • Anything else that is miscellaneous will be exported based on what it represents (for example the REST route object).

  • There may be types exported that are identical for all versions. These will be exported as is and can be found in the globals file. They will still be prefixed accordingly as described above.

A note about how types are documented: This package will add types only for known and documented properties that are present in Discord's API Documentation repository, that are mentioned in an open pull request, or known through other means and have received the green light to be used. Anything else will not be documented (for example client only types).

With that aside, we may allow certain types that are not documented in the API Documentation repository on a case by case basis. They will be documented with an @unstable tag and are not subject with the same versioning rules.

More Repositories

1

discord.js

A powerful JavaScript library for interacting with the Discord API
TypeScript
24,119
star
2

guide

The official guide for discord.js, created and maintained by core members of its community.
JavaScript
1,402
star
3

Commando

Official command framework for discord.js
JavaScript
500
star
4

RPC

A simple RPC client for Discord
JavaScript
438
star
5

voice

Implementation of the Discord Voice API for discord.js and other JS/TS libraries
TypeScript
320
star
6

discord.js-modules

Modularisation of discord.js (WIP)
TypeScript
200
star
7

website

The discord.js site what else
Vue
185
star
8

opus

Native opus bindings for node
C++
173
star
9

collection

Utility data structure used in Discord.js
TypeScript
115
star
10

builders

A collection of builders that you can use when creating your bot.
TypeScript
97
star
11

docgen

The docs.json generator for discord.js and its related projects
JavaScript
65
star
12

discord-utils-bot

Discord slash command utility for discord.js bot developer support
TypeScript
56
star
13

Commando-guide

Beginner's guide for discord.js-commando.
55
star
14

discord.js-typings

Official TypeScript type definitions for Discord.js
TypeScript
49
star
15

voicelink

29
star
16

uws

Fork of node.js bindings for uWebSockets.
C++
29
star
17

discord-toolkit-bot

Discord bot application providing useful utilities to the discord.js support server
TypeScript
25
star
18

resource-webhooks

A collection of webhooks to update our resources on discord
TypeScript
20
star
19

voice-examples

A collection of examples of how to use @discordjs/voice in your projects
TypeScript
15
star
20

action-eslint

TypeScript
12
star
21

docs

Documentation files
TypeScript
11
star
22

webhook-filter

Filters out push events for specific repositories/branches from a GitHub webhook
JavaScript
11
star
23

gh-discord-middleware

TypeScript
8
star
24

action-docs

Shell
6
star
25

.github

Here lies our profile.
2
star
26

action-webpack

Shell
2
star