A simple API to validate email addresses and keepthrowaway domains out
You're building something great - maybe it's a newsletter, an app, or a community. Everything seems perfect until fake emails start showing up. These throwaway accounts mess up your data and clog your user list. Pretty annoying, isn't it?
We hit this same wall before. That's why we created NoMoreJunk - a simple tool that spots disposable emails instantly. No more fake users sneaking into your project.
Redis caching for lightning-fast performance
Detects similar-looking domains and adds to blocklist
Auto-sync whitelist and blocklist from GitHub
Created using Hono.js for reliable & secure APIs
First make sure, you've installed all the dependencies using bun
Terminal
bun installAdd these into your '.env' file
.env
PORT=3000
REDIS_URL=redis://localhost:6379
POSTGRES_URL=your_postgres_url
JWT_SECRET=your_jwt_secret
ALLOW_LIST_URL=your_allow_list_url
BLOCK_LIST_URL=your_block_list_url
Start the development server engine
Terminal
bun run devTerminal
bun generateThis will generate migrations for the database
Terminal
bun run db:pushThis will push changes into the database
Verify Email Endpoint
Terminal
curl --request POST \
--url https://api.nomorejunk.com/verify-email \
--header 'Authorization: Bearer <your-token>' \
--header 'content-type: application/json' \
--data '{
"email": "user@example.com"
}'
Response 201:
{
"status": "success",
"disposable": false,
"reason": "Domain allowlisted",
"domain": "example.com",
"message": "Email address is valid and safe to use"
}
Response 400:
{
"status": "error",
"message": "Invalid email format"
}GET /sync-domains
– Sync domains from GitHub
GET /audit-logs
– View check history (supports pagination)
GET /refresh-cache
– Manually refresh Redis cache
GET /audit-logs/:email
– Check history for specific email
Runtime
Framework
Database
Cache
Language