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

# List All Feeds

> Get a paginated list of feeds across the workspace. Supports optional filters: `filter[search]`, `filter[feed-types][]`, `filter[favourite]`, `filter[review_with_comment]`, `filter[sentiments][]`, `filter[star-rating][]`, `filter[feed-forms][]`, `filter[review-labels][]`, and `filter[imported-froms][]`. All filters are optional; filters of different types are AND-combined, while values within a single filter array are OR-combined.

Get a paginated list of all feeds across the workspace — text, audio, video, and social — in a single response. Use the query parameters below to narrow the results.

## Filters

All filters are optional. Filters of **different** types are combined with **AND**; values within a **single** filter array are combined with **OR**.

Supported query filters:

* `filter[search]` — free-text keyword search across reviewer name and review text
* `filter[feed-types][]` — feed type (`video`, `audio`, `text`, `social`)
* `filter[favourite]` — favourited feeds only (`true`)
* `filter[review_with_comment]` — feeds with a non-empty comment (`true`)
* `filter[sentiments][]` — AI-detected sentiment (`positive`, `negative`, `neutral`)
* `filter[star-rating][]` — star rating (`1`–`5`)
* `filter[feed-forms][]` — review form ID(s)
* `filter[review-labels][]` — review label ID(s)
* `filter[imported-froms][]` — import source platform ID(s)

### `filter[search]`

Free-text keyword search. Matches the keyword as a **case-insensitive substring** against the reviewer's name and the review text/comment, returning only feeds that contain it.

Multi-word strings are matched literally — `excellent service` returns reviews containing that exact run of text. Encode the space as `%20` or `+`.

<Warning>
  Use `filter[search]`. The bare `search` query parameter has **no effect** on this endpoint and is silently ignored — no error is returned.
</Warning>

<Note>
  A keyword that matches nothing returns an **empty** result, so you can rely on this filter for client-side search without extra validation. This differs from `filter[feed-types][]` and `filter[sentiments][]`, which silently drop *unrecognised values* and return the full unfiltered list.
</Note>

<CodeGroup>
  ```bash Single word theme={null}
  curl -g -u "$API_KEY:$SECRET_KEY" \
    'https://api.feedspace.io/v3/feeds?filter[search]=Dewalt'
  ```

  ```bash Multi-word theme={null}
  curl -g -u "$API_KEY:$SECRET_KEY" \
    'https://api.feedspace.io/v3/feeds?filter[search]=excellent%20service'
  ```
</CodeGroup>

### `filter[feed-types][]`

Restrict results to specific feed types. Allowed values: `video`, `audio`, `text`, `social`.

<Warning>
  Pass only the values listed above. If you send an unknown value (e.g. a typo like `vidoe`), the filter is silently dropped and the API returns the full unfiltered list of feeds — not an error. Validate your input client-side before sending.
</Warning>

<CodeGroup>
  ```bash Single theme={null}
  curl -u "$API_KEY:$SECRET_KEY" \
    'https://api.feedspace.io/v3/feeds?filter[feed-types][0]=video'
  ```

  ```bash Multiple (OR) theme={null}
  curl -u "$API_KEY:$SECRET_KEY" \
    'https://api.feedspace.io/v3/feeds?filter[feed-types][0]=video&filter[feed-types][1]=audio'
  ```

  ```bash All four theme={null}
  curl -u "$API_KEY:$SECRET_KEY" \
    'https://api.feedspace.io/v3/feeds?filter[feed-types][0]=video&filter[feed-types][1]=audio&filter[feed-types][2]=text&filter[feed-types][3]=social'
  ```
</CodeGroup>

<Note>
  The `video` filter also matches imported social videos (items with `feed_type: "social_feed"` and `social_feed_type: "manual_video"`). The same pattern applies to `audio` and `text` — the filter matches by content type, not by storage table.
</Note>

### `filter[favourite]`

Return only favourited feeds. Pass `true` to enable; omit this parameter to include favourited and non-favourited feeds.

```bash theme={null}
curl -u "$API_KEY:$SECRET_KEY" \
  'https://api.feedspace.io/v3/feeds?filter[favourite]=true'
```

