---
title: "List Signals"
method: GET
path: "/v2/projects/{project_id}/runs/{run_id}/signals"
tags: ["signals-v2"]
---

# List Signals

`GET /v2/projects/{project_id}/runs/{run_id}/signals`

## Request

- Base URL: `https://api.galileo.ai`
- URL: `https://api.galileo.ai/v2/projects/{project_id}/runs/{run_id}/signals`
- Auth: one of:
  - API key in header `Splunk-AO-API-Key`
  - API key in header `Galileo-API-Key`
  - OAuth 2
    - Password
    - Token URL: `https://api.galileo.ai/login`
  - HTTP basic

List top-level Signals for one log stream or experiment run.

Results are ordered by internal priority and last seen time. Open Signals whose notifications
are not muted are returned by default. A cursor may be reused only with the same filters.

## Path parameters

- `project_id` string, uuid4, required
- `run_id` string, uuid4, required

## Query parameters

- `search` string, nullable: Case-insensitive title and problem search. An exact SIG-N value also matches the display key.
- `labels` string[]: Match Signals containing any selected label.
- `severities` SignalSeverityLevel[]: Severity levels to include.
- `statuses` SignalStatus[]: User-marked states to include. Defaults to open Signals.
- `notification_state` 'UNMUTED' | 'MUTED' | 'ALL': Whether a list includes Signals with muted notifications.
- `view` 'ACTIVE' | 'ARCHIVED': Product tab represented by a list request.
- `last_seen_after` string, date-time, nullable: Include Signals last seen at or after this timestamp.
- `last_seen_before` string, date-time, nullable: Include Signals last seen before this timestamp.
- `cursor` string, nullable: Cursor returned by the previous page with the same filters.
- `limit` integer: Maximum Signals returned in one page.

## Response `200`

Successful Response

- SignalListResponse
  - `data` SignalSummary[], required
    - `id` string, uuid4, required
    - `display_key` string, required
    - `title` string, required
    - `description` string, required
    - `labels` string[], required
    - `severity_level` 'LOW' | 'HIGH' | 'CRITICAL', required: Severity level shown to users and used for notification selection.
    - `status` 'OPEN' | 'RESOLVED', required: Signal state selected by a user.
    - `notifications_muted` boolean, required: Whether notifications are muted for this Signal.
    - `affected_session_count` integer, required: Distinct affected sessions across the Signal and its merged Signals.
    - `remediation_summary` SignalRemediationSummary, required: Remediation counts and actions shown on one Signal row.
      - `primary_recommendation` SignalRecommendationSummary, required: List-page representation of one remediation.
        - `id` string, uuid4, required
        - `type` string, required: Remediation type, such as evaluator.create or agent-control.create.
        - `title` string, required
        - `state` 'PROPOSED' | 'IN_PROGRESS' | 'APPLIED' | 'VALIDATED' | 'DISMISSED' | 'FAILED', required: Current state of a proposed remediation.
      - `latest_action` SignalRecommendationSummary, required: List-page representation of one remediation.
        - `id` string, uuid4, required
        - `type` string, required: Remediation type, such as evaluator.create or agent-control.create.
        - `title` string, required
        - `state` 'PROPOSED' | 'IN_PROGRESS' | 'APPLIED' | 'VALIDATED' | 'DISMISSED' | 'FAILED', required: Current state of a proposed remediation.
      - `recommendation_count` integer, required: Number of remediations generated for the Signal.
      - `completed_action_count` integer, required: Number of remediations that were applied or validated.
    - `merged_signal_count` integer, required: All Signals nested under this Signal through merges.
    - `last_seen_at` string, date-time, required: Latest occurrence time across the Signal and its merged Signals.
  - `meta` SignalListMeta, required
    - `next_cursor` string, nullable, required: Cursor for the next page, or null on the last page.
    - `total` integer, required: Signals matching all current filters before pagination.
  - `facets` SignalFacets, required: Filter options and counts computed before pagination. A facet ignores its own filter while applying the other active filters.
    - `labels` SignalLabelFacet[], required
      - `label` string, required
      - `count` integer, required
    - `open_count` integer, required
    - `resolved_count` integer, required
    - `muted_count` integer, required
    - `active_count` integer, required: Open Signals with notifications enabled.
    - `archived_count` integer, required: Resolved or archived Signals, counted once each.

## Other responses

- `422`: Validation Error

## Changes

> 34 revisions in range; 2 not diffed.

- **2026-10-19** `0b20eade6391`: 1 breaking, 1 warning, 2 info
  - removed the enum value `MEDIUM` from the property `items/` of the `query` request parameter `severities`
  - added the new `CRITICAL` enum value to the `data/items/severity_level` response property for the response status `200`
  - added the enum value `CRITICAL` to the property `items/` of the `query` request parameter `severities`
  - removed the `MEDIUM` enum value from the `data/items/severity_level` response property for the response status `200`
- **2026-10-14** `9a61e9b565b0`: 3 info
  - added the new optional `query` request parameter `view`
  - added the required property `facets/active_count` to the response with the `200` status
  - added the required property `facets/archived_count` to the response with the `200` status
- **2026-10-03** `fede84842199`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/galileo/apis/galileo-api-server/changes/v2/projects/:project_id/runs/:run_id/signals/get.md)

---

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