Preview environment

interface RESTOptions

export interface RESTOptions

Options to be passed when creating the REST instance

agent : Dispatcher | null

The agent to set globally

api : string = 'https://discord.com/api'

The base api path, without version

authPrefix : 'Bearer' | 'Bot' = 'Bot'

The authorization prefix to use for requests, useful if you want to use bearer tokens

cdn : string = 'https://cdn.discordapp.com'

The cdn path

globalRequestsPerSecond : number = 50

How many requests to allow sending per second (Infinity for unlimited, 50 for the standard global limit used by Discord)

handlerSweepInterval : number = 3_600_000

The amount of time in milliseconds that passes between each hash sweep. (defaults to 1h)

hashLifetime : number = 86_400_000

The maximum amount of time a hash can exist in milliseconds without being hit with a request (defaults to 24h)

hashSweepInterval : number = 14_400_000

The amount of time in milliseconds that passes between each hash sweep. (defaults to 4h)

headers : Record<string, string> = {}

Additional headers to send for all API requests

invalidRequestWarningInterval : number = 0

The number of invalid REST requests (those that return 401, 403, or 429) in a 10 minute window between emitted warnings (0 for no warnings). That is, if set to 500, warnings will be emitted at invalid request number 500, 1000, 1500, and so on.

mediaProxy : string = 'https://media.discordapp.net'

The media proxy path

The extra offset to add to rate limits in milliseconds

rejectOnRateLimit : RateLimitQueueFilter | string[] | null = null

Determines how rate limiting and pre-emptive throttling should be handled. When an array of strings, each element is treated as a prefix for the request route (e.g. /channels to match any route starting with /channels such as /channels/:id/messages) for which to throw RateLimitErrors. All other request routes will be queued normally

retries : number = 3

The number of retries for errors with the 500 code, or errors that timeout

timeout : number = 15_000

The time to wait in milliseconds before a request is aborted

userAgentAppendix : string = DefaultUserAgentAppendix

Extra information to add to the user agent

version : string = '10'

The version of the API to use

makeRequest() : Promise<ResponseLike>

The method called to perform the actual HTTP request given a url and web fetch options For example, to use global fetch, simply provide makeRequest: fetch