Word of the Day (WOTD) is a service for providing a unique and interesting word every day via website and communication services. The code is completely free to use and open-source under the Apache License 2.0.
- A website for displaying the Word of the Day (default port:
443) - A free API for requesting Word of the Day data (default port:
8443) - A Discord bot that messages subscribing users and server channels daily
Warning
The words database in this repository that the script uses only comes with the first 16 words, from 1 January 2025, to 16 January 2025. You must provide your own words or download the public database at https://wotd.site/databases.
Word of the Day comes with extensions you may use in ./src/extensions. The extensions included by default are for providing channels to access Word of the Day. You may make your own extensions by creating a folder with a __init__.py file inside.
The Site extension is in the folder ./src/extensions/site. This extension is for both the main website (wotd.site) and the API (api.wotd.site).
Inside the extension's folder is a config.json file for configuring the site, and a .env file for setting the hashed admin password (hashed with Argon2id)
Admins can append WOTDs to the database by using the web page at /admin/append-word?password={ADMIN_PASSWORD}.
The API has a variety of endpoints for developers to use:
/query?date={date}: Gets the WOTD for a specific date (format: YYYY-MM-DD). If no date is provided, it defaults to the current date./query_previous?date={date}&limit={limit}: Gets a list of previous WOTDs. The date parameter is optional and defaults to the current date. The limit parameter specifies how many previous WOTDs to return (default is 3, maximum is 8)./find_wotd?word={word}: Searches for a specific word in the WOTD database. The word parameter is required.
Note
Displayed URLs (Like the ones shown on the API documentation page) and social links are hard-coded into the site. If you are self-hosting, be sure to replace these with your own data.
The Discord Bot extension is in the folder ./src/extensions/discord_bot. Inside is a config.json file for your bot's configuration, and a .env file for your bot's token. subscribers.db is a database of subscribed server channels and DMs.
You can see the list of commands the Discord bot supports here
Caution
By default, both the website and API will be hosted by starting the script. To change this, you may edit the site configuration settings at ./src/extensions/site/config.json.
git clone https://github.com/Word-of-the-Day-2025/Word-of-the-Day.git
cd Word-of-the-Day
pip3 install -r requirements.txt
sudo bash start.shgit clone https://github.com/Word-of-the-Day-2025/Word-of-the-Day.git
cd Word-of-the-Day
pip install -r requirements.txt
start.bat