Turn any webhook into an instant Telegram notification — no setup, no dashboard, just a URL.
- Open the bot: @pinghookbot
- Send
/start - Copy your webhook URL
- POST anything to it
That's it.
curl -X POST https://api.pinghook.dev/v1/user/send/{your-api-key} \
-H "Content-Type: application/json" \
-d '{"status": "deploy complete", "env": "production"}'You'll receive this in Telegram instantly:
New Webhook Received
{
"status": "deploy complete",
"env": "production"
}
Supports JSON, plain text, and form data.
Append path segments after your API key to tag where the notification came from.
https://api.pinghook.dev/v1/user/send/{api-key}/github
https://api.pinghook.dev/v1/user/send/{api-key}/n8n/prod
Your Telegram message will show:
📍 Source: n8n / prod
New Webhook Received
{ ...payload... }
Useful when you have multiple workflows or services sending to the same URL.
| Free | |
|---|---|
| Requests | 5 / minute |
| Payload size | 100 KB |
| Message length | 3000 chars (truncated beyond) |
- Python 3.11+
- A Telegram bot token (create one via @BotFather)
- A Supabase project
git clone https://github.com/pinghook/pinghook
cd pinghook
pip install -r requirements.txtCreate a .env file:
TELEGRAM_BOT_TOKEN=your-token
SUPABASE_URL=https://xyz.supabase.co
SUPABASE_KEY=your-supabase-anon-key
BASE_URL=http://localhost:8000Run the contents of schema.sql in your Supabase SQL Editor.
uvicorn app.main:app --reloadRun once after starting the server:
python webhook.pyThis tells Telegram where to send bot updates. Re-run if your BASE_URL changes.
- Connect your GitHub repo as a new Web Service
- Build command:
pip install -r requirements.txt - Start command:
uvicorn app.main:app --host 0.0.0.0 --port $PORT - Add environment variables:
TELEGRAM_BOT_TOKEN,SUPABASE_URL,SUPABASE_KEY,BASE_URL - After deploy, run
python webhook.pyto register the Telegram webhook
- Backend: FastAPI + Uvicorn
- Bot: Aiogram 3.x
- Database: Supabase (PostgreSQL)
- Hosting: Render