> ## Documentation Index
> Fetch the complete documentation index at: https://docs.interchange.io/llms.txt
> Use this file to discover all available pages before exploring further.

# List signals

> List signals filtered by agent, visibility, live status, and advertiser

`GET /api/v2/storefront/signals`

Returns a paginated list of signals registered on the storefront. Filter by owning agent, visibility, live status, or advertiser. Archived signals are excluded unless `includeArchived` is set.

## Request

<CodeGroup>
  ```bash curl theme={null}
  curl "https://api.interchange.io/api/v2/storefront/signals?visibility=PROPRIETARY&isLive=true&limit=50" \
    -H "Authorization: Bearer $SCOPE3_API_KEY"
  ```

  ```bash Filter to one advertiser theme={null}
  curl "https://api.interchange.io/api/v2/storefront/signals?advertiserId=88421&includeArchived=false" \
    -H "Authorization: Bearer $SCOPE3_API_KEY"
  ```
</CodeGroup>

## Parameters

| Field             | Type    | Required | Notes                                         |
| ----------------- | ------- | -------- | --------------------------------------------- |
| `agentId`         | string  | No       | Filter to one owning signals agent            |
| `visibility`      | enum    | No       | `PUBLIC` or `PROPRIETARY`                     |
| `isLive`          | boolean | No       | Filter to deployed signals only               |
| `advertiserId`    | integer | No       | Scope3 advertiser ID (int64)                  |
| `includeArchived` | boolean | No       | Include soft-deleted signals. Default `false` |
| `limit`           | integer | No       | Page size, max 100. Default `20`              |
| `offset`          | integer | No       | Result offset. Default `0`                    |

## Response

```json theme={null}
[
  {
    "id": 50213,
    "signalId": "acme_high_value_customers",
    "customerId": 1001,
    "adcpAgentId": null,
    "name": "Acme - High-Value Customers",
    "description": "Top 10% LTV customers, refreshed weekly",
    "keyType": ["rampid", "uid2"],
    "regions": ["NORAM", "EMEA"],
    "metadata": null,
    "isLive": false,
    "archivedAt": null,
    "createdBy": "agent@acme.example",
    "updatedBy": null,
    "createdAt": "2026-06-06T12:00:00Z",
    "updatedAt": "2026-06-06T12:00:00Z",
    "access": [
      {
        "id": 9001,
        "signalId": 50213,
        "advertiserId": 88421,
        "visibility": "PROPRIETARY",
        "price": null,
        "archivedAt": null,
        "createdAt": "2026-06-06T12:00:00Z",
        "updatedAt": "2026-06-06T12:00:00Z"
      }
    ]
  }
]
```

The data payload is an array of signal objects. Pagination metadata (`skip`, `take`, `total`, `hasMore`) is returned in the response envelope's `meta.pagination` block — see [Pagination](/v2/reference/pagination).

## Errors

* `400 VALIDATION_ERROR` — invalid `visibility` value or out-of-range `limit`.
* `401 UNAUTHORIZED` — missing or invalid bearer token.

See [Errors](/v2/reference/errors) for the full error contract.

## Related

<CardGroup cols={2}>
  <Card title="Signal tasks" href="/v2/storefront/signals/tasks" icon="list-check">
    All signal operations
  </Card>

  <Card title="Get signal" href="/v2/storefront/signals/tasks/get-signal" icon="magnifying-glass">
    One signal with access records
  </Card>

  <Card title="Create signal" href="/v2/storefront/signals/tasks/create-signal" icon="plus">
    Register a signal
  </Card>

  <Card title="Signal overview" href="/v2/object-guides/signal" icon="wave-pulse">
    Fields, lifecycle, and concepts
  </Card>
</CardGroup>
