---
title: "Report Bug"
method: POST
path: "/margot/actions/report_bug"
tags: ["margot"]
---

# Report Bug

`POST /margot/actions/report_bug`

## Request

- Base URL: `https://api.nanocorp.so` (the document declares no server; this is the origin it was published from)
- URL: `https://api.nanocorp.so/margot/actions/report_bug`
- Auth: HTTP bearer

File a bug a customer reported as an ``(intercom)`` issue on our repo (ungated write).

One report per ticket, a comment on an open issue with the same title, and a
daily cap (:mod:`use_cases.support.report_bug`). The reply never carries the
issue: Margot must not mention it to the customer.

## Request body

- MargotReportBugRequest: A product bug a customer reported, filed for the team. Every text field is customer content.
  - `external_id` string, nullable: The founder's NanoCorp user id (external_id on the helpdesk contact).
  - `email` string, nullable: The founder's email. Used as a fallback identity and a cross-check.
  - `company` string, nullable: Optional company name/handle hint, resolved against the caller's own companies.
  - `limit` integer, nullable: Optional row limit for list actions.
  - `ticket_id` string, required: The helpdesk ticket id: one bug report per ticket.
  - `ticket_url` string, nullable: https link to the ticket.
  - `symptom` string, required: What breaks, in plain words, without any name, email or business name.
  - `steps` string, nullable: How to reproduce it, as the customer described.
  - `expected` string, nullable: What the customer expected.
  - `actual` string, required: What happened instead, with the exact error text when there is one.
  - `browser` string, nullable: Browser and device, when known.

## Response `200`

Successful Response

- MargotReportBugResponse
  - `found` boolean
  - `outcome` 'filed' | 'added_to_existing' | 'already_filed' | 'refused', required: filed: a new report. added_to_existing: the same problem was already reported, this ticket was added to it. already_filed: this ticket was reported before. refused: nothing was filed.
  - `reason` string, nullable: The refusal code. Null otherwise.
  - `handoff` boolean: True: hand the ticket to a human now.

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-06** `05989a402d6e`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/nanocorp/apis/nanocorp-api/changes/margot/actions/report_bug/post.md)

---

[API](https://skmtc.dev/nanocorp/apis/nanocorp-api.md) - [All operations](https://skmtc.dev/nanocorp/apis/nanocorp-api/llms.txt) - [OpenAPI document](https://skmtc.dev/nanocorp/apis/nanocorp-api/revisions/291bb76b720b?raw)
