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.
This is a Python port of the original no-as-a-service project.
Base URL
http://localhost:3000/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.
Want to run it yourself? It's lightweight and simple.
git clone https://github.com/LavX/no-as-a-service-py.git
cd no-as-a-service-pypip install -r requirements.txtpython main.pyThe API will be live at:
http://localhost:3000/no
You can also change the port using an environment variable:
PORT=5000 python main.pyThe Docker image is automatically built and pushed to GitHub Container Registry on every push to main branch.
docker pull ghcr.io/lavx/no-as-a-service-py:latest
docker run -p 3000:3000 -e PORT=3000 ghcr.io/lavx/no-as-a-service-py:latestdocker build -t no-as-a-service-py .
docker run -p 3000:3000 -e PORT=3000 no-as-a-service-pyCreate a docker-compose.yml:
version: '3.8'
services:
naas:
image: ghcr.io/lavx/no-as-a-service-py:latest
ports:
- "3000:3000"
environment:
- PORT=3000
restart: unless-stoppedThen run:
docker-compose up -dno-as-service-py/
├── main.py # FastAPI application
├── reasons.json # 1000+ universal rejection reasons
├── requirements.txt # Python dependencies
├── Dockerfile # Docker image definition
├── .devcontainer.json # VS Code / Github devcontainer setup
├── .github/
│ └── workflows/
│ └── docker-release.yml # GitHub Actions workflow for GHCR
└── README.md
fastapi==0.109.0
uvicorn[standard]==0.27.0
slowapi==0.1.9If 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.
- FastAPI - Modern, fast web framework for building APIs
- Uvicorn - ASGI server for running FastAPI
- Slowapi - Rate limiting for FastAPI
Original Node.js version created with creative stubbornness by hotheadhacker
This fork is maintained by LavX. Explore more of my projects and services:
- LavX Managed Systems – Enterprise AI solutions, RAG systems, and LLMOps.
- LavX News – Latest insights on AI, Open Source, and emerging tech.
- LMS Tools – 140+ free, privacy-focused online tools for developers and researchers.
- AI Subtitle Translator – LLM-powered subtitle translator using OpenRouter API.
- OpenSubtitles Scraper – Web scraper for OpenSubtitles.org (no VIP required).
- Bazarr (LavX Fork) – Automated subtitle management with OpenSubtitles.org scraper & AI translation.
- JFrog to Nexus OSS – Automated migration tool for repository managers.
- WeatherFlow – Multi-platform weather data forwarding (WU to Windy/Idokep).
- Like4Like Suite – Social media automation and engagement toolkit.
MIT , do whatever, just don't say yes when you should say no.
