Learn how to send logs to Bunny Logs.
Send an HTTP POST request to your live log stream URL. CSRF protection is disabled on this endpoint so you can POST from any external service.
POST https://bunnylogs.com/live/<uuid>
| Parameter | Required | Description |
|---|---|---|
message |
Yes | The log message text. |
level |
No | Log level (e.g. INFO, WARN, ERROR). Defaults to INFO. |
program |
No | Name of the program or service sending the log. Defaults to api. |
timestamp |
No | ISO 8601 timestamp. Defaults to the server time at receipt. |
curl
curl -d "message=deployment finished" \
-d "level=INFO" \
-d "program=deploy-bot" \
https://bunnylogs.com/live/<uuid>
Python (requests)
import requests
requests.post(
"https://bunnylogs.com/live/<uuid>",
data={
"message": "deployment finished",
"level": "INFO",
"program": "deploy-bot",
},
)
Node.js (fetch)
await fetch("https://bunnylogs.com/live/<uuid>", {
method: "POST",
body: new URLSearchParams({
message: "deployment finished",
level: "INFO",
program: "deploy-bot",
}),
});
Bunny Logs accepts inbound email via LMTP (delivered by Maddy). Any email sent to a
<uuid>@bunnylogs.com address is parsed and broadcast to that
stream.
<uuid>@bunnylogs.com
The subject of the email becomes the log message.
The From header is used as the program field.
The log level defaults to INFO.
echo "Subject: build passed" | sendmail <uuid>@bunnylogs.com
import smtplib
from email.message import EmailMessage
msg = EmailMessage()
msg["From"] = "ci-pipeline"
msg["To"] = "<uuid>@bunnylogs.com"
msg["Subject"] = "Tests passed on main"
with smtplib.SMTP("bunnylogs.com", 25) as s:
s.send_message(msg)
The BunnyLogs Slack bot can be added to any channel and will forward every message to your personal BunnyLogs stream. Each BunnyLogs account has one fixed stream UUID dedicated to Slack — it is auto-generated when you connect and never changes.
| BunnyLogs field | Source |
|---|---|
message | Message text |
program | Sender's Slack display name |
level | Always INFO |
timestamp | Slack message timestamp (UTC) |
The bot is a standalone Python process in the slackbot/ directory.
It uses Socket Mode so no public URL is required.
1. Create a Slack app at
api.slack.com/apps.
Enable Socket Mode and create an App-Level Token
(connections:write scope) — this is your SLACK_APP_TOKEN.
2. Add OAuth scopes under OAuth & Permissions → Bot Token Scopes:
channels:history channels:read groups:history users:read
3. Subscribe to bot events under Event Subscriptions:
message.channels message.groups
4. Install the app in your workspace and copy the
Bot User OAuth Token (SLACK_BOT_TOKEN).
5. Start the bot:
cd slackbot
pip install -r requirements.txt
cp .env.example .env
# Fill in SLACK_APP_TOKEN, SLACK_BOT_TOKEN, BUNNYLOGS_API_SECRET
python bot.py
6. Add the bot to a channel in Slack:
/invite @YourBotName
Messages in that channel will immediately start appearing in your stream.