### `filter[review_with_comment]`

Return only feeds that have a non-empty comment. Pass `true` to enable; omit this parameter to include feeds with or without comments.

```bash theme={null}
curl -u "$API_KEY:$SECRET_KEY" \
  'https://api.feedspace.io/v3/feeds?filter[review_with_comment]=true'
```

### `filter[sentiments][]`

Filter by AI-detected sentiment. Allowed values: `positive`, `negative`, `neutral`.

<Warning>
  Pass only the values listed above. If you send an unknown value, the filter is silently dropped and the API returns the full unfiltered list of feeds — not an error. Validate your input client-side before sending.
</Warning>

<CodeGroup>
  ```bash Single theme={null}
  curl -u "$API_KEY:$SECRET_KEY" \
    'https://api.feedspace.io/v3/feeds?filter[sentiments][0]=positive'
  ```

  ```bash Multiple (OR) theme={null}
  curl -u "$API_KEY:$SECRET_KEY" \
    'https://api.feedspace.io/v3/feeds?filter[sentiments][0]=positive&filter[sentiments][1]=neutral&filter[sentiments][2]=negative'
  ```
</CodeGroup>

### `filter[star-rating][]`

Filter by star rating. Accepts integers from `1` through `5`.

<Warning>
  Pass only integers `1`–`5`. Out-of-range values (e.g. `99`) return an empty result, while non-numeric values (e.g. `abc`) are coerced to `0` and may return unrated items. Validate your input client-side.
</Warning>

<CodeGroup>
  ```bash Single theme={null}
  curl -u "$API_KEY:$SECRET_KEY" \
    'https://api.feedspace.io/v3/feeds?filter[star-rating][0]=5'
  ```

  ```bash Multiple (OR) theme={null}
  curl -u "$API_KEY:$SECRET_KEY" \
    'https://api.feedspace.io/v3/feeds?filter[star-rating][0]=4&filter[star-rating][1]=5'
  ```
</CodeGroup>

### `filter[feed-forms][]`

Filter to feeds collected via specific review forms. Pass the numeric form `id` — **not** `unique_form_id`.

Get the numeric `id` from the [List Review Forms](/api-reference/ReviewForms/get-all-forms) endpoint — it is the integer `id` field on each form object.

```bash theme={null}
curl -u "$API_KEY:$SECRET_KEY" \
  'https://api.feedspace.io/v3/feeds?filter[feed-forms][0]=10644'
```

### `filter[review-labels][]`

Filter by review label ID(s). Label IDs are strings (e.g. `01krk3zwze14apa6gmx045ky8a`).

Get the available label IDs from the [List Review Labels](/api-reference/Labels/list-labels) endpoint — use the `id` field from each label object.

```bash theme={null}
curl -u "$API_KEY:$SECRET_KEY" \
  'https://api.feedspace.io/v3/feeds?filter[review-labels][0]=01krk3zwze14apa6gmx045ky8a'
```

### `filter[imported-froms][]`

Filter to feeds imported from specific source platforms (Google, YouTube, Wistia, Product Hunt, etc.). Accepts numeric platform IDs.

<Note>
  A public listing endpoint for import-platform IDs is on the roadmap. Until then, contact support to obtain the ID mapping for the platforms relevant to your workspace.
</Note>

```bash theme={null}
curl -u "$API_KEY:$SECRET_KEY" \
  'https://api.feedspace.io/v3/feeds?filter[imported-froms][0]=21'
```

## Pagination

Results are paginated with **15 items per page**. Use `?page=` to navigate.

```bash theme={null}
curl -u "$API_KEY:$SECRET_KEY" \
  'https://api.feedspace.io/v3/feeds?page=2'
```

The response includes `first_page_url`, `next_page_url`, and `prev_page_url`. `next_page_url` is `null` on the last page; `prev_page_url` is `null` on the first.

## Combining filters

Mix any of the above; a keyword search combines with the other filters the same way (AND). The example below requests positive-sentiment reviews that mention `Dewalt`:

```bash theme={null}
curl -g -u "$API_KEY:$SECRET_KEY" \
  'https://api.feedspace.io/v3/feeds?filter[search]=Dewalt&filter[sentiments][0]=positive'
```

