signals

Transition many reports to a new state in one call.

Each id is processed independently: a report whose transition isn't allowed from its current status is reported as skipped (a 409 on the single-report endpoint) and the rest still go through. Returns one result per requested id (in request order, after de-duplication) plus per-outcome counts. The whole call is 200 even on partial failure — inspect results / the counts to see what happened.

post/api/projects/{project_id}/signals/reports/bulk-state/

Request

  • Base URL: https://us.posthog.com
  • URL: https://us.posthog.com/api/projects/{project_id}/signals/reports/bulk-state/
  • Auth: one of:
    • HTTP bearer
    • HTTP bearer

Path parameters

project_idstring required

Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.

Request body

state'suppressed' | 'potential' | 'resolved' required
  • suppressed - suppressed
  • potential - potential
  • resolved - resolved
dismissal_reason'already_fixed' | 'report_unclear' | 'analysis_wrong' | 'wrong_repo' | 'wontfix_intentional' | 'wontfix_irrelevant' | 'fixed_outside_posthog' | 'pr_merged' | 'other'
  • already_fixed - Already fixed
  • report_unclear - Report is unclear to me
  • analysis_wrong - Agent's analysis is wrong
  • wrong_repo - Agent picked the wrong repository
  • wontfix_intentional - Won't fix - intentional behavior
  • wontfix_irrelevant - Won't fix - issue is real but insignificant
  • fixed_outside_posthog - Fixed outside PostHog
  • pr_merged - PR was merged
  • other - Something else…
dismissal_notestring

Optional free-form note explaining the dismissal. Capped at 4000 characters.

corrected_repositorystring

Optional, only allowed with dismissal_reason='wrong_repo'. The repository this report should have targeted, in 'owner/repo' format (case-insensitive). It is recorded with the dismissal and fed into future repository selection for this project. When the repository is connected to the project, it also becomes the report's corrected repo selection, so restoring the report re-researches against it.

snooze_forinteger

Optional, only honored when state is 'potential'. Number of additional signals the report must accumulate before it is re-promoted into the pipeline — effectively snoozing it until then. Omit to let the report re-enter the pipeline on the next matching signal.

idsstring[] required

Report ids to transition to state in one call (1–100). Duplicates are de-duplicated; each id is processed independently so one disallowed transition does not block the rest. dismissal_reason, dismissal_note, corrected_repository and snooze_for apply to every id.

Response

transitioned_countinteger required

Number of reports the call accepted. A report that already had the requested state counts here too, because a repeat dismiss or resolve still records its feedback.

skipped_countinteger required

Number of reports whose transition was not allowed.

failed_countinteger required

Number of reports that failed on invalid request data.

not_found_countinteger required

Number of requested ids not visible to the caller.

Changes

No recorded changes to this operation across all 1 revision of this API.