> ## 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.

# Squarespace

> Add an Endpoint form to a Squarespace page with a Code Block.

## 1. Copy your Public Key

In the dashboard, open your Endpoint form, go to **General**, and copy the Public Key from the **Form endpoint URL**.

## 2. Add the embed code

Copy this code and replace `YOUR_FORM_PUBLIC_KEY` with your Public Key:

```html theme={null}
<form id="surveyowl-form">
  <label for="so-name">Name</label>
  <input id="so-name" name="name" required />

  <label for="so-email">Email</label>
  <input id="so-email" name="email" type="email" required />

  <label for="so-message">Message</label>
  <textarea id="so-message" name="message" rows="5" required></textarea>

  <button type="submit">Send message</button>
  <p id="surveyowl-status" role="status"></p>
</form>

<style>
  #surveyowl-form { max-width: 480px; font-family: inherit; }
  #surveyowl-form label { display: block; margin: 0 0 4px; }
  #surveyowl-form input,
  #surveyowl-form textarea { display: block; width: 100%; box-sizing: border-box; margin: 0 0 14px; padding: 8px; font: inherit; }
</style>

<script>
  (function () {
    var form = document.getElementById('surveyowl-form');
    var status = document.getElementById('surveyowl-status');
    var button = form.querySelector('button[type="submit"]');

    form.addEventListener('submit', function (event) {
      event.preventDefault();
      button.disabled = true;
      status.textContent = 'Sending…';

      fetch('https://api.surveyowl.co/v1/submit/YOUR_FORM_PUBLIC_KEY', {
        method: 'POST',
        body: new FormData(form)
      })
        .then(function (response) {
          return response.json().then(function (result) {
            if (!response.ok) {
              var message = typeof result.error === 'string' ? result.error : result.error && result.error.message;
              throw new Error(message || 'Could not send the form.');
            }
          });
        })
        .then(function () {
          form.reset();
          status.textContent = 'Thanks — your message was sent.';
        })
        .catch(function (error) {
          status.textContent = error.message;
        })
        .then(function () {
          button.disabled = false;
        });
    });
  })();
</script>
```

## 3. Paste it into Squarespace

1. Edit the page and add a **Code** block where the form should appear.
2. Paste the code into the block.
3. Turn off **Display Source** so the code runs instead of being shown as text.
4. Save and publish the page.

## 4. Test it

Open the live page, send a test message, and check **Submissions** in the dashboard.

## Good to know

* Running JavaScript in a Code block depends on your Squarespace plan. If the form shows but does not submit, check that your plan supports it.
* Code blocks do not run reliably in the editor preview. Test on the published page.
* Style the form in the `<style>` block, or in **Custom CSS** under your site's design settings.
* With [domain restriction](/developer-api/submit-a-response#domain-restriction) on, add your site domain, including any `squarespace.com` address you use for testing.


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