Saltar al contenido
Docs

Crea formularios de suscripción, publícalos y rota su token público.

URL basehttps://api.emailit.com/v2AutenticaciónErroresLímites de velocidad

Crear un formulario

Crea un formulario de suscripción con estado draft y un token público. Requiere una clave de API con el permiso full. Formularios está en acceso anticipado.

Si omites definition, Emailit genera un formulario inicial: un paso con un título, un campo de email obligatorio y un botón Subscribe, además de un paso de confirmación. Crea y diseña los formularios en el panel, en Email MarketingForms, y después publícalos.

POST/forms

Parámetros del cuerpo

namestringobligatorio
El nombre del formulario. Los visitantes no lo ven.
typestringpor defecto: popup
Cómo se muestra el formulario: popup, full_page, flyout, embed o banner.
definitionobject

El contenido del formulario, guardado tal cual. Emailit solo lo comprueba al publicarlo. Campos de primer nivel:

  • version (entero): 1.
  • type (cadena): el tipo de formulario.
  • steps (array): cada paso tiene id, name, kind (form o success) y blocks. Los bloques tienen un id y un type: text, button (action: submit, next, close o go_to_url), image o un campo de entrada (email, text_input, phone, date, radio, checkbox, dropdown) con el name del campo, label y required.
  • styles, targeting, experiments (objetos): las reglas de apariencia y de visualización que define el editor de formularios.
settingsobject
Una configuración libre que se guarda con el formulario. Por defecto, {}.

Devuelve

Devuelve 201 Created con el objeto de formulario, incluidos definition y settings.

tokenstring
El token público que usa el script de inserción para cargar el formulario. Consulta Insertar un formulario.
statusstring
draft hasta que publicas el formulario; después, live.
published_atstring | null
Cuándo se publicó el formulario por última vez.

Devuelve 400 si falta name o está vacío, o si type no es uno de los valores permitidos.

POST/forms
Terminal
curl -X POST https://api.emailit.com/v2/forms \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Newsletter popup", "type": "popup" }'
JSON
{
  "object": "form",
  "id": "frm_3Bzpif9xswMlVbFvGZSPNixm5j5",
  "name": "Newsletter popup",
  "type": "popup",
  "status": "draft",
  "token": "9636697db6c8f136d6742cee9c86eb3ed53b89f0a44e3ce6",
  "created_at": "2026-10-01T11:20:31.000000+00:00",
  "updated_at": "2026-10-01T11:20:31.000000+00:00",
  "published_at": null,
  "definition": {
    "version": 1,
    "type": "popup",
    "steps": [
      {
        "id": "3Rb7Lq2NcX9vZt4Wm8Kd1Hs6PyE",
        "name": "Step 1",
        "kind": "form",
        "blocks": [
          { "id": "3Rb7Lq5TgB2kVw7Nn1Ps4Fd9QzA", "type": "text", "content": "<p>Join our list</p>" },
          {
            "id": "3Rb7Lq3JfM6xYc0Rr5Hh8Gk2SeU",
            "type": "email",
            "label": "<p>Email</p>",
            "placeholder": "you@example.com",
            "required": true,
            "name": "email"
          },
          { "id": "3Rb7Lq4WdP1zQa6Ee9Jj3Lm7TfV", "type": "button", "label": "<p>Subscribe</p>", "action": "submit" }
        ]
      },
      {
        "id": "3Rb7Lq2XkS8wUe3Tt6Mn0Bv5RgC",
        "name": "Success",
        "kind": "success",
        "blocks": [
          { "id": "3Rb7Lq6YhD4cFi9Uu2Oo7Cx1WhB", "type": "text", "content": "<p>Thanks for subscribing!</p>" }
        ]
      }
    ],
    "styles": {
      "backgroundColor": "#ffffff",
      "textColor": "#0f172a",
      "primaryColor": "#03a071",
      "borderRadius": 12,
      "fontFamily": "Inter, system-ui, sans-serif",
      "buttonStyle": "solid"
    },
    "targeting": {},
    "experiments": {}
  },
  "settings": {}
}

