action posthog_signals_reports_signals_retrieve { label: "List a report's signals" description: "Fetch all signals for a report from ClickHouse, including full metadata." provider: posthog method: GET path: "/api/projects/{project_id}/signals/reports/{id}/signals/" encoding: json input: { type: "object" properties: { id: { type: "string" format: "uuid" } } required: ["id"] additionalProperties: false } output: { type: "object" description: "Response body for GET /api/projects/:id/signals/reports/:id/signals/." required: ["report", "signals"] properties: { report: { description: "The report these signals were clustered into." type: "object" } signals: { type: "array" description: "All signals contributing to the report." items: { type: "object" required: ["content", "extra", "signal_id", "source_id", "source_product", "source_type", "timestamp", "weight"] properties: { content: { type: "string" description: "The signal's human-readable description." } extra: { description: "Product-specific payload; shape depends on (source_product, source_type)." type: "object" } match_metadata: { description: "Clustering match/no-match metadata, when present." type: "object" } signal_id: { type: "string" description: "ClickHouse document id of the signal." } source_id: { type: "string" description: "Emitter-scoped id of the underlying object (issue, ticket, ...)." } source_product: { description: "Product that emitted the signal.\n\n* `session_replay` - session_replay\n* `llm_analytics` - llm_analytics\n* `github` - github\n* `linear` - linear\n* `jira` - jira\n* `zendesk` - zendesk\n* `conversations` - conversations\n* `error_tracking` - error_tracking\n* `endpoints` - endpoints\n* `pganalyze` - pganalyze\n* `signals_scout` - signals_scout\n* `logs` - logs\n* `health_checks` - health_checks\n* `replay_vision` - replay_vision\n* `analytics` - analytics\n* `freshdesk` - freshdesk\n* `freshservice` - freshservice\n* `front` - front\n* `gorgias` - gorgias\n* `kustomer` - kustomer\n* `dixa` - dixa\n* `plain` - plain\n* `gitlab` - gitlab\n* `gitea` - gitea\n* `shortcut` - shortcut\n* `sentry` - sentry\n* `rollbar` - rollbar\n* `bugsnag` - bugsnag\n* `honeybadger` - honeybadger\n* `raygun` - raygun\n* `snyk` - snyk\n* `sonarqube` - sonarqube\n* `semgrep` - semgrep\n* `rapid7_insightvm` - rapid7_insightvm\n* `featurebase` - featurebase\n* `frill` - frill\n* `aha` - aha\n* `uservoice` - uservoice\n* `productboard` - productboard\n* `canny` - canny\n* `asknicely` - asknicely\n* `retently` - retently\n* `appfigures` - appfigures\n* `appfollow` - appfollow\n* `judgeme_reviews` - judgeme_reviews\n* `intercom` - intercom\n* `hubspot` - hubspot\n* `engineering_analytics` - engineering_analytics\n* `google_search_console` - google_search_console" type: "object" } source_type: { description: "Signal type within the source product.\n\n* `session_analysis_cluster` - session_analysis_cluster\n* `session_problem` - session_problem\n* `evaluation` - evaluation\n* `evaluation_report` - evaluation_report\n* `issue` - issue\n* `ticket` - ticket\n* `issue_created` - issue_created\n* `issue_reopened` - issue_reopened\n* `issue_spiking` - issue_spiking\n* `endpoint_execution_failed` - endpoint_execution_failed\n* `endpoint_breakdown_limit_exceeded` - endpoint_breakdown_limit_exceeded\n* `cross_source_issue` - cross_source_issue\n* `alert_state_change` - alert_state_change\n* `health_issue` - health_issue\n* `scanner_finding` - scanner_finding\n* `anomaly_investigation` - anomaly_investigation\n* `feedback` - feedback\n* `review` - review\n* `ci_flaky_check` - ci_flaky_check\n* `ci_broken_default_branch` - ci_broken_default_branch\n* `ci_duration_regression` - ci_duration_regression\n* `search_opportunity` - search_opportunity" type: "object" } timestamp: { type: "string" format: "date-time" description: "Emission timestamp." } weight: { type: "number" format: "double" description: "Signal weight in [0, 1]; drives report ranking." } } } } } } }