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

# Site builders

> Use an Endpoint form on Webflow, Framer, WordPress, Squarespace, Wix, or Carrd.

Most website builders let you paste a block of HTML into a page. That is all an Endpoint form needs: you paste the form, replace one value, and publish.

## Pick your builder

* [Webflow](/developer-api/site-builders/webflow)
* [Framer](/developer-api/site-builders/framer)
* [WordPress](/developer-api/site-builders/wordpress)
* [Squarespace](/developer-api/site-builders/squarespace)
* [Wix](/developer-api/site-builders/wix)
* [Carrd](/developer-api/site-builders/carrd)

Every guide uses the same embed code, so you can switch builders later without changing your form.

## Before you start

1. Create an [Endpoint form](/developer-api/quick-start) and copy the **Public Key** from its **General** tab. It is the last part of the **Form endpoint URL**.
2. Check that your plan allows custom code or an HTML embed. Many builders reserve this for paid plans, and a free plan may hide the option or ignore scripts.
3. Open the **Submissions** tab so you can watch the test response arrive.

## What the embed does

The form stays on the page. After the visitor presses **Send message**, the button is disabled, a status line shows the result, and the form clears on success. Errors from the endpoint, such as a missing CAPTCHA token or a closed form, appear in that same status line.

It does not redirect, because some builders show embeds inside a frame where a redirect would load your thank-you page inside the frame instead of the full page.

<Note>
  Builders that render an embed inside a frame (such as Framer and Wix) send submissions from the frame's address, not your domain. If you turned on [domain restriction](/developer-api/submit-a-response#domain-restriction) for the form, those submissions may be rejected with `domain_not_allowed`. Keep it off for forms used this way.
</Note>

## Customizing the fields

Every input needs a `name`; the name becomes the answer label in Submissions. Add fields the same way you would in HTML:

```html theme={null}
<label for="so-company">Company</label>
<input id="so-company" name="company" />
```

Builder-specific styling (fonts, colors, spacing) belongs in the `<style>` block of the embed. The form inherits the page's font by default.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.