Obtener un formulario

Obtiene un formulario con su definición completa. Requiere una clave de API con el permiso full.

GET/forms/{id}

Parámetros de ruta

idstringobligatorio
El ID del formulario (frm_…).

Devuelve

Devuelve el objeto de formulario.

objectstring
Siempre form.
idstring
El ID del formulario, con el prefijo frm_.
namestring
El nombre del formulario.
typestring
popup, full_page, flyout, embed o banner.
statusstring
draft o live. Solo los formularios publicados se cargan en tu sitio.
tokenstring
El token público que usa el script de inserción.
definitionobject
Los pasos, los bloques, los estilos y la segmentación. Consulta Crear un formulario.
settingsobject
La configuración libre.
created_at, updated_at, published_atstring | null
Las marcas de tiempo en UTC. published_at es null hasta la primera publicación.

Devuelve 404 si el formulario no existe.

GET/forms/{id}
Terminal
curl https://api.emailit.com/v2/forms/frm_3Bzpif9xswMlVbFvGZSPNixm5j5 \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
JSON
{
  "object": "form",
  "id": "frm_3Bzpif9xswMlVbFvGZSPNixm5j5",
  "name": "Newsletter popup",
  "type": "popup",
  "status": "live",
  "token": "9636697db6c8f136d6742cee9c86eb3ed53b89f0a44e3ce6",
  "created_at": "2026-10-01T11:20:31.000000+00:00",
  "updated_at": "2026-10-01T11:48:02.000000+00:00",
  "published_at": "2026-10-01T11:48:02.000000+00:00",
  "definition": {
    "version": 1,
    "type": "popup",
    "steps": [
      {
        "id": "3Rb7Lq2NcX9vZt4Wm8Kd1Hs6PyE",
        "name": "Step 1",
        "kind": "form",
        "blocks": [
          { "id": "3Rb7Lq5TgB2kVw7Nn1Ps4Fd9QzA", "type": "text", "content": "<p>Get our monthly product notes</p>" },
          {
            "id": "3Rb7Lq3JfM6xYc0Rr5Hh8Gk2SeU",
            "type": "email",
            "label": "<p>Email</p>",
            "placeholder": "you@example.com",
            "required": true,
            "name": "email"
          },
          { "id": "3Rb7Lq4WdP1zQa6Ee9Jj3Lm7TfV", "type": "button", "label": "<p>Subscribe</p>", "action": "submit" }
        ]
      },
      {
        "id": "3Rb7Lq2XkS8wUe3Tt6Mn0Bv5RgC",
        "name": "Success",
        "kind": "success",
        "blocks": [
          { "id": "3Rb7Lq6YhD4cFi9Uu2Oo7Cx1WhB", "type": "text", "content": "<p>Thanks for subscribing!</p>" }
        ]
      }
    ],
    "styles": {
      "backgroundColor": "#ffffff",
      "textColor": "#0f172a",
      "primaryColor": "#03a071",
      "borderRadius": 12,
      "fontFamily": "Inter, system-ui, sans-serif",
      "buttonStyle": "solid"
    },
    "targeting": {},
    "experiments": {}
  },
  "settings": {}
}

Actualizar un formulario

Actualiza los campos que pasas y deja los demás sin cambios. Requiere una clave de API con el permiso full.

Los cambios en un formulario live son visibles para los visitantes de inmediato; no hace falta volver a publicarlo. Para editarlo sin afectar a los visitantes, primero despublícalo.

POST/forms/{id}

Parámetros de ruta

idstringobligatorio
El ID del formulario (frm_…).

Parámetros del cuerpo

namestring
El nombre nuevo. No puede estar vacío.
typestring
popup, full_page, flyout, embed o banner. Actualiza definition.type para que coincida.
definitionobject
Sustituye toda la definición. Para su estructura, consulta Crear un formulario.
settingsobject
Sustituye el objeto de configuración.

Devuelve

Devuelve el objeto de formulario actualizado. Devuelve 400 si un campo tiene un tipo incorrecto o name está vacío, y 404 si el formulario no existe.

