A Node.js tool that monitors eBay stores and searches for new listings, sending notifications to Discord when new items are found.
- Monitor multiple eBay stores for new listings
- Monitor specific eBay search URLs for new listings
- Configurable check intervals for each store and search
- Discord notifications with item details
- Support for both eBay API (future) and web scraping methods
- Interactive configuration manager
-
Clone this repository
-
Install dependencies:
npm install
-
Create a
.envfile with your configuration:DISCORD_WEBHOOK_URL=your_discord_webhook_url EBAY_APP_ID=your_ebay_app_id EBAY_CERT_ID=your_ebay_cert_id EBAY_DEV_ID=your_ebay_dev_id EBAY_SANDBOX=true # Set to false for production -
Configure your stores and searches using the interactive configuration manager:
node config-manager.js
This will let you add and configure your stores and searches. Exit when you're done configuring.
-
Start the scanner:
node index.js
This will start monitoring your configured stores and searches.
The configuration manager (config-manager.js) is used to set up and modify your monitoring configuration. You only need to run it when you want to make changes to your configuration.
node config-manager.jsAvailable options:
- List all stores
- List all searches
- Add new store
- Add new search
- Delete store
- Delete search
- Toggle store status
- Toggle search status
- Update check interval
- Exit
The main scanner (index.js) is what actually monitors eBay and sends notifications. This is the program that needs to keep running to monitor your stores and searches.
node index.jsIf you want to make changes to your configuration:
- Stop the scanner (Ctrl+C)
- Run the configuration manager to make your changes
- Start the scanner again
Alternatively, you can manually edit config.json:
{
"stores": [
{
"id": "store_username",
"name": "Store Name",
"enabled": true,
"interval": 5
}
],
"searches": [
{
"name": "Search Name",
"url": "https://www.ebay.com/sch/i.html?_nkw=search+terms&_sop=10",
"enabled": true,
"interval": 10
}
]
}- Enter the store's eBay username
- Provide a display name for notifications
- Set the check interval in minutes
- Choose whether to enable the store
- Enter a name for the search
- Provide the full eBay search URL
- Set the check interval in minutes
- Choose whether to enable the search
- View all configured stores and searches
- Enable/disable individual stores and searches
- Update check intervals
- Delete unwanted entries
For better performance and reliability, you can use the eBay API instead of web scraping:
- Create an eBay developer account at https://developer.ebay.com
- Create a new application to get your API credentials
- Add the credentials to your
.envfile:EBAY_APP_ID=your_app_id EBAY_CERT_ID=your_cert_id EBAY_DEV_ID=your_dev_id
When creating search URLs to monitor:
- Use the
_sop=10parameter to sort by newly listed - Add any filters you want (e.g.,
LH_BIN=1for Buy It Now) - Set price ranges with
_udloand_udhi - Add category filters with
_sacat - Use
+for spaces in search terms
Example search URL:
https://www.ebay.com/sch/i.html?_nkw=gaming+console&_sacat=0&_sop=10&LH_BIN=1&_udlo=100&_udhi=500
- The scanner will check each store and search at its configured interval
- New items are detected by comparing against previously seen items
- Discord notifications include item title, price, condition, location