V3 Feedback Records

Get a feedback record

Changed on

Returns one feedback record by id, with its read-only assignment in the active directory taxonomy. The assignment reflects the current visible path in the active run; editing a record does not reclassify it until another run. taxonomy is null if its lookup is unavailable. The gateway looks the record up to learn its dataset and authorizes against that, so no tenant_id is sent. Requires an API key with read permission (or higher) on a workspace the record's dataset is assigned to.

An unknown id, or one in a dataset you cannot read, answers 403 rather than 404, so ids cannot be probed. The exception is the minute after a delete: the gateway still has the record's dataset cached, authorizes the call, and the store answers 404.

get/api/v3/feedbackRecords/{id}

Request

  • Base URL
    https://app.formbricks.com
  • URL
    https://app.formbricks.com/api/v3/feedbackRecords/{id}
  • Auth
    API key in header x-api-key

Path parameters

idstring uuid required

Feedback record id (UUID). The dataset is resolved from the record itself, so the caller cannot choose which dataset it is authorized against. An id that is not a UUID answers 400, and an id whose dataset the API key cannot reach answers 403 rather than 404, so ids cannot be probed. The gateway caches the record→dataset lookup for 60 seconds, so for up to a minute after a delete the id is still authorized and the store answers 404; after that the same id answers 403.

Response

Feedback record retrieved

idstring uuid required

UUIDv7 primary key.

tenant_idstring cuid2 required

The feedback dataset this record belongs to (the dataset id, as shown by the MCP list_feedback_datasets tool).

collected_atstring date-time required

When the feedback was given.

created_atstring date-time required

When the record was stored. Diverges from collected_at on a historical re-import.

updated_atstring date-time required

When the record was last changed.

source_typestring required

Type of feedback source, e.g. survey, review, feedback_form.

source_idstring

Reference to the survey / form / ticket the record came from.

source_namestring

Human-readable name of the source.

submission_idstring required

Identifier of the logical submission this record belongs to (e.g. a response id). Records are unique per (tenant_id, submission_id, field_id).

field_idstring required

Identifier of the question / field.

field_labelstring

The question text.

field_group_idstring

Stable identifier grouping related fields (ranking, matrix and grid questions).

field_group_labelstring

Human-readable question text for the group.

field_type'text' | 'categorical' | 'nps' | 'csat' | 'ces' | 'rating' | 'number' | 'boolean' | 'date' required

The type of a feedback field, which determines which value_* member carries the answer: text → value_text (the only enrichable type), categorical → value_text + value_id, nps / csat / ces / rating / number → value_number, boolean → value_boolean, date → value_date.

languagestring

ISO language code the feedback was given in.

user_idstring

End-user identifier (e.g. an anonymous id or an email hash).

value_textstring

Text answer.

value_idstring

Stable id of the selected option in the source system (e.g. a survey choice id), stored alongside value_text so choice answers keep their identity across label edits and languages. Opaque. Absent for free-text and non-choice answers.

value_numbernumber double

Numeric answer (ratings, NPS scores, numbers).

value_booleanboolean

Yes / no answer.

value_datestring date-time

Date answer.

sentiment'very_negative' | 'negative' | 'neutral' | 'positive' | 'very_positive' | 'mixed'

Sentiment polarity label inferred from value_text by the sentiment enrichment: five ordinal levels plus a distinct mixed. Server-generated and read-only.

sentiment_scorenumber double

Signed sentiment polarity from -1.0 (very negative) to 1.0 (very positive). Read-only; absent until the record is enriched.

emotionsFeedbackRecordEmotion[]

Emotions inferred from value_text; multi-label from a fixed set. Read-only, and never an empty array — the column is either absent or has at least one label. Absent covers two different states: not yet classified, and classified with no emotion detected. Do not read absence as "not enriched yet"; has_emotions=false selects both, and the enrichment-status endpoint is what distinguishes them.

value_text_translatedstring

value_text translated into the dataset's configured target language. Read-only; absent until the record is enriched.

translation_lang_keystring

BCP-47 locale that value_text_translated was produced in. Read-only; absent until the record is enriched.

Changes

    • breaking

      the response's body type changed from object to no type for status

    • breaking

      removed the required property from the response with the status

    • breaking

      removed the required property from the response with the status

    • breaking

      removed the required property from the response with the status

    • breaking

      removed the required property from the response with the status

    • breaking

      removed the required property from the response with the status

    • breaking

      removed the required property from the response with the status

    • breaking

      removed the required property from the response with the status

    • breaking

      removed the required property from the response with the status

    • breaking

      removed the required property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • info

      added subschema #2 to the response body allOf list for the response status

    • info

      endpoint added