← All API sections

Signup Forms

Create and manage public signup forms for contact lists

6 endpoints

Endpoints

MethodPathDescription
GET/v1/signup-formsGET /v1/signup-forms
POST/v1/signup-formsPOST /v1/signup-forms
GET/v1/signup-forms/{id}GET /v1/signup-forms/{id}
PUT/v1/signup-forms/{id}PUT /v1/signup-forms/{id}
DELETE/v1/signup-forms/{id}DELETE /v1/signup-forms/{id}
POST/v1/signup-forms/{id}/togglePOST /v1/signup-forms/{id}/toggle

GET /v1/signup-forms

GET /v1/signup-forms

Responses

StatusDescription
200List of signup forms
401Unauthorized

Example

curl -X GET https://api.euromail.dev/v1/signup-forms \
  -H "X-EuroMail-Api-Key: em_live_..."
import { EuroMail } from "@euromail/sdk";

const euromail = new EuroMail({ apiKey: "em_live_..." });

const result = await euromail.listSignupForms();
from euromail import EuroMail

client = EuroMail(api_key="em_live_...")

result = client.list_signup_forms()
use euromail::EuroMail;

let client = EuroMail::new("em_live_...");

let result = client.list_signup_forms().await?;
client := euromail.NewClient("em_live_...")

result, err := client.ListSignupForms(ctx)

POST /v1/signup-forms

POST /v1/signup-forms

Request Body

FieldTypeRequiredDescription
custom_fieldsanyNoCustom fields rendered on the form.
description`stringnull`No
from_address`stringnull`No
Must use a verified domain. Defaults to noreply@.
list_idstringYesContact list ID to attach this form to.
messagesanyNoCustomizable UI messages for localization.
redirect_url`stringnull`No
success_message`stringnull`No
themeanyNoTheme customization: bg_color, text_color, button_color, button_text_color,
border_color, accent_color, border_radius, font_family, embed, hide_branding.
titlestringYesForm title displayed to subscribers.

Responses

StatusDescription
201Signup form created
401Unauthorized
404Contact list not found
409A signup form already exists for this list
422Validation error

Example

curl -X POST https://api.euromail.dev/v1/signup-forms \
  -H "X-EuroMail-Api-Key: em_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "list_id": "...", "title": "..." }'
import { EuroMail } from "@euromail/sdk";

const euromail = new EuroMail({ apiKey: "em_live_..." });

const result = await euromail.createSignupForm({
    list_id: "...",
    title: "...",
  });
from euromail import EuroMail

client = EuroMail(api_key="em_live_...")

result = client.create_signup_form(
    list_id="...",
    title="...",
)
use euromail::EuroMail;

let client = EuroMail::new("em_live_...");

let result = client.create_signup_form(&CreateSignupFormParams {
    list_id: "...".into(),
    title: "...".into(),
    ..Default::default()
}).await?;
client := euromail.NewClient("em_live_...")

result, err := client.CreateSignupForm(ctx, euromail.CreateSignupFormParams{
    ListId: "...",
    Title: "...",
})

GET /v1/signup-forms/{id}

GET /v1/signup-forms/{id}

Parameters

NameInTypeRequiredDescription
idpathstringYesSignup form ID

Responses

StatusDescription
200Signup form details
401Unauthorized
404Signup form not found

Example

curl -X GET https://api.euromail.dev/v1/signup-forms/{id} \
  -H "X-EuroMail-Api-Key: em_live_..."
import { EuroMail } from "@euromail/sdk";

const euromail = new EuroMail({ apiKey: "em_live_..." });

const result = await euromail.getSignupForm("id_...");
from euromail import EuroMail

client = EuroMail(api_key="em_live_...")

result = client.get_signup_form("id_...")
use euromail::EuroMail;

let client = EuroMail::new("em_live_...");

let result = client.get_signup_form("id_...").await?;
client := euromail.NewClient("em_live_...")

result, err := client.GetSignupForm(ctx, "id_...")

PUT /v1/signup-forms/{id}

PUT /v1/signup-forms/{id}

Parameters

NameInTypeRequiredDescription
idpathstringYesSignup form ID

Request Body

FieldTypeRequiredDescription
custom_fieldsanyNoCustom fields rendered on the form.
description`stringnull`No
from_address`stringnull`No
messagesanyNoCustomizable UI messages for localization.
redirect_url`stringnull`No
success_message`stringnull`No
themeanyNoTheme customization: bg_color, text_color, button_color, button_text_color,
border_color, accent_color, border_radius, font_family, embed, hide_branding.
titlestringYesForm title displayed to subscribers.

Responses

StatusDescription
200Signup form updated
401Unauthorized
404Signup form not found
422Validation error

Example

curl -X PUT https://api.euromail.dev/v1/signup-forms/{id} \
  -H "X-EuroMail-Api-Key: em_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "title": "..." }'
import { EuroMail } from "@euromail/sdk";

const euromail = new EuroMail({ apiKey: "em_live_..." });

const result = await euromail.updateSignupForm({
    title: "...",
  });
from euromail import EuroMail

client = EuroMail(api_key="em_live_...")

result = client.update_signup_form(
    title="...",
)
use euromail::EuroMail;

let client = EuroMail::new("em_live_...");

let result = client.update_signup_form(&UpdateSignupFormParams {
    title: "...".into(),
    ..Default::default()
}).await?;
client := euromail.NewClient("em_live_...")

result, err := client.UpdateSignupForm(ctx, euromail.UpdateSignupFormParams{
    Title: "...",
})

DELETE /v1/signup-forms/{id}

DELETE /v1/signup-forms/{id}

Parameters

NameInTypeRequiredDescription
idpathstringYesSignup form ID

Responses

StatusDescription
204Signup form deleted
401Unauthorized
404Signup form not found

Example

curl -X DELETE https://api.euromail.dev/v1/signup-forms/{id} \
  -H "X-EuroMail-Api-Key: em_live_..."
import { EuroMail } from "@euromail/sdk";

const euromail = new EuroMail({ apiKey: "em_live_..." });

const result = await euromail.deleteSignupForm("id_...");
from euromail import EuroMail

client = EuroMail(api_key="em_live_...")

result = client.delete_signup_form("id_...")
use euromail::EuroMail;

let client = EuroMail::new("em_live_...");

let result = client.delete_signup_form("id_...").await?;
client := euromail.NewClient("em_live_...")

result, err := client.DeleteSignupForm(ctx, "id_...")

POST /v1/signup-forms/{id}/toggle

POST /v1/signup-forms/{id}/toggle

Parameters

NameInTypeRequiredDescription
idpathstringYesSignup form ID

Responses

StatusDescription
200Signup form toggled
401Unauthorized
404Signup form not found

Example

curl -X POST https://api.euromail.dev/v1/signup-forms/{id}/toggle \
  -H "X-EuroMail-Api-Key: em_live_..."
import { EuroMail } from "@euromail/sdk";

const euromail = new EuroMail({ apiKey: "em_live_..." });

const result = await euromail.getSignupFormDetail("id_...");
from euromail import EuroMail

client = EuroMail(api_key="em_live_...")

result = client.get_signup_form_detail("id_...")
use euromail::EuroMail;

let client = EuroMail::new("em_live_...");

let result = client.get_signup_form_detail("id_...").await?;
client := euromail.NewClient("em_live_...")

result, err := client.GetSignupFormDetail(ctx, "id_...")