---
title: "Fetch Full Survey Response"
method: GET
path: "/survey_workflows/runs/{id}"
tags: ["SurveyWorkflow::Run"]
---

# Fetch Full Survey Response

`GET /survey_workflows/runs/{id}`

## Request

- Base URL: `https://myworkspace.myclickfunnels.com/api/v2`
- URL: `https://myworkspace.myclickfunnels.com/api/v2/survey_workflows/runs/{id}`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/myclickfunnels/apis/clickfunnels-api/docs/survey_workflows/runs/:id/get.ts> (a function with typed inputs; its response is checked against the schema)

Fetch one survey run with every saved answer. The `survey_workflow_run.completed` webhook sends the same run object. See the [Forms and surveys guide](https://developers.myclickfunnels.com/docs/forms).

## Path parameters

- `id` string, required

## Response `200`

OK

- SurveyWorkflowRunAttributes: The full saved response associated with a run. Submissions may be shared across runs; no originating run is recorded on an answer. Labels are current, deleted rows are absent, and anonymous contacts are included. Paused commonly means waiting at a question. Canceled takes precedence over completed; completed_at alone does not establish success. Submissions are ordered by ID.
  - `id` integer: Survey response ID
  - `public_id` string, nullable: Public ID
  - `survey_workflow_id` integer: Survey ID
  - `contact_id` integer, nullable: Respondent contact ID; null when the respondent is not identified
  - `status` 'active' | 'paused' | 'completed' | 'canceled': Response status; completed once the respondent finishes
  - `preview` boolean: True for a run from the survey builder's preview. Preview runs send no webhook.
  - `completed_at` string, date-time, nullable: When the respondent finished; null until completed
  - `canceled_at` string, date-time, nullable: When the response was canceled; null unless canceled
  - `created_at` string, date-time: Added
  - `updated_at` string, date-time: Updated
  - `form_submissions` SurveySubmissionAttributes[]: Form submissions recorded during this response
    - `id` integer: Form submission ID
    - `public_id` string, nullable: Public ID
    - `form_id` integer: Form ID
    - `contact_id` integer, nullable: Contact ID; null when no contact is linked
    - `answers` SurveyAnswerAttributes[]: Every currently stored answer, ordered by created_at descending then ID descending. No deduplication by field or nested truncation; an older corrected row keeps its creation position.
      - `id` integer: Answer ID
      - `public_id` string, nullable: Public ID
      - `field` object, nullable: The answered Form field with its current key and label. Null when the field was deleted.
        - `id` integer: Form field ID
        - `public_id` string, nullable: Public ID
        - `key` string, nullable: Field key
        - `label` string, nullable: Field label shown to the respondent
      - `entry` string, nullable: Text answer; null when the answer is only option selections
      - `selected_options` SurveySelectedOptionAttributes[]: All direct single-choice and joined choices, deduplicated and ordered by option ID; includes hidden/generated Other labels.
        - `id` integer: Option ID
        - `public_id` string, nullable: Public ID
        - `label` string, nullable: Option label
      - `created_at` string, date-time: Added
      - `updated_at` string, date-time: Updated

## Other responses

- `401`: Unauthorized
- `403`: Forbidden — this request's workspace is closed to it. Three cases return this: * The access token is limited to specific workspaces (see the workspace selection made when the key was provisioned, or the workspaces approved on the OAuth consent screen) and the request acts on a workspace outside that set. * The access token is limited to specific workspaces and the request's workspace could not be determined at all. The gate is fail-closed, so a workspace-limited token is denied rather than allowed through when the target workspace is ambiguous. * The workspace's team has no active ClickFunnels subscription: it was canceled, is paused, or is locked out after failed payments. Reads and writes are both refused until the subscription is reactivated, and the body carries `"code": "subscription_inactive"`. A token with no workspace restriction never receives the first two.
- `404`: Not Found

## Changes

- **2026-11-03** `511d88b30aea`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/myclickfunnels/apis/clickfunnels-api/changes/survey_workflows/runs/:id/get.md)

---

[API](https://skmtc.dev/myclickfunnels/apis/clickfunnels-api.md) - [All operations](https://skmtc.dev/myclickfunnels/apis/clickfunnels-api/llms.txt) - [OpenAPI document](https://skmtc.dev/myclickfunnels/apis/clickfunnels-api/revisions/511d88b30aea?raw)
