Product · HTTP API
HTTP API
Everything the SDKs do is a plain JSON contract — you can send events with curl from any language or system.
Ingest an event
POST /api/{project_id}/store/ authenticated by the X-Bugwatch-Key header. The server groups events into issues by fingerprint and replies 200 with {"event_id": "…", "issue_id": 123}.
curl
curl -X POST https://bugwatch-api.loadmindx.com/api/1/store/ \
-H "X-Bugwatch-Key: <public_key>" \
-H "Content-Type: application/json" \
-d '{
"level": "error",
"message": "Something broke",
"exception": {
"type": "ValueError",
"value": "bad input",
"stacktrace": { "frames": [] }
},
"environment": "production",
"release": "v1.2.3",
"platform": "curl"
}'User feedback
Used by the feedback widget; creates an issue like any other event so your team is alerted.
curl
curl -X POST https://bugwatch-api.loadmindx.com/api/1/feedback/ \
-H "X-Bugwatch-Key: <public_key>" \
-H "Content-Type: application/json" \
-d '{
"message": "The checkout button does nothing on Safari",
"url": "https://example.com/checkout",
"user_agent": "Mozilla/5.0 ..."
}'Analytics (session auth)
HTTP
GET /api/projects/{id}/analytics/?days=14
Authorization: Bearer <session>
# totals.events | issues | unresolved | resolved | ignored
# series[] date, total, error, warning, info, fatal
# by_level | by_release | by_environment | by_platform
# recent_issues[]Levels & limits
- Levels:
debug,info,warning,error,fatal. - HTTPS only — plain HTTP is rejected in production.
- Projects have a monthly event quota per plan; over-quota ingests get
429.
