← All API sections

Newsletters

Draft, update, and send newsletters to a contact list

6 endpoints

Endpoints

MethodPathDescription
GET/v1/newslettersGET /v1/newsletters
POST/v1/newslettersPOST /v1/newsletters
GET/v1/newsletters/{id}GET /v1/newsletters/{id}
PUT/v1/newsletters/{id}PUT /v1/newsletters/{id}
DELETE/v1/newsletters/{id}DELETE /v1/newsletters/{id}
POST/v1/newsletters/{id}/sendPOST /v1/newsletters/{id}/send

GET /v1/newsletters

GET /v1/newsletters

Parameters

NameInTypeRequiredDescription
limitquery`integernull`No
offsetquery`integernull`No

Responses

StatusDescription
200Newsletters for this account
401Unauthorized

Example

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

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

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

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

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

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

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

result, err := client.ListNewsletters(ctx)

POST /v1/newsletters

POST /v1/newsletters

Request Body

FieldTypeRequiredDescription
from_addressstringYes
html_body`stringnull`No
list_idstringYes
reply_to`stringnull`No
subjectstringYes
tagsstring[]No
template_dataanyNo
template_id`stringnull`No
text_body`stringnull`No

Responses

StatusDescription
201Newsletter draft created
401Unauthorized
404Contact list not found
422Invalid from_address, or no content/template given

Example

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

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

const result = await euromail.createNewsletter({
    from_address: "...",
    list_id: "...",
    subject: "Hello World",
  });
from euromail import EuroMail

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

result = client.create_newsletter(
    from_address="...",
    list_id="...",
    subject="Hello World",
)
use euromail::EuroMail;

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

let result = client.create_newsletter(&CreateNewsletterParams {
    from_address: "...".into(),
    list_id: "...".into(),
    subject: "Hello World".into(),
    ..Default::default()
}).await?;
client := euromail.NewClient("em_live_...")

result, err := client.CreateNewsletter(ctx, euromail.CreateNewsletterParams{
    FromAddress: "...",
    ListId: "...",
    Subject: "Hello World",
})

GET /v1/newsletters/{id}

GET /v1/newsletters/{id}

Parameters

NameInTypeRequiredDescription
idpathstringYesNewsletter id

Responses

StatusDescription
200The newsletter (with stats, once sent)
401Unauthorized
404Newsletter not found

Example

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

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

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

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

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

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

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

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

PUT /v1/newsletters/{id}

PUT /v1/newsletters/{id}

Parameters

NameInTypeRequiredDescription
idpathstringYesNewsletter id

Request Body

FieldTypeRequiredDescription
from_address`stringnull`No
html_body`stringnull`No
list_id`stringnull`No
reply_to`stringnull`No
subject`stringnull`No
tagsstring[]No
template_dataanyNo
template_id`stringnull`No
text_body`stringnull`No

Responses

StatusDescription
200Newsletter updated
401Unauthorized
404Newsletter not found, or not a draft
422Newsletter is not in draft status, or tags are invalid

Example

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

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

const result = await euromail.updateNewsletter({});
from euromail import EuroMail

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

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

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

let result = client.update_newsletter(&UpdateNewsletterParams {
    ..Default::default()
}).await?;
client := euromail.NewClient("em_live_...")

result, err := client.UpdateNewsletter(ctx, euromail.UpdateNewsletterParams{
})

DELETE /v1/newsletters/{id}

DELETE /v1/newsletters/{id}

Parameters

NameInTypeRequiredDescription
idpathstringYesNewsletter id

Responses

StatusDescription
204Newsletter deleted
401Unauthorized
404Newsletter not found, or not a draft

Example

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

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

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

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

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

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

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

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

POST /v1/newsletters/{id}/send

POST /v1/newsletters/{id}/send

Parameters

NameInTypeRequiredDescription
idpathstringYesNewsletter id

Responses

StatusDescription
202Newsletter accepted for delivery
401Unauthorized
404Newsletter or its contact list not found
422Newsletter is not a draft, has no content, no subscribers, or failed a pre-send gate

Example

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

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

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

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

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

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

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

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