Quick answer: Send a POST to https://api.bugnet.io/api/bugs/submit with your project's key in the X-API-Key header and a JSON body with at least a title and description. Optional fields cover priority, category, platform, version, device, steps, a base64 screenshot, up to 16 KB of metadata and up to 10 attachments. By default, reports with the same title stack onto one bug. It is the same endpoint every Bugnet SDK uses, available on every plan.

Engine SDKs cover the game itself. Bugs also come from everywhere around it: the launcher that fails to patch, the dedicated server that throws, the QA script that finds a broken level, the support form on your website, or a custom engine with no SDK at all. A plain HTTP API lets all of them file into the same tracker as your crashes and player reports.

The request

curl -X POST https://api.bugnet.io/api/bugs/submit \
  -H "X-API-Key: sk_live_YOUR_PROJECT_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Launcher patch failed: checksum mismatch",
    "description": "Patch 1.4.2 failed to apply on pak 3.",
    "category": "network",
    "priority": "high",
    "platform": "Windows",
    "game_version": "1.4.2",
    "metadata": { "launcher_version": "2.0.1", "pak": 3 }
  }'

Fields

FieldNotes
titleRequired, up to 300 characters. With grouping on (the default), reports with the exact same title stack onto one bug.
descriptionRequired. Truncated to 60,000 bytes.
prioritycritical, high, medium (default) or low
categorycrash, visual, gameplay, performance, audio, ui, network or other (default)
platform, game_version, os_info, device_infoContext strings (50, 50, 100 and 200 characters)
steps_to_reproduce, expected_behavior, actual_behaviorFree text
screenshotA base64-encoded image
steam_id, reporter_name, reporter_emailLinks the report to a player; invalid emails are dropped
metadataAny JSON value up to 16 KB, stored with the report
attachmentsUp to 10 files (filename, mime_type, base64 data)
auto_capturedSet to true for machine-filed errors to keep your own category and priority

Responses

If you leave category and priority at their defaults and do not set auto_captured, Bugnet infers both from the text. To attach a large file after the fact, POST it to /api/bugs/{id}/attachments with the id from the response (text, image, video and JSON files up to 10 MB).

Examples

Python (standard library)
import json, urllib.request

def report_bug(title, description, **fields):
    body = json.dumps({"title": title, "description": description, **fields}).encode()
    req = urllib.request.Request(
        "https://api.bugnet.io/api/bugs/submit", data=body, method="POST",
        headers={"X-API-Key": "sk_live_YOUR_PROJECT_KEY", "Content-Type": "application/json"})
    with urllib.request.urlopen(req, timeout=15) as resp:
        return json.load(resp)
JavaScript (Node 18+ or browser)
await fetch('https://api.bugnet.io/api/bugs/submit', {
  method: 'POST',
  headers: { 'X-API-Key': 'sk_live_YOUR_PROJECT_KEY', 'Content-Type': 'application/json' },
  body: JSON.stringify({ title: 'Server: match failed to start', description: err.stack, category: 'network', auto_captured: true }),
});

Where teams use it

Good practice

Create a free project to get a key; the full spec is in the API explorer.

Frequently asked questions

Is there an API to submit game bug reports?

Yes. Bugnet's POST /api/bugs/submit endpoint accepts a JSON bug report authenticated with your project's API key in the X-API-Key header. It is the same endpoint the engine SDKs use.

Which fields are required?

Only title and description. Priority, category, platform, version, device, steps, a screenshot, metadata and attachments are optional.

How does Bugnet handle duplicate reports from the API?

With grouping on, which is the default, a report whose title exactly matches an existing report is stacked onto it, the response says deduplicated: true, and the occurrence count goes up. Grouping can be turned off per project.

What is the rate limit?

Public endpoints allow 30 requests per minute per IP address.

Can I attach files to an API report?

Yes. Include up to 10 attachments in the submit request, or upload one afterwards to /api/bugs/{id}/attachments. Text, image, video and JSON files up to 10 MB are accepted.

Bugs do not only happen inside the game. Give every part of your stack a way to report them to the same place.