Bugsink API
Browse the full, generated API reference.
Authentication
The API uses bearer tokens. A Bugsink administrator can create one from the “Tokens” menu item in the Bugsink navigation. Tokens currently grant access to the whole installation, so store them as secrets and only give them to tools you trust.
Send the token in the Authorization header:
curl --fail \ --header "Authorization: Bearer $BUGSINK_TOKEN" \ "$BUGSINK_URL/api/canonical/0/projects/"curl --fail \ --header "Authorization: Bearer $BUGSINK_TOKEN" \ "$BUGSINK_URL/api/canonical/0/projects/"
What the API can do
The canonical API provides endpoints for:
- Teams: list, create, retrieve and update teams.
- Projects: list, create, retrieve and update projects.
- Releases: list, create and retrieve releases.
- Issues: list and retrieve issues; resolve, reopen, mute, unmute or delete them.
- Events: list events belonging to an issue and retrieve the complete event payload.
- Comments: add a comment to an issue’s history.
List endpoints use cursor pagination. Follow the next and previous URLs in the
response rather than constructing cursors yourself. Lists that belong to another
resource require an explicit filter: issues require ?project=<project-id> and
events require ?issue=<issue-id>.
Most endpoints exchange JSON. Exact request fields, filters, sort options, response schemas and status codes are in the generated API reference.
OpenAPI documentation
Every Bugsink installation serves its own OpenAPI schema and interactive Swagger UI:
/api/canonical/0/schema/ /api/canonical/0/schema/swagger-ui//api/canonical/0/schema/ /api/canonical/0/schema/swagger-ui/
The schema is the authoritative description of the API for your installed Bugsink version. It can also be used to generate a client.
Stacktraces as Markdown
An event’s complete JSON payload is the structured choice for software that needs individual fields. For people and LLMs, Bugsink can also render the stacktrace, source context and local variables as Markdown:
curl --fail \ --header "Authorization: Bearer $BUGSINK_TOKEN" \ --header "Accept: text/markdown" \ "$BUGSINK_URL/api/canonical/0/events/$EVENT_ID/stacktrace/"curl --fail \ --header "Authorization: Bearer $BUGSINK_TOKEN" \ --header "Accept: text/markdown" \ "$BUGSINK_URL/api/canonical/0/events/$EVENT_ID/stacktrace/"
The regular JSON event response also includes this rendering in its stacktrace_md
field. The Markdown is a presentation format: it may change between Bugsink versions
and should not be parsed as a stable interface.
The Bugsink web interface offers related, session-authenticated Markdown views. Event pages have a Markdown link at the bottom. An issue summary, including status, counts, tags, history and its latest stacktrace, is available at:
/issues/issue/<issue-uuid>/md//issues/issue/<issue-uuid>/md/
Add ?download to download that summary as a .md file.
Stacktraces and local variables can contain credentials, personal data and other sensitive values. Take the destination’s data handling into account before sharing them.
Coding agents and other integrations
The API is deliberately independent of any particular LLM or integration protocol. A coding agent that already has access to a codebase can use Bugsink’s production context to investigate an issue or prepare a first pass at a fix. The same API can support a script, CLI, MCP server, local model or hosted agent.
This direction grew out of the LLM Integration discussion: expose the useful context and let users choose where and how to process it, rather than embedding one model into Bugsink.