POST/forms/{id}
Terminal
curl -X POST https://api.emailit.com/v2/forms/frm_3Bzpif9xswMlVbFvGZSPNixm5j5 \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Newsletter popup (October)" }'
JSON
{
  "object": "form",
  "id": "frm_3Bzpif9xswMlVbFvGZSPNixm5j5",
  "name": "Newsletter popup (October)",
  "type": "popup",
  "status": "live",
  "token": "9636697db6c8f136d6742cee9c86eb3ed53b89f0a44e3ce6",
  "created_at": "2026-10-01T11:20:31.000000+00:00",
  "updated_at": "2026-10-02T08:05:14.000000+00:00",
  "published_at": "2026-10-01T11:48:02.000000+00:00",
  "definition": {
    "version": 1,
    "type": "popup",
    "steps": [
      {
        "id": "3Rb7Lq2NcX9vZt4Wm8Kd1Hs6PyE",
        "name": "Step 1",
        "kind": "form",
        "blocks": [
          { "id": "3Rb7Lq3JfM6xYc0Rr5Hh8Gk2SeU", "type": "email", "label": "<p>Email</p>", "required": true, "name": "email" },
          { "id": "3Rb7Lq4WdP1zQa6Ee9Jj3Lm7TfV", "type": "button", "label": "<p>Subscribe</p>", "action": "submit" }
        ]
      },
      {
        "id": "3Rb7Lq2XkS8wUe3Tt6Mn0Bv5RgC",
        "name": "Success",
        "kind": "success",
        "blocks": [{ "id": "3Rb7Lq6YhD4cFi9Uu2Oo7Cx1WhB", "type": "text", "content": "<p>Thanks for subscribing!</p>" }]
      }
    ],
    "styles": { "primaryColor": "#03a071", "borderRadius": 12, "buttonStyle": "solid" },
    "targeting": {},
    "experiments": {}
  },
  "settings": {}
}

Listar formularios

Devuelve los formularios del espacio de trabajo, del más reciente al más antiguo, sin definition ni settings. Requiere una clave de API con el permiso full.

GET/forms

Parámetros de consulta

pageintegerpor defecto: 1
El número de página, empezando por 1.
limitintegerpor defecto: 10
Los formularios por página, de 1 a 100.
matchstring

all (por defecto) exige que se cumplan todos los filtros. or coincide con cualquier filtro. Consulta Filtrado.

orderstring

Clave de ordenación de esta lista. Consulta las claves de ordenación más abajo.

directionstring

asc o desc.

Claves de filtro

Los filtros usan parámetros de consulta key.condition=value, por ejemplo status.exact=live. Consulta Filtrado y ordenación.

Clave Tipo Notas
name string
type enum popup, full_page, flyout, embed, banner
status enum draft, live
created_at date

Claves de orden para order: name, type, status, created_at.

Devuelve

dataobject[]
Los formularios de esta página: object, id, name, type, status, token, created_at, updated_at, published_at.
total_recordsinteger
El número de formularios que coinciden con la consulta.
next_page_urlstring | null
La ruta de la página siguiente, o null en la última página. Solo incluye page y limit; vuelve a añadir tu búsqueda y tus filtros cuando la sigas.
previous_page_urlstring | null
La ruta de la página anterior, o null en la primera página.
GET/forms
Terminal
curl -G https://api.emailit.com/v2/forms \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -d status.exact=live
JSON
{
  "data": [
    {
      "object": "form",
      "id": "frm_3Bzpif9xswMlVbFvGZSPNixm5j5",
      "name": "Newsletter popup",
      "type": "popup",
      "status": "live",
      "token": "9636697db6c8f136d6742cee9c86eb3ed53b89f0a44e3ce6",
      "created_at": "2026-10-01T11:20:31.000000+00:00",
      "updated_at": "2026-10-01T11:48:02.000000+00:00",
      "published_at": "2026-10-01T11:48:02.000000+00:00"
    }
  ],
  "total_records": 1,
  "next_page_url": null,
  "previous_page_url": null
}

Publicar un formulario

