Everything you need to know about BunnyLogs.
/live/).
You get a UUID-based URL like /live/<uuid>.
POST log entries to that URL from anywhere — curl, Python, a CI pipeline, or a chat message.
pip install bunnylogs) and Flutter, but they are convenience wrappers
around the same HTTP API.
https://bunnylogs.com/live/<uuid> with
Content-Type: application/json:
curl -X POST https://bunnylogs.com/live/<uuid> \
-H 'Content-Type: application/json' \
-d '{"message":"deploy started","level":"INFO","program":"ci"}'
message (required) — the log text. Only this field counts toward billing.level — severity string, e.g. DEBUG, INFO, WARNING, ERROR.program — the source service or component name.timestamp — ISO 8601 datetime; defaults to server receive time if omitted.[
{"message": "step 1 done", "level": "INFO"},
{"message": "step 2 done", "level": "INFO"}
]
/live/<uuid> URL — anyone with it can watch the stream,
no account required. For access control, use the team sharing feature in settings to
invite members with view-only or post permissions, so access can be revoked at any time.
<your-username>@bunnylogs.com. The body of the email
is parsed and each line becomes a separate log entry in your email logspace.
The subject line is ignored. You can send from any email client or automated system.
/otlp/<uuid>/v1/logs.
Configure your OTel SDK or collector to export logs there —
no authentication header required, just the UUID in the path.
See the OpenTelemetry guide for setup details.
ERROR/live/<uuid>/history lets you full-text search
all indexed log entries within the 30-day window. Filter by level, program, and message text,
or jump directly to a specific timestamp.
message field in each log entry.
Metadata fields (level, program, timestamp) are not counted.
Billing rounds up to the next full GB — 1.1 GB costs the same as 2 GB (€10).
429 Too Many Requests until the month resets.
Your bill cannot exceed the cap you set.
Still have questions?
Contact support