Moduli
Crea moduli di iscrizione, pubblicali e ruota il loro token pubblico.
Crea un modulo
Crea un modulo di iscrizione nello stato draft con un token pubblico. Richiede una chiave API full. I moduli sono in accesso anticipato.
Se ometti definition, Emailit genera un modulo iniziale: un passaggio con un titolo, un campo email obbligatorio e un pulsante Subscribe, più un passaggio di conferma. Crea e personalizza i moduli nel pannello in Email MarketingForms, poi pubblicali.
/formsParametri del corpo
namestringobbligatoriotypestringpredefinito: popuppopup, full_page, flyout, embed o banner.definitionobjectIl contenuto del modulo, salvato così com’è. Emailit lo controlla solo quando pubblichi. Campi di primo livello:
version(integer):1.type(string): il tipo di modulo.steps(array): ogni passaggio haid,name,kind(formosuccess) eblocks. I blocchi hanno unide untype:text,button(action:submit,next,closeogo_to_url),image, oppure un campo di input (email,text_input,phone,date,radio,checkbox,dropdown) conname,labelerequireddel campo.styles,targeting,experiments(oggetti): regole di aspetto e di visualizzazione impostate dall’editor dei moduli.
settingsobject{}.Restituisce
Restituisce 201 Created con l’oggetto modulo, compresi definition e settings.
tokenstringstatusstringdraft finché non pubblichi il modulo, poi live.published_atstring | nullRestituisce 400 se name manca o è vuoto, oppure se type non è uno dei valori consentiti.
{
"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": {}
}{
"statusCode": 400,
"error": "Bad Request",
"message": "Validation error",
"details": [
{
"instancePath": "",
"schemaPath": "#/required",
"keyword": "required",
"params": { "missingProperty": "name" },
"message": "must have required property 'name'"
}
]
}Recupera un modulo
Recupera un modulo con la sua definizione completa. Richiede una chiave API full.
/forms/{id}Parametri di percorso
idstringobbligatoriofrm_…).Restituisce
Restituisce l’oggetto modulo.
objectstringform.idstringfrm_.namestringtypestringpopup, full_page, flyout, embed o banner.statusstringdraft o live. Solo i moduli live vengono caricati sul tuo sito.tokenstringdefinitionobjectsettingsobjectcreated_at, updated_at, published_atstring | nullpublished_at è null fino alla prima pubblicazione.Restituisce 404 se il modulo non esiste.
{
"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": {}
}{
"error": "Form not found"
}Aggiorna un modulo
Aggiorna i campi che passi e lascia invariati gli altri. Richiede una chiave API full.
Le modifiche a un modulo live sono subito visibili ai visitatori; non è necessario pubblicarlo di nuovo. Per modificarlo senza effetti sui visitatori, prima ritiralo.
/forms/{id}Parametri di percorso
idstringobbligatoriofrm_…).Parametri del corpo
namestringtypestringpopup, full_page, flyout, embed o banner. Aggiorna definition.type di conseguenza.definitionobjectsettingsobjectRestituisce
Restituisce l’oggetto modulo aggiornato. Restituisce 400 se un campo ha il tipo sbagliato o name è vuoto, e 404 se il modulo non esiste.
{
"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": {}
}{
"error": "Invalid name"
}{
"error": "Form not found"
}Elenca i moduli
Restituisce i moduli del workspace, a partire dal più recente, senza definition e settings. Richiede una chiave API full.
/formsParametri di query
pageintegerpredefinito: 1limitintegerpredefinito: 10searchstringmatchstringall (predefinito) richiede che corrispondano tutti i filtri. or richiede che ne corrisponda almeno uno. Vedi Filtri e ordinamento.
orderstringChiave di ordinamento di questo elenco. Vedi le chiavi di ordinamento qui sotto.
directionstringasc o desc.
Chiavi di filtro
I filtri usano parametri di query key.condition=value, ad esempio status.exact=live. Vedi Filtri e ordinamento.
| Chiave | Tipo | Note |
|---|---|---|
name |
string | |
type |
enum | popup, full_page, flyout, embed, banner |
status |
enum | draft, live |
created_at |
date |
Chiavi di ordinamento per order: name, type, status, created_at.
Restituisce
dataobject[]object, id, name, type, status, token, created_at, updated_at, published_at.total_recordsintegernext_page_urlstring | nullnull sull’ultima pagina. Contiene solo page e limit; quando lo segui, aggiungi di nuovo la ricerca e i filtri.previous_page_urlstring | nullnull sulla prima pagina.{
"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
}Pubblica un modulo
Imposta lo stato del modulo su live e aggiorna published_at. I moduli live vengono caricati su qualsiasi sito in cui è installato lo script di Emailit e possono ricevere risposte. Richiede una chiave API full.
La definizione deve avere almeno un passaggio con kind: "form" e uno con kind: "success"; altrimenti la richiesta restituisce 422. Le risposte vengono salvate con il modulo e per ora non creano contatti.
/forms/{id}/publishParametri di percorso
idstringobbligatoriofrm_…).Restituisce
Restituisce l’oggetto modulo con status impostato su live. Restituisce 422 se la definizione è incompleta e 404 se il modulo non esiste.
{
"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": {}
}{
"error": "Form must have a success step"
}{
"error": "Form not found"
}Ritira un modulo
Riporta lo stato del modulo a draft. Lo script di incorporamento smette di caricarlo e le nuove risposte vengono rifiutate. Il token, la definizione e published_at restano invariati, quindi puoi pubblicarlo di nuovo in seguito. Richiede una chiave API full.
/forms/{id}/unpublishParametri di percorso
idstringobbligatoriofrm_…).Restituisce
Restituisce l’oggetto modulo con status impostato su draft. Restituisce 404 se il modulo non esiste.
{
"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": {}
}{
"error": "Form not found"
}Reimposta il token pubblico
Genera un nuovo token pubblico per il modulo. Il vecchio token smette subito di funzionare: i siti che caricano il modulo con quel token non lo mostrano più e non possono inviargli risposte. Aggiorna il codice di incorporamento con il nuovo token. Richiede una chiave API full.
/forms/{id}/reset-tokenParametri di percorso
idstringobbligatoriofrm_…).Restituisce
Restituisce l’oggetto modulo con il nuovo token. Lo stato non cambia. Restituisce 404 se il modulo non esiste.
{
"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": {}
}{
"error": "Form not found"
}Elimina un modulo
Elimina definitivamente un modulo e tutte le sue risposte salvate. I siti che lo incorporano smettono di mostrarlo. Richiede una chiave API full.
/forms/{id}Parametri di percorso
idstringobbligatoriofrm_…).Restituisce
Restituisce 204 No Content con un corpo vuoto. Restituisce 404 se il modulo non esiste.
(empty body){
"error": "Form not found"
}