Other languages — direct REST integration
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:
POST {{baseUrl}}/api/v1/bugwatch/ingestwithx-api-key: KEYID:secretandContent-Type: application/x-ndjson— one JSON event per line (Ingest & Errors documents every field).- Batch client-side (e.g. flush every 5 s or 50 events, cap 5000/request, 2 MB body).
- Set
eventIdper event so retries dedupe server-side (10-minute window). - Optionally add
release,user,tags,exception.stacktrace.framesfor 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) — every OTel language SDK works with BugWatch unchanged.