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

# Typeform

> Typeform API for reading and writing forms, retrieving form responses, managing webhooks, and organizing workspaces, themes, and images.

Typeform API for reading and writing forms, retrieving form responses, managing webhooks, and organizing workspaces, themes, and images. Best for pulling survey responses into downstream tools, automating form creation, or wiring webhook deliveries into other systems. Covers the full Create, Responses, and Webhooks APIs on api.typeform.com. US data center only — EU Enterprise accounts (api.eu.typeform.com / api.typeform.eu) are not currently supported.

10 example endpoints available through Lava's AI Gateway. See the [Typeform API docs](https://www.typeform.com/developers/) for full documentation.

<Warning>This provider requires your own credentials — connect your API key or OAuth account before use.</Warning>

<Info>This is a **catch-all provider** — any valid URL under `https://api.typeform.com` is supported. Any Typeform API endpoint. Construct URL as [https://api.typeform.com/\&#123;path\&#125](https://api.typeform.com/\&#123;path\&#125);. Includes the Create API (forms, themes, images, workspaces, accounts), the Responses API (form submissions), and the Webhooks API. See [https://www.typeform.com/developers/](https://www.typeform.com/developers/) for full reference. Rate limit: 2 requests per second sustained; bursts beyond that return HTTP 429. Video upload is two-step: POST /media/videos returns a pre-signed Google Cloud Storage upload\_url — PUT the file bytes directly to that URL, do not proxy step 2 through Lava (the URL is auth-less and signed). US data center only. The endpoints below are curated examples.</Info>

## Endpoints

### Retrieve the authenticated Typeform account

**GET** `https://api.typeform.com/me` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.typeform.com/me', { method: 'GET' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.typeform.com%2Fme" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY"
    ```
  </Tab>
</Tabs>

### List forms in the account

**GET** `https://api.typeform.com/forms` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.typeform.com/forms', { method: 'GET' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.typeform.com%2Fforms" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY"
    ```
  </Tab>
</Tabs>

### Retrieve a single form definition

**GET** `https://api.typeform.com/forms/{form_id}` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.typeform.com/forms/{form_id}', { method: 'GET' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.typeform.com%2Fforms%2F%7Bform_id%7D" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY"
    ```
  </Tab>
</Tabs>

### Create a new form

**POST** `https://api.typeform.com/forms` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.typeform.com/forms', { body: {"title":"My new form"} });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.typeform.com%2Fforms" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY" \
      -H "Content-Type: application/json" \
      -d '{"title":"My new form"}'
    ```
  </Tab>
</Tabs>

### Retrieve form responses (with landing and submission info)

**GET** `https://api.typeform.com/forms/{form_id}/responses` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.typeform.com/forms/{form_id}/responses', { method: 'GET' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.typeform.com%2Fforms%2F%7Bform_id%7D%2Fresponses" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY"
    ```
  </Tab>
</Tabs>

### List webhooks configured on a form

**GET** `https://api.typeform.com/forms/{form_id}/webhooks` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.typeform.com/forms/{form_id}/webhooks', { method: 'GET' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.typeform.com%2Fforms%2F%7Bform_id%7D%2Fwebhooks" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY"
    ```
  </Tab>
</Tabs>

### Create or update a webhook on a form

**PUT** `https://api.typeform.com/forms/{form_id}/webhooks/{tag}` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.typeform.com/forms/{form_id}/webhooks/{tag}', {
      method: 'PUT',
      body: {
    "url": "https://example.com/typeform-webhook",
    "enabled": true
    },
    });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl -X PUT "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.typeform.com%2Fforms%2F%7Bform_id%7D%2Fwebhooks%2F%7Btag%7D" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY" \
      -H "Content-Type: application/json" \
      -d '{"url":"https://example.com/typeform-webhook","enabled":true}'
    ```
  </Tab>
</Tabs>

### List workspaces in the account

**GET** `https://api.typeform.com/workspaces` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.typeform.com/workspaces', { method: 'GET' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.typeform.com%2Fworkspaces" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY"
    ```
  </Tab>
</Tabs>

### Update a workspace using JSON Patch operations

**PATCH** `https://api.typeform.com/workspaces/{workspace_id}` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.typeform.com/workspaces/{workspace_id}', {
      method: 'PATCH',
      body: [
    {
      "op": "replace",
      "path": "/name",
      "value": "New workspace name"
    }
    ],
    });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl -X PATCH "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.typeform.com%2Fworkspaces%2F%7Bworkspace_id%7D" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY" \
      -H "Content-Type: application/json" \
      -d '[{"op":"replace","path":"/name","value":"New workspace name"}]'
    ```
  </Tab>
</Tabs>

### Delete a form from the account

**DELETE** `https://api.typeform.com/forms/{form_id}` — Free

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.typeform.com/forms/{form_id}', { method: 'DELETE' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl -X DELETE "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.typeform.com%2Fforms%2F%7Bform_id%7D" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY" \
      -H "Content-Type: application/json"
    ```
  </Tab>
</Tabs>

## Next Steps

<CardGroup cols={2}>
  <Card title="All Providers" icon="grid" href="/gateway/supported-providers">
    Browse all supported AI providers
  </Card>

  <Card title="Forward Proxy" icon="route" href="/gateway/forward-proxy">
    Learn how to construct proxy URLs and authenticate requests
  </Card>
</CardGroup>
