Changing report status

Safely automate report status changes with concurrency and idempotency controls.

Changing report status

Use POST /report/update-status with the reports:status:write scope. Status
changes run through the same BugBase status controller as the platform, so the
same reporter and company emails, comments, feeds, webhooks, Slack, Teams,
GitHub, Jira, Linear, Sumologic, and reputation behavior applies.

Safe request pattern

Every request must include:

  • Idempotency-Key: a unique client-generated value for one logical change.
  • expectedStatus: the status your integration most recently read.
curl --request POST 'https://api.bugbase.ai/report/update-status' \
  --header 'Content-Type: application/json' \
  --header "Authorization: Bearer $BUGBASE_API_KEY" \
  --header "Idempotency-Key: status-example-report-$(date +%s)" \
  --data '{
    "programId": "000000000000000000000000",
    "reportSlug": "EXAMPLE-REPORT-SLUG",
    "expectedStatus": "new",
    "transition": "triage"
  }'

If another actor changed the report after you read it, the API returns 409
instead of overwriting that change. Retry a transport failure with the same body
and idempotency key. A successful retry replays the original result without
repeating side effects.

Transitions

TransitionAdditional fields
triageNone
mark_invalidreasonInvalid required; label may be spam or not_applicable
mark_duplicateExactly one mode: same-company/same-asset duplicateId, or multipart refId plus one JPG/PNG proof smaller than 5 MiB
mark_informationalOptional thanks
mark_resolvedrating from 1–5 required; optional details, feedback, and thanks
request_more_infoNone
request_program_reviewNone

The duplicateId mode may use JSON or multipart form data. The refId mode
requires multipart form data because it includes the proof image.

Duplicate an externally known issue

Use the multipart mode when the original issue is tracked outside BugBase, for
example in Jira or Linear:

curl --request POST 'https://api.bugbase.ai/report/update-status' \
  --header "Authorization: Bearer $BUGBASE_API_KEY" \
  --header "Idempotency-Key: duplicate-example-$(date +%s)" \
  --form 'programId=000000000000000000000000' \
  --form 'reportSlug=EXAMPLE-REPORT-SLUG' \
  --form 'expectedStatus=new' \
  --form 'transition=mark_duplicate' \
  --form 'refId=JIRA-123' \
  --form '[email protected];type=image/png'

Do not send duplicateId together with refId or image. Retries using the
same idempotency key must use the same reference and proof bytes.
refId records the external issue reference on the BugBase report; it does not
create, attach, or update a Jira or Linear issue.

Status changes are limited to 10 requests per minute per company. If the first
request is still running, wait briefly and retry the same body and key.


Did this page help you?