This next example requests favourited video- or audio-type feeds with positive sentiment, a 4- or 5-star rating, and a non-empty comment:

```bash theme={null}
curl -u "$API_KEY:$SECRET_KEY" \
  'https://api.feedspace.io/v3/feeds?filter[feed-types][0]=video&filter[feed-types][1]=audio&filter[favourite]=true&filter[sentiments][0]=positive&filter[star-rating][0]=4&filter[star-rating][1]=5&filter[review_with_comment]=true'
```

## URL encoding the brackets

The `filter[...]` syntax contains literal `[` and `]`. Most HTTP clients (Postman, Python `requests`, JavaScript `fetch`, Insomnia) handle this transparently. Two things to watch for:

* **`curl`** interprets `[` and `]` as URL-globbing ranges by default. Add the `-g` flag (alias `--globoff`) — or URL-encode as `%5B` and `%5D` — to suppress that behaviour:
  ```bash theme={null}
  curl -g -u "$API_KEY:$SECRET_KEY" \
    'https://api.feedspace.io/v3/feeds?filter[feed-types][0]=video'
  ```
* **Browsers / fully-encoded clients** will accept the percent-encoded form too:
  ```
  https://api.feedspace.io/v3/feeds?filter%5Bfeed-types%5D%5B0%5D=video
  ```

## Response shape

Each item in `data.data[]` carries a top-level `feed_type` (`audio_feed`, `video_feed`, `text_feed`, or `social_feed`) which determines which type-specific block is present on the item:

* `feed_type: "audio_feed"` → `audio_feed` block with `file_url`, `transcript`, etc.
* `feed_type: "video_feed"` → `video_feed` block with `file_url`, `static_thumb_url`, `transcript`, etc.
* `feed_type: "text_feed"` → `text_feed` block with the review text content.
* `feed_type: "social_feed"` → `social_feed` block with `social_platform`, `attachments`, plus a `social_feed_type` field on the item (`social`, `manual_text`, `manual_video`) that indicates the sub-category.

All items also include `review_labels` (an array of `{ id, name, attributes }` objects) — possibly empty.


## OpenAPI