Cambia el estado del formulario a live y actualiza published_at. Los formularios publicados se cargan en cualquier sitio donde esté insertado el script de Emailit y pueden recibir respuestas. Requiere una clave de API con el permiso full.

La definición necesita al menos un paso con kind: "form" y otro con kind: "success"; si no, la petición devuelve 422. Las respuestas se guardan con el formulario y, por ahora, no crean contactos.

POST/forms/{id}/publish

Parámetros de ruta

idstringobligatorio
El ID del formulario (frm_…).

Devuelve

Devuelve el objeto de formulario con status en live. Devuelve 422 si la definición está incompleta y 404 si el formulario no existe.

POST/forms/{id}/publish
Terminal
curl -X POST https://api.emailit.com/v2/forms/frm_3Bzpif9xswMlVbFvGZSPNixm5j5/publish \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
JSON
{
  "object": "form",
  "id": "frm_3Bzpif9xswMlVbFvGZSPNixm5j5",
  "name": "Newsletter popup",
  "type": "popup",
  "status": "live",
  "token": "9636697db6c8f136d6742cee9c86eb3ed53b89f0a44e3ce6",
  "created_at": "2026-10-01T11:20:31.000000+00:00",
  "updated_at": "2026-10-01T11:48:02.000000+00:00",
  "published_at": "2026-10-01T11:48:02.000000+00:00",
  "definition": {
    "version": 1,
    "type": "popup",
    "steps": [
      {
        "id": "3Rb7Lq2NcX9vZt4Wm8Kd1Hs6PyE",
        "name": "Step 1",
        "kind": "form",
        "blocks": [
          { "id": "3Rb7Lq3JfM6xYc0Rr5Hh8Gk2SeU", "type": "email", "label": "<p>Email</p>", "required": true, "name": "email" },
          { "id": "3Rb7Lq4WdP1zQa6Ee9Jj3Lm7TfV", "type": "button", "label": "<p>Subscribe</p>", "action": "submit" }
        ]
      },
      {
        "id": "3Rb7Lq2XkS8wUe3Tt6Mn0Bv5RgC",
        "name": "Success",
        "kind": "success",
        "blocks": [{ "id": "3Rb7Lq6YhD4cFi9Uu2Oo7Cx1WhB", "type": "text", "content": "<p>Thanks for subscribing!</p>" }]
      }
    ],
    "styles": { "primaryColor": "#03a071", "borderRadius": 12, "buttonStyle": "solid" },
    "targeting": {},
    "experiments": {}
  },
  "settings": {}
}

Despublicar un formulario

Devuelve el estado del formulario a draft. El script de inserción deja de cargarlo y las nuevas respuestas se rechazan. El token, la definición y published_at no cambian, así que puedes volver a publicarlo más adelante. Requiere una clave de API con el permiso full.

POST/forms/{id}/unpublish

Parámetros de ruta

idstringobligatorio
El ID del formulario (frm_…).

Devuelve

Devuelve el objeto de formulario con status en draft. Devuelve 404 si el formulario no existe.

POST/forms/{id}/unpublish
Terminal
curl -X POST https://api.emailit.com/v2/forms/frm_3Bzpif9xswMlVbFvGZSPNixm5j5/unpublish \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
JSON
{
  "object": "form",
  "id": "frm_3Bzpif9xswMlVbFvGZSPNixm5j5",
  "name": "Newsletter popup",
  "type": "popup",
  "status": "draft",
  "token": "9636697db6c8f136d6742cee9c86eb3ed53b89f0a44e3ce6",
  "created_at": "2026-10-01T11:20:31.000000+00:00",
  "updated_at": "2026-10-06T07:30:00.000000+00:00",
  "published_at": "2026-10-01T11:48:02.000000+00:00",
  "definition": {
    "version": 1,
    "type": "popup",
    "steps": [
      {
        "id": "3Rb7Lq2NcX9vZt4Wm8Kd1Hs6PyE",
        "name": "Step 1",
        "kind": "form",
        "blocks": [
          { "id": "3Rb7Lq3JfM6xYc0Rr5Hh8Gk2SeU", "type": "email", "label": "<p>Email</p>", "required": true, "name": "email" },
          { "id": "3Rb7Lq4WdP1zQa6Ee9Jj3Lm7TfV", "type": "button", "label": "<p>Subscribe</p>", "action": "submit" }
        ]
      },
      {
        "id": "3Rb7Lq2XkS8wUe3Tt6Mn0Bv5RgC",
        "name": "Success",
        "kind": "success",
        "blocks": [{ "id": "3Rb7Lq6YhD4cFi9Uu2Oo7Cx1WhB", "type": "text", "content": "<p>Thanks for subscribing!</p>" }]
      }
    ],
    "styles": { "primaryColor": "#03a071", "borderRadius": 12, "buttonStyle": "solid" },
    "targeting": {},
    "experiments": {}
  },
  "settings": {}
}

