Other Languages

There is no SDK yet for Python, Go, Ruby, Java, C#, or Rust - integrate directly against the wire API. This is fully supported (the in-dashboard setup guide generates raw-REST recipes for exactly these languages).

A complete integration is:

  1. POST {{baseUrl}}/api/v1/bugwatch/ingest with x-api-key: KEYID:secret and Content-Type: application/x-ndjson - one JSON event per line (Server Ingest API documents every field).
  2. Batch client-side (e.g. flush every 5 s or 50 events, cap 5000/request, 2 MB body).
  3. Set eventId per event so retries dedupe server-side (10-minute window).
  4. Optionally add release, user, tags, exception.stacktrace.frames for grouping and symbolication.

Minimal Python example:

import json, time, urllib.request

def send(events):
    body = "\n".join(json.dumps(e) for e in events).encode()
    req = urllib.request.Request(
        "https://api.newinstance.cloud/api/v1/bugwatch/ingest",
        data=body, method="POST",
        headers={"x-api-key": KEY, "Content-Type": "application/x-ndjson"},
    )
    urllib.request.urlopen(req, timeout=15)

send([{ "level": 50, "time": int(time.time()*1000),
        "message": "Payment gateway timeout", "eventId": "py-9f2c1ab-001",
        "release": "2.4.1", "tags": {"service": "billing"} }])

If your stack already speaks OpenTelemetry, prefer OTLP (OpenTelemetry, Prometheus & Tracing) - every OTel language SDK works with BugWatch unchanged.