Ever needed a graceful way to say “no”?
This tiny API returns random, generic, creative, and sometimes hilarious rejection reasons — perfectly suited for any scenario: personal, professional, student life, dev life, or just because.
Built for humans, excuses, and humor.
Base URL
https://no.nintendohomebrew.com/no
Method: GET
Rate Limit: 120 requests per minute per IP
GET /no{
"reason": "This feels like something Future Me would yell at Present Me for agreeing to."
}Use it in apps, bots, landing pages, Slack integrations, rejection letters, or wherever you need a polite (or witty) no.
Refer to upstream
no-as-service/
├── index.js # Express API
├── reasons.json # 1000+ universal rejection reasons
├── package.json
├── .devcontainer.json # VS Code / Github devcontainer setup
└── README.md
For reference, here’s the package config:
{
"name": "no-as-service",
"version": "1.0.0",
"description": "A lightweight API that returns random rejection or no reasons.",
"main": "index.js",
"scripts": {
"start": "node index.js"
},
"author": "hotheadhacker",
"license": "MIT",
"dependencies": {
"express": "^4.18.2",
"express-rate-limit": "^7.0.0"
}
}If you open this repo in Github Codespaces, it will automatically use .devcontainer.json to set up your environment. If you open it in VSCode, it will ask you if you want to reopen it in a container.
Want to use no-as-a-service in your own project? Check out the usage section in this README and start returning "no" like a pro.
Created with creative stubbornness by hotheadhacker
MIT — do whatever, just don’t say yes when you should say no.
