signals

get/api/projects/{project_id}/signals/reports/

Request

  • Base URL: https://us.posthog.com
  • URL: https://us.posthog.com/api/projects/{project_id}/signals/reports/
  • 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/.

Query parameters

actionabilitystring

Comma-separated actionability judgments to include. Valid values: immediately_actionable, requires_human_input, not_actionable. Reports without a judgment are excluded.

already_addressedboolean

Filter by whether the latest actionability judgment says the issue is already being handled. False also includes older reports where that judgment did not record a value.

assignee'me'

Use 'me' to return reports claimed by the current user, task, or MCP agent.

channel_idstring uuid

Narrow to reports assigned to one space (channel). Absent or empty means all reports regardless of assignment.

count_onlyboolean

Return the filtered total with an empty results page. Skips report ordering, serialization, and decorative metadata lookups. Defaults to false.

created_afterstring date-time

ISO 8601 datetime. Keeps reports created at or after this time.

has_implementation_prboolean

Filter reports by whether an implementation pull request is attached. 'true' keeps only reports with a PR; 'false' keeps only those without. Pair with count_only=true to return only the filtered total.

include_all_statusesboolean

When true, the list includes reports in every status with no default exclusions applied — currently that adds suppressed (dismissed) reports, which are otherwise hidden. Use it to see the full inbox state (e.g. deduplicating before creating a report) and read each row's status (plus dismissal_reason/dismissal_note on dismissed rows) before acting. Deleted reports are terminal and never returned. Defaults to false, which keeps the existing default exclusions. Ignored when an explicit 'status' filter is set — that filter alone decides which statuses are returned.

include_source_metadataboolean

Fill source_products and scout_name on each row. These come from ClickHouse, so pass false to skip that lookup and get the page from Postgres only: rows then carry an empty source_products and a null scout_name. Load them after with source_metadata. Defaults to true.

limitinteger

Number of results to return per page.

offsetinteger

The initial index from which to return the results.

orderingstring

Comma-separated ordering clauses. Each clause is a field name optionally prefixed with '-' for descending. Allowed fields: status, is_suggested_reviewer, signal_count, total_weight, priority, created_at, updated_at, id, ranking_pr_merged, ranking_pr_created, ranking_action, ranking_open, ranking_fixed, ranking_discuss, ranking_thumbs_up, ranking_reviewer_fix, ranking_refund, ranking_dismiss_wrong, ranking_dismiss_lowvalue. Defaults to '-is_suggested_reviewer,status,-updated_at'. The ranking_* fields sort by the served ranking model's probability for that outcome head, with unscored reports last in either direction. They are staff only: other users get a 400.

prioritystring

Comma-separated list of priorities to include. Valid values: P0, P1, P2, P3, P4. Reports without a priority assignment are excluded when this filter is set.

scopestring

Reviewer scope: for_me, entire_project, or teammate. Pass teammate_uuid with teammate.

scoutstring

Comma-separated list of scout skill_name slugs (e.g. signals-scout-error-tracking). Reports are kept if at least one of their contributing signals was authored by one of these scouts. Combines with source_product as an AND.

scout_prefixstring

Scout skill_name prefix (e.g. signals-scout-customer-analytics). Reports are kept if at least one of their contributing signals was authored by a scout whose skill_name starts with this prefix — new scouts in the family match without callers listing every name. Combines with the other filters as an AND.

searchstring

Case-insensitive substring match against report title and summary.

sortstring

Inbox sort preset: priority, last_updated, newest, or oldest. Ignored when ordering is supplied.

source_idstring

Comma-separated list of source record ids. Reports are kept if at least one of their contributing signals came from one of these records — e.g. pass a support ticket's UUID to see what the inbox already found for that ticket. Requires exactly one source_product, since a source id is only unique within its product.

source_productstring

Comma-separated list of source products to include. Reports are kept if at least one of their contributing signals comes from one of these products (e.g. error_tracking, session_replay).

statusstring

Comma-separated list of statuses to include. Valid values: potential, candidate, in_progress, pending_input, ready, resolved, failed, suppressed. Defaults to all statuses except suppressed.

suggested_reviewersstring

Comma-separated list of PostHog user UUIDs. Reports are kept if their suggested reviewers include any of the given users.

task_idstring uuid

Only reports associated with this task (via the report's task associations).

teammate_uuidstring uuid

PostHog user UUID used when scope=teammate.

unclaimedboolean

Filter by whether the report has no owner and no draft, open, or unknown PR. Resolved reports are never unclaimed.

unreadboolean

Filter by the current user's report read state.

use_priority_preferenceboolean

When true and priority is omitted, include priorities at or above the requesting user's personal PR-generation threshold, falling back to the project threshold.

viewstring

Apply an inbox view: actionable, needs_input, needs_decision, monitoring, resolved, dismissed, held_back, not_actionable, or all. Each view applies the corresponding status, actionability, and implementation-PR filters. needs_decision also includes failed reports without a judgment. dismissed and held_back split the suppressed reports: dismissed holds the ones a person or agent dismissed, merged, or whose pull request closed without merging; held_back holds the ones the safety or actionability judge suppressed before anyone saw them. Each row's suppression_source says which.

Response

countinteger required
nextstring uri nullable
previousstring uri nullable

Example response

{
  "count": 123,
  "next": "http://api.example.org/accounts/?offset=400&limit=100",
  "previous": "http://api.example.org/accounts/?offset=200&limit=100"
}

Changes

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