A REST/WS wrapper for the official Discord Bot API.


Discord4J is a wrapper for Discord's websocket and REST API. It provides an easy-to-use implementation which has features suitable for both the most experienced and inexperienced Java programmers.

Why use Discord4J?

  • Although not officially maintained or associated with Discord or Hammer & Chisel, it is officially recommended as a compliant API implementation.
  • Discord's bot api is fairly complicated, requiring the use of websockets in addition to REST calls in order to manage discord-related activities. Discord4J abstracts all of this and keeps an internal cache of data which is updated in real time, allowing for a reduction in REST calls which results in faster code.
  • Discord4J is extensively multithreaded, allowing for operations to be executed quickly.
  • There is an extensive event system. This allows for programs to be reactive to all sorts of situations asynchronously.
  • Discord4J is extremely extensible thanks to its module system.
  • There are many utility classes such as RequestBuffer which allows for automatic handling of ratelimits or RequestBuilder which provides a promise-like structure to logic (a la RxJava)
  • Discord4J is still being actively developed by both its current maintainer, austinv11, and the community who provide invaluable feedback and pull-requests. This means it quickly gets updated to support the latest Discord changes (there are always a lot of them).
  • We have our own Discord server! Alternatively, we have a support channel on the Discord API server.

For a more detailed explanation of the API, please take a look at its README on the Github repository.