````yaml GET /feeds
openapi: 3.1.0
info:
  title: Feedspace API
  description: Feedspace API v3 - Feedback and testimonial management platform
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.feedspace.io/v3
security: []
paths:
  /feeds:
    get:
      tags:
        - Feeds
      description: >-
        Get a paginated list of feeds across the workspace. Supports optional
        filters: `filter[search]`, `filter[feed-types][]`, `filter[favourite]`,
        `filter[review_with_comment]`, `filter[sentiments][]`,
        `filter[star-rating][]`, `filter[feed-forms][]`,
        `filter[review-labels][]`, and `filter[imported-froms][]`. All filters
        are optional; filters of different types are AND-combined, while values
        within a single filter array are OR-combined.
      parameters:
        - name: filter[search]
          in: query
          description: >-
            Free-text keyword search. Matches the keyword (case-insensitive
            substring) against the reviewer's name and the review text/comment,
            returning only feeds that contain it. Multi-word strings are matched
            literally (encode spaces as %20 or +). An unmatched keyword returns
            an empty result. Note: the bare `search` query parameter has no
            effect on this endpoint — use `filter[search]`.
          required: false
          schema:
            type: string
        - name: filter[feed-types][]
          in: query
          description: >-
            Restrict to specific feed types. Repeat the parameter to combine
            multiple types (OR). The 'video' value also matches imported social
            videos (social_feed_type: manual_video); the same applies to other
            types.
          required: false
          schema:
            type: array
            items:
              type: string
              enum:
                - audio
                - video
                - text
                - social
        - name: filter[favourite]
          in: query
          description: >-
            Return only favourited feeds. Pass `true` to enable; omit to include
            all feeds.
          required: false
          schema:
            type: string
            enum:
              - 'true'
        - name: filter[review_with_comment]
          in: query
          description: >-
            Return only feeds that have a non-empty comment. Pass `true` to
            enable; omit to include all feeds.
          required: false
          schema:
            type: string
            enum:
              - 'true'
        - name: filter[sentiments][]
          in: query
          description: >-
            Filter by AI-detected sentiment. Repeat the parameter to combine
            multiple values (OR).
          required: false
          schema:
            type: array
            items:
              type: string
              enum:
                - positive
                - negative
                - neutral
        - name: filter[star-rating][]
          in: query
          description: >-
            Filter by star rating (1 through 5). Repeat the parameter to combine
            multiple values (OR).
          required: false
          schema:
            type: array
            items:
              type: integer
              minimum: 1
              maximum: 5
        - name: filter[feed-forms][]
          in: query
          description: >-
            Filter to feeds collected via specific review forms. Pass the
            numeric form ID (the integer `id` from GET /forms, not
            `unique_form_id`).
          required: false
          schema:
            type: array
            items:
              type: integer
        - name: filter[review-labels][]
          in: query
          description: >-
            Filter by review label ID(s). Use the `id` field returned by `GET
            /review-labels` as the value.
          required: false
          schema:
            type: array
            items:
              type: string
        - name: filter[imported-froms][]
          in: query
          description: >-
            Filter to feeds imported from specific source platforms. Accepts
            numeric platform IDs. A public listing endpoint for these IDs is on
            the roadmap.
          required: false
          schema:
            type: array
            items:
              type: integer
        - name: page
          in: query
          description: >-
            Page number (default: 1). The response is paginated with 15 items
            per page.
          required: false
          schema:
            type: integer
      responses:
        '200':
          description: Feeds list fetched successfully.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/PaginatedResponse'
                  show_migration_banner:
                    type: boolean
                    description: Whether to show migration banner
                  show_updated_banner:
                    type: boolean
                  updated_banner_video:
                    type: string
                  show_workspaces_merge_banner:
                    type: boolean
                  unique_form_id:
                    type: string
                  marketing_materials:
                    type: integer
                    description: Count of marketing materials
              examples:
                success:
                  value:
                    data:
                      current_page: 1
                      data:
                        - feed_type: audio_feed
                          id: 544
                          unique_feedback_id: qrTTi2
                          comment: null
                          favourite: 0
                          is_locked: 0
                          is_video_converted: null
                          is_audio_converted: 1
                          customer_designation: null
                          created_at: '2025-04-07T08:50:44.000000Z'
                          feed_fields:
                            name: Prajakta Managuli
                            profile_pic_url: null
                            position: Content Writer
                            organization_name: Techuplabs
                            consent: null
                          audio_feed:
                            is_audio_converted: 1
                            transcript: null
                            file_url: >-
                              https://dm219012nbq21.cloudfront.net/uploads/zhBU6t/audio-feed/feed_zhBU6t1744015722679.mp3
                          is_download_enabled: false
                      first_page_url: https://api.feedspace.io/v3/feeds?page=1
                      from: 1
                      next_page_url: null
                      path: https://api.feedspace.io/v3/feeds
                      per_page: 15
                      prev_page_url: null
                      to: 2
                    show_migration_banner: false
                    show_updated_banner: false
                    updated_banner_video: >-
                      https://feedspace-test.s3.ap-south-1.amazonaws.com/uploads/F43kUl/video-feed/feed_MJcmzA81710841191347.mp4
                    show_workspaces_merge_banner: false
                    unique_form_id: form_gSgElcsXX8LaI6RtMA6JqlkN
                    marketing_materials: 0
      security:
        - basicAuth: []
components:
  schemas:
    PaginatedResponse:
      type: object
      properties:
        current_page:
          type: integer
        data:
          type: array
          items:
            type: object
        first_page_url:
          type: string
        from:
          type: integer
        next_page_url:
          type:
            - string
            - 'null'
        path:
          type: string
        per_page:
          type: integer
        prev_page_url:
          type:
            - string
            - 'null'
        to:
          type: integer
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: >-
        HTTP Basic Authentication using API Key and Secret Key. The credentials
        should be Base64 encoded in the format 'api_key:secret_key'. You can
        obtain your API Key and Secret Key from Feedspace → Automation → API
        (https://app.feedspace.io/automation/api).

````