# List information streams

**Requires scope:** `forecasting`.
Returns information streams available to the authenticated token (scoped by the location selection logic).
Filtering is supported via query parameters. List parameters (`departmentIds`, `categories`, `types`, `units`)
are provided as comma-separated values.
If `groupBy` is provided, the response shape changes to a grouped payload.

Endpoint: GET /information-streams/v3/list
Security: apiKey

## Query parameters:

  - `category` (string)
    Single information stream category to filter by.

  - `search` (string)
    Search term to filter information streams by name.

  - `groupBy` (string)
    Group information streams by a specific field.

  - `officeId` (integer)
    Filter information streams by location identifier.

  - `departmentIds` (array)
    Comma-separated list of department identifiers.

  - `categories` (array)
    Comma-separated list of categories to filter by.

  - `types` (array)
    Comma-separated list of stream types to filter by.

  - `units` (array)
    Comma-separated list of units to filter by.

## Response 200 fields (application/json):

  - `key` (string)
    Identifier of the information stream
    Example: bar-revenue-pier9

  - `isActive` (boolean)
    Indicates if the information stream is active
    Example: true

  - `source` (string)
    Source of the information stream
    Example: user_provided

  - `type` (string)
    Type of the information stream
    Example: revenue

  - `granularity` (string)
    Granularity of the information stream
    Example: day

  - `category` (string)
    Category of the information stream
    Example: realized

  - `departments` (array)
    List of departments IDs associated with the information stream
    Example: [1,2]

  - `unit` (string)
    Unit of the information stream
    Example: currency

  - `name` (string)
    Name of the information stream
    Example: Pier 9 bar revenue

  - `note` (string | null)
    Additional notes about the information stream, or null when none is set.
    Example: Daily bar revenue at the Pier 9 Bistro

  - `sourceSystem` (string | null)
    Source system of the information stream, or null for system-generated streams (e.g. AI forecasts).
    Example: Hospitality POS solutions

  - `sourceSystemSupportEmail` (string | null)
    Email address of the source system support, or null for system-generated streams.
    Example: support@hospitality-pos.example.com

  - `createdAt` (string)
    Creation timestamp of the information stream
    Example: 2026-07-03 13:23:31

  - `updatedAt` (string)
    Last modification timestamp of the information stream
    Example: 2026-07-03 13:23:31

  - `customFeatures` (array)
    Custom features associated with the information stream
    Example: ["feature1","feature2"]

  - `formulaParents` (array)
    Keys of the parent streams that feed this stream in a formula hierarchy. Always present; empty when the stream has no formula parents.

  - `groups` (array)
    The grouping buckets for the requested `groupBy`.

  - `groups.groupId` (string)
    Identifier of the group; its composition depends on the `groupBy` (e.g. office-and-category).
    Example: 18-forecast

  - `groups.label` (string)
    Human-readable label for the group.
    Example: Amsterdam

  - `groups.category` (string)
    Category of the streams in this group.
    Example: forecast

  - `groups.departments` (array)
    Department identifiers covered by this group.
    Example: ["01KMQK8WKA3Z5HTY35TNB6B55D"]

  - `groups.streams` (array)
    Keys of the information streams in this group.
    Example: ["01KPB4Z004Q6JDNYXPT3739YA3"]

  - `streams` (array)
    The information streams in the result.

## Response 400 fields (application/json):

  - `title` (string, required)
    Short, human-readable summary of the error.
    Example: Unauthorized

  - `status` (integer, required)
    The HTTP status code.
    Example: 401

  - `message` (string, required)
    Human-readable explanation of this occurrence of the error.
    Example: Invalid Token

  - `detail` (string)
    Human-readable explanation of this occurrence. Not returned by all backend versions.
    Example: Invalid Token

  - `code` (integer)
    The HTTP status code (duplicate of `status`). Not returned by all backend versions.
    Example: 401

  - `type` (string)
    URI reference identifying the error type, when present.
    Example: https://tools.ietf.org/html/rfc2616#section-10

  - `violations` (array)
    Per-field validation failures (one backend variant).

  - `violations.propertyPath` (string)
    Example: employeeId

  - `violations.title` (string)
    Example: This value should not be null.

  - `violations.type` (string | null)

  - `errors` (array)
    Per-field validation failures (another backend variant).

  - `errors.message` (string)
    Example: This value should not be null.

  - `errors.code` (string | null)
    Machine-readable violation code.

  - `errors.context` (object)

  - `errors.context.field` (string | null)

## Response 401 fields (application/json):

  - `title` (string, required)
    Short, human-readable summary of the error.
    Example: Unauthorized

  - `status` (integer, required)
    The HTTP status code.
    Example: 401

  - `message` (string, required)
    Human-readable explanation of this occurrence of the error.
    Example: Invalid Token

  - `detail` (string)
    Human-readable explanation of this occurrence. Not returned by all backend versions.
    Example: Invalid Token

  - `code` (integer)
    The HTTP status code (duplicate of `status`). Not returned by all backend versions.
    Example: 401

## Response 403 fields (application/json):

  - `title` (string, required)
    Short, human-readable summary of the error.
    Example: Unauthorized

  - `status` (integer, required)
    The HTTP status code.
    Example: 401

  - `message` (string, required)
    Human-readable explanation of this occurrence of the error.
    Example: Invalid Token

  - `detail` (string)
    Human-readable explanation of this occurrence. Not returned by all backend versions.
    Example: Invalid Token

  - `code` (integer)
    The HTTP status code (duplicate of `status`). Not returned by all backend versions.
    Example: 401

