---
title: "List feedback records with filters"
method: GET
path: "/v1/feedback-records"
tags: ["Feedback Records"]
---

# List feedback records with filters

`GET /v1/feedback-records`

Lists feedback records for a required tenant_id with optional additional filters and pagination

## Query parameters

- `tenant_id` string, required — Tenant ID (required for isolation). NULL bytes not allowed.
- `submission_id` string — Filter by submission ID (e.g. UUID from webhook idempotency). NULL bytes not allowed.
- `source_type` string — Filter by source type. NULL bytes not allowed.
- `source_id` string — Filter by source ID (NULL bytes not allowed)
- `field_id` string
- `field_group_id` string — Filter by field group ID (for ranking/matrix questions). NULL bytes not allowed.
- `field_type` 'text' | 'categorical' | 'nps' | 'csat' | 'ces' | 'rating' | 'number' | 'boolean' | 'date' — Filter by field type. NULL bytes not allowed.
- `user_id` string — Filter by user ID. NULL bytes not allowed.
- `since` string, date-time — Filter by collected_at >= since (ISO 8601 format). Must be between 1970-01-01 and 2080-12-31.
- `until` string, date-time — Filter by collected_at <= until (ISO 8601 format). Must be between 1970-01-01 and 2080-12-31.
- `limit` integer — Number of results to return (max 1000)
- `cursor` string

## Response `200`

OK

- ListFeedbackRecordsOutputBody
  - `data` FeedbackRecordData[], required — List of feedback records
    - `collected_at` string, date-time, required — When the feedback was collected
    - `created_at` string, date-time, required — When this record was created
    - `field_id` string, required — Identifier for the question/field
    - `field_label` string — The actual question text
    - `field_group_id` string — Stable identifier grouping related fields (for ranking, matrix, grid questions)
    - `field_group_label` string — Human-readable question text for the group
    - `field_type` 'text' | 'categorical' | 'nps' | 'csat' | 'ces' | 'rating' | 'number' | 'boolean' | 'date', required — Type of field
    - `id` string, uuid, required — UUIDv7 primary key
    - `language` string — ISO language code. NULL bytes not allowed.
    - `metadata` object — Additional context
    - `source_id` string — Reference to survey/form/ticket ID
    - `source_name` string — Human-readable name
    - `source_type` string, required — Type of feedback source
    - `submission_id` string, required — Identifier for the logical submission this record belongs to (required).
    - `tenant_id` string, required — Tenant/organization identifier. NULL bytes not allowed.
    - `updated_at` string, date-time, required — When this record was last updated
    - `user_id` string — User ID (e.g., anonymous ID or email hash)
    - `value_boolean` boolean — Boolean response
    - `value_date` string, date-time — Date response
    - `value_number` number, double — Numeric response
    - `value_text` string — Text response. NULL bytes not allowed.
  - `limit` integer, required — Limit used in query
  - `next_cursor` string — Opaque cursor for the next page (keyset paging). Present only when there may be more results. Use as the cursor query param for the next page.

## Other responses

- `400` — Bad Request (e.g. invalid cursor)
- `default` — Error

## Changes

- **2026-06-16** `d2fa5d9f2e98` — 2 warning
  - added the new `tenant_write_conflict` enum value to the `code` response property for the response status `400`
  - added the new `tenant_write_conflict` enum value to the `code` response property for the response status `default`
- **2026-06-03** `6907a0a9de00` — 2 breaking, 2 warning, 12 info
  - the `instance` response's property type/format changed from `string`/`uri` to `string`/`` for status `400`
  - the `instance` response's property type/format changed from `string`/`uri` to `string`/`` for status `default`
  - removed the optional property `errors` from the response with the `400` status
  - removed the optional property `errors` from the response with the `default` status
  - …12 more
- **2026-04-30** `2fe8dc460c4d` — 2 info
  - the `type` response's property default value `about:blank` was removed for the status `400`
  - the `type` response's property default value `about:blank` was removed for the status `default`
- **2026-04-29** `6cec289ce01b` — 1 warning
  - for the `query` request parameter `tenant_id`, the maxLength was set to `255`
- **2026-04-27** `af1436caa1b4` — 2 warning, 2 info
  - deleted the `query` request parameter `user_identifier`
  - removed the optional property `data/items/user_identifier` from the response with the `200` status
  - added the new optional `query` request parameter `user_id`
  - added the optional property `data/items/user_id` to the response with the `200` status

[Full history](https://skmtc.dev/formbricks/apis/formbricks-hub-api/changes/v1/feedback-records/get.md)

---

[API](https://skmtc.dev/formbricks/apis/formbricks-hub-api.md) · [All operations](https://skmtc.dev/formbricks/apis/formbricks-hub-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/formbricks/formbricks-hub-api/revisions/d2fa5d9f2e98/schema)
