Docs & quickstart
Quickstart
# 1. Get a project. Hosted: checkout (or the free signup) provisions
# it instantly — the claim page reveals your API key + DSN once:
# https://lifeofmorr.github.io/bugflat/claim.html
# Self-hosted: create one with the admin token:
curl -X POST localhost:5000/api/v1/projects \
-H 'X-Admin-Token: $BUGFLAT_ADMIN_TOKEN' \
-H 'Content-Type: application/json' -d '{"name":"my-app"}'
# 2. Send an event
curl -X POST localhost:5000/api/v1/events \
-H 'X-API-Key: bf_...' -H 'Content-Type: application/json' \
-d '{"exception_class":"ZeroDivisionError","message":"division by zero"}'
# 3. Open the dashboard: http://localhost:5000/?api_key=bf_...
API reference
- POST /api/v1/events — ingest (project API key). 202 with issue_id + fingerprint.
- GET /api/v1/issues — list with stats. POST /api/v1/issues/{id}/status — triage.
- POST /api/v1/projects — operator provisioning (admin token when BUGFLAT_ADMIN_TOKEN is set).
- POST /api/v1/claim — after checkout, exchange the session id in the success URL for your project ID, API key and DSN (revealed once). POST /api/v1/signup/free — an instant Free project, no card. POST /api/v1/stripe/webhook — Stripe's provisioning channel (signature-verified, automatic).
- POST /api/{project_id}/envelope/ and /api/{project_id}/store/ — Sentry-compatible ingest (DSN public key). Sessions/transactions are counted, not stored.
- PATCH /api/v1/projects/{id} — set the project's Slack alert webhook. GET /api/v1/issues/{id}/event — latest sampled payload.
- GET /health — liveness probe.
- Full reference: OPENAPI.md in the repo.
The complete reference (every endpoint/command with method, path, auth, and example request/response) ships as OPENAPI.md in the product repo.
Already on Sentry? Swap the DSN
Keep your stock @sentry/* SDKs. Change only the DSN to https://<public-key>@<bugflat-host>/<project-id> (the public key is the user part of the DSN your claim page revealed) and error events land in BugFlat, grouped by the same fingerprint pipeline as native events. No code change, no new SDK.
Support
Questions? Contact us — a human reads every message.