Restablecer el token público

Genera un nuevo token público para el formulario. El token anterior deja de funcionar de inmediato: los sitios que cargan el formulario con él ya no lo muestran y no pueden enviarle respuestas. Actualiza tu código de inserción con el nuevo token. Requiere una clave de API con el permiso full.

POST/forms/{id}/reset-token

Parámetros de ruta

idstringobligatorio
El ID del formulario (frm_…).

Devuelve

Devuelve el objeto de formulario con el nuevo token. El estado no cambia. Devuelve 404 si el formulario no existe.

POST/forms/{id}/reset-token
Terminal
curl -X POST https://api.emailit.com/v2/forms/frm_3Bzpif9xswMlVbFvGZSPNixm5j5/reset-token \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
JSON
{
  "object": "form",
  "id": "frm_3Bzpif9xswMlVbFvGZSPNixm5j5",
  "name": "Newsletter popup",
  "type": "popup",
  "status": "live",
  "token": "e5ed3f9ec299ae1c5dc043c45f2a616c352e47a13b6b763b",
  "created_at": "2026-10-01T11:20:31.000000+00:00",
  "updated_at": "2026-10-06T09:12:44.000000+00:00",
  "published_at": "2026-10-01T11:48:02.000000+00:00",
  "definition": {
    "version": 1,
    "type": "popup",
    "steps": [
      {
        "id": "3Rb7Lq2NcX9vZt4Wm8Kd1Hs6PyE",
        "name": "Step 1",
        "kind": "form",
        "blocks": [
          { "id": "3Rb7Lq3JfM6xYc0Rr5Hh8Gk2SeU", "type": "email", "label": "<p>Email</p>", "required": true, "name": "email" },
          { "id": "3Rb7Lq4WdP1zQa6Ee9Jj3Lm7TfV", "type": "button", "label": "<p>Subscribe</p>", "action": "submit" }
        ]
      },
      {
        "id": "3Rb7Lq2XkS8wUe3Tt6Mn0Bv5RgC",
        "name": "Success",
        "kind": "success",
        "blocks": [{ "id": "3Rb7Lq6YhD4cFi9Uu2Oo7Cx1WhB", "type": "text", "content": "<p>Thanks for subscribing!</p>" }]
      }
    ],
    "styles": { "primaryColor": "#03a071", "borderRadius": 12, "buttonStyle": "solid" },
    "targeting": {},
    "experiments": {}
  },
  "settings": {}
}

Eliminar un formulario

Elimina de forma permanente un formulario y todas sus respuestas guardadas. Los sitios que lo insertan dejan de mostrarlo. Requiere una clave de API con el permiso full.

DELETE/forms/{id}

Parámetros de ruta

idstringobligatorio
El ID del formulario (frm_…).

Devuelve

Devuelve 204 No Content con el cuerpo vacío. Devuelve 404 si el formulario no existe.

DELETE/forms/{id}
Terminal
curl -X DELETE https://api.emailit.com/v2/forms/frm_3Bzpif9xswMlVbFvGZSPNixm5j5 \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
Text
(empty body)

¿Te ha resultado útil esta página?

Gracias por tu opinión.

Gracias. Leemos todos los mensajes.