---
title: Embed script reference
description: Every attribute and JavaScript method of the Finerlise embed script.
icon: code
search:
  keywords:
    [embed.js, v1.js, data attributes, javascript api, openPopup, widget]
---

Load the script once per page:

```html
<script async src="https://finerlise.com/embed/v1.js"></script>
```

Replace `your-form` below with your form's link name (the part after `/f/`).

## Inline embeds

```html
<iframe
  data-finerlise-src="https://finerlise.com/embed/your-form?dynamicHeight=1"
  width="100%"
  height="400"
  frameborder="0"
  title="My form"
></iframe>
```

The script loads the iframe lazily and resizes it to fit the form. URL options:

| Parameter | Effect |
| --- | --- |
| `dynamicHeight=1` | Grow and shrink with the form. |
| `hideTitle=1` | Hide the form title. |
| `alignLeft=1` | Align the form left. |
| `transparentBackground=1` | Make the background transparent. |
| Any [hidden field](/logic/hidden-fields) name | Pass its value, for example `utm_source=homepage`. |

## Popups

**Open on click:** add `data-finerlise-open` to any element.

```html
<button data-finerlise-open="your-form">Feedback</button>
```

**Open automatically:** put the attributes on the script tag.

```html
<script
  async
  src="https://finerlise.com/embed/v1.js"
  data-finerlise-popup="your-form"
  data-finerlise-trigger="scroll"
  data-finerlise-trigger-value="50"
></script>
```

| `data-finerlise-trigger` | `data-finerlise-trigger-value`                    |
| ------------------------ | ------------------------------------------------- |
| `load` (default)         | –                                                 |
| `delay`                  | Seconds to wait.                                  |
| `scroll`                 | Percent of the page scrolled (1–100, default 50). |
| `exit`                   | – (opens when the mouse leaves the page).         |

## Floating widget

```html
<script
  async
  src="https://finerlise.com/embed/v1.js"
  data-finerlise-widget="your-form"
  data-finerlise-widget-position="bottom-right"
  data-finerlise-label="Feedback"
  data-finerlise-icon="1"
></script>
```

## Popup and widget attributes

All prefixed with `data-finerlise-`:

| Attribute | Effect |
| --- | --- |
| `position` | `bottom-right` (default), `bottom-left`, `bottom-center`, `top-right`, `top-left` or `center` (a modal). |
| `width` / `height` | Popup size in pixels. Width is 280–720 (default 376). Leave out `height` to fit the form. |
| `overlay` | Dim the page behind the popup. On by default for `center`. |
| `hide-title` | Hide the form title. |
| `align-left` | Align the form left. |
| `show-once` | Open only once per visitor and browser. |
| `do-not-show-after-submit` | Don't open again for people who responded. |
| `auto-close` | Close this many milliseconds after submit, for example `2000`. |
| `icon` | Show the Finerlise mark before the label (buttons and widgets). |
| `hidden-<name>` | Pass a hidden field value, for example `data-finerlise-hidden-plan="pro"`. |

## JavaScript API

```js
Finerlise.openPopup("your-form", { position: "bottom-right", width: 376 });
Finerlise.closePopup("your-form");
Finerlise.mountWidget("your-form", {
  widgetPosition: "bottom-left",
  label: "Help",
});
Finerlise.unmountWidget("your-form");
Finerlise.loadEmbeds(); // scan for new inline embeds, e.g. after client-side navigation
```

:::note The embedded form only reports its height and lifecycle events (loaded, submitted, redirect) to your page. It never sends answers. Use [webhooks](/developers/webhooks-reference) or the [API](/developers/rest-api-quickstart) for those. :::
