β No-as-a-Service
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.
π API Usage
Base URL
https://no.nintendohomebrew.com/no
Method: GET
Rate Limit: 120 requests per minute per IP
π Example Request
GET /no
β Example Response
{
"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.
π οΈ Self-Hosting
Refer to upstream
π Project Structure
no-as-service/
βββ index.js # Express API
βββ reasons.json # 1000+ universal rejection reasons
βββ package.json
βββ .devcontainer.json # VS Code / Github devcontainer setup
βββ README.md
π¦ package.json
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"
}
}
β Devcontainer
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.
π€ Author
Created with creative stubbornness by hotheadhacker
π License
MIT β do whatever, just donβt say yes when you should say no.
