# Get All Responses



<Endpoint method="GET" path="/api/v1/responses" summary="Get all responses for an environment">
  <ParamField header="x-api-key" type="string">
    Your API key for authentication.
  </ParamField>
</Endpoint>

Returns all form responses across all forms in your environment. By default, only completed responses are returned.

## Request [#request]

<Tip>
   Learn how to create an API key in the 

  [API Keys](/docs/api-reference/api-keys)

   documentation. 
</Tip>

<CodeBlockTabs defaultValue="cURL">
  <CodeBlockTabsList>
    <CodeBlockTabsTrigger value="cURL">
      cURL
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="TypeScript">
      TypeScript
    </CodeBlockTabsTrigger>
  </CodeBlockTabsList>

  <CodeBlockTab value="cURL">
    ```bash
    curl -X GET 'https://forms.withsurface.com/api/v1/responses' \
      -H 'x-api-key: your-api-key-here'
    ```
  </CodeBlockTab>

  <CodeBlockTab value="TypeScript">
    ```typescript
    const response = await fetch('https://forms.withsurface.com/api/v1/responses', {
      method: 'GET',
      headers: {
        'x-api-key': 'your-api-key-here',
      },
    });

    if (!response.ok) {
      throw new Error(`HTTP error! status: ${response.status}`);
    }

    const data = await response.json();
    ```
  </CodeBlockTab>
</CodeBlockTabs>

## Response [#response]

<ResponseField name="data" type="array">
  Array of response objects for all forms in your environment.

  <Expandable title="Response object properties">
    <ResponseField name="id" type="string">
      Unique identifier for the response.
    </ResponseField>

    <ResponseField name="createdAt" type="string">
      ISO 8601 timestamp of when the response was created.
    </ResponseField>

    <ResponseField name="updatedAt" type="string">
      ISO 8601 timestamp of when the response was last updated.
    </ResponseField>

    <ResponseField name="dataUpdatedAt" type="string">
      ISO 8601 timestamp of when the response data was last updated.
    </ResponseField>

    <ResponseField name="finished" type="boolean">
      Whether the response is complete (true) or partial (false).
    </ResponseField>

    <ResponseField name="status" type="number">
      Status code of the response.
    </ResponseField>

    <ResponseField name="formId" type="string">
      ID of the form this response belongs to.
    </ResponseField>

    <ResponseField name="version" type="string">
      Version of the response format.
    </ResponseField>

    <ResponseField name="data" type="array">
      Array of question responses, each containing a `response` object and `questionId`. Each response object follows a specific shape based on the component type. See the [Component Response Shapes](/docs/api-reference/responses/component-response-shapes) documentation for details on all supported component types.
    </ResponseField>

    <ResponseField name="meta" type="object">
      Metadata associated with the response, including `leadId`.
    </ResponseField>

    <ResponseField name="personAttributes" type="object">
      Attributes about the person who submitted the response, including IP address, country, and form visit statistics.
    </ResponseField>
  </Expandable>
</ResponseField>

### Example Response [#example-response]

<ResponseExample name="200 - Success">
  ```json
  {
    "data": [
      {
        "id": "cmasda085pa0018js0barsadxn5b",
        "createdAt": "2026-01-20T19:45:59.519Z",
        "updatedAt": "2026-01-20T19:46:37.149Z",
        "dataUpdatedAt": "2026-01-20T19:46:01.725Z",
        "finished": true,
        "status": 4,
        "formId": "casdkgkufzp0001kw0btrmz1asd",
        "version": "2.0",
        "data": [
          {
            "response": {
              "type": "IdentityInfo",
              "headline": "Identity Info",
              "emailAddress": "john.doe@example.com",
              "firstName": "John",
              "lastName": "Doe",
              "companyName": "Example Inc.",
              "componentShapeVersion": "2.0"
            },
            "questionId": "gOyoYYzZRnvo"
          },
        ],
        "meta": {
          "leadId": "lead_1234567890"
        },
        "personAttributes": {
          "ip": "123.45.67.89",
          "country": "United States",
          "visitedForm": 1,
          "completedForm": 0
        }
      },
    ]
  }
  ```
</ResponseExample>
