Pular para o conteúdo
Docs

Crie campanhas, escolha as listas de contatos e os segmentos delas e envie ou agende o envio.

URL basehttps://api.emailit.com/v2AutenticaçãoErrosLimites de requisições

Criar uma campanha

Cria uma campanha com o status draft. Requer uma chave de API com escopo full. Emite um evento campaign.created.

Uma campanha nova não tem destinatários. Escolha as listas de contatos e os segmentos dela com Atualizar uma campanha e depois envie ou agende o envio. Os créditos são cobrados quando a campanha é enviada: 2 créditos por e-mail.

POST/campaigns

Parâmetros do corpo

namestringobrigatório
Nome interno da campanha. Os destinatários não o veem. Os outros endpoints de campanhas aceitam o nome no lugar do ID, então mantenha os nomes únicos se for usá-los assim.
subjectstring
Linha de assunto. Aceita tags de mesclagem, como {{first_name}}.
from_emailstring
Endereço do remetente. Deve estar em um domínio de envio verificado do workspace, por exemplo news@acme.com.
from_namestring
Nome de exibição do remetente, por exemplo Acme. A mensagem é enviada de Acme <news@acme.com>.
reply_tostring
Endereço de resposta (Reply-To). Por padrão, usa from_email quando a campanha é enviada.
htmlstring
Corpo HTML que o Emailit envia, renderizado com o Temple para cada destinatário. Aceita as tags de mesclagem {{first_name}}, {{last_name}}, {{email}}, {{unsubscribe_url}} e {{cf.<key>}} para campos personalizados, com valores alternativos e blocos {{#if}}. Defina o corpo ao criar a campanha.
textstring
Corpo em texto simples. Aceita as mesmas tags de mesclagem de html.
preview_textstring
Texto de pré-visualização que as caixas de entrada mostram depois do assunto. Aceita tags de mesclagem. Quando a campanha é enviada, o Emailit o adiciona como texto oculto no início do corpo HTML, a menos que o HTML já contenha o mesmo texto em um elemento oculto (por exemplo, de um <mj-preview> do MJML).
contentstring
Fonte do corpo no editor (por exemplo, MJML), armazenada como está. Se você não passar nem html nem text e content_type for html ou text, o Emailit envia content como corpo HTML ou em texto simples.
content_typestringpadrão: html
Formato de content: html, text ou mjml. Para a equipe do Emailit, o Emailit compila o conteúdo mjml em html (alfa). Para todos os outros, mjml é um rótulo: envie o HTML compilado em html.
utm_trackingbooleanpadrão: false
Defina como true para adicionar parâmetros UTM a todos os links http e https quando a campanha for enviada, para que a sua ferramenta de análise web atribua as visitas à campanha. Os parâmetros que um link já tem são mantidos, e os links de descadastro e de versão web não são alterados. Consulte Opções de envio.
utm_paramsobject | null

Valores UTM a usar quando utm_tracking estiver ativado. Cada chave define um parâmetro utm_:

  • source (padrão emailit), medium (padrão email) e campaign (padrão {campaign_name}).
  • content, term e id, que não são adicionados por padrão.

Os valores são textos de até 191 caracteres e podem conter os tokens {campaign_name} (o nome da campanha em minúsculas, com hifens), {campaign_id}, {subject}, {variant} (o nome da versão do teste A/B) e {send_date} (YYYY-MM-DD). Chaves e tokens desconhecidos retornam 422. As chaves que você não define mantêm os valores padrão; null ou {} redefine todas elas.

smart_sending_hoursinteger | null
Ignora os contatos que receberam outra campanha do workspace neste número de horas, de 1 a 168. null (padrão) desativa o envio inteligente. Verificado quando o envio da campanha começa. Os e-mails de automações e da API de e-mail não contam.
exclude_unengagedbooleanpadrão: false
Defina como true para ignorar os contatos que receberam 3 ou mais e-mails de campanha nos últimos 90 dias e não abriram nem clicaram em nenhum deles.
tagsstring[]
Rótulos para organizar as campanhas. Até 20 tags de até 50 caracteres cada. As tags vazias são descartadas e as duplicadas são removidas, sem diferenciar maiúsculas de minúsculas. Enviar tags substitui a lista.
send_strategystringpadrão: immediate
Como o envio é distribuído ao longo do tempo: immediate, throttled, local_time ou smart_time. Armazenado com a campanha e usado quando você a envia sem uma estratégia.
send_optionsobject | null
Opções de send_strategy, armazenadas como foram enviadas e verificadas por completo quando a campanha é enviada. Consulte Enviar ou agendar uma campanha.
ab_testobject | null

Um teste A/B de 2 a 5 versões. Uma parte aleatória dos destinatários é dividida igualmente entre as versões. Depois de duration_hours, o resto dos destinatários recebe a versão com o melhor resultado. Enquanto o teste está em andamento, o status da campanha é testing. Os testes A/B são enviados com a estratégia immediate, agora ou em um horário agendado.

  • enabled (booleano, padrão true): false desativa o teste.
  • winner_metric (string, padrão opened): opened, clicked, orders (pedidos atribuídos por e-mail enviado) ou revenue (receita atribuída por e-mail enviado). orders e revenue fazem parte do e-commerce, que está em alfa: as outras requisições retornam 403 com error: "commerce_alpha".
  • test_size_percent (inteiro, padrão 20): a parte dos destinatários no teste, de 10 a 100. Com 100, todos estão no teste e nenhuma vencedora é enviada.
  • duration_hours (inteiro, padrão 4): quanto tempo o teste dura antes de a vencedora ser enviada, de 1 a 168.
  • variants (object[], obrigatório): de 2 a 5 versões. Cada uma pode definir name (até 100 caracteres; o padrão é A, B, C e assim por diante), subject, preview_text, from_name, from_email, reply_to, html e text. Os campos que uma versão não define vêm da campanha. Pelo menos uma versão precisa definir um assunto, um texto de pré-visualização, um nome ou endereço de remetente ou um corpo.

Retorno

Retorna 201 Created com o objeto de campanha. status é draft. A resposta não devolve html, text nem content. Ela inclui as configurações acima, send_completes_at e send_summary (ambos null até a campanha ser enviada) e ab_test com as versões e os IDs delas (cvr_…). Consulte Obter uma campanha.

Retorna 400 se name estiver ausente, 403 se a chave de API não tiver o escopo full e 422 se uma configuração ou o teste A/B for inválido.

POST/campaigns
Terminal
curl -X POST https://api.emailit.com/v2/campaigns \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "October newsletter",
    "subject": "October news for {{first_name}}",
    "from_email": "news@acme.com",
    "from_name": "Acme",
    "reply_to": "support@acme.com",
    "html": "<p>Hi {{first_name}},</p><p>Here is what changed this month.</p><p><a href=\"{{unsubscribe_url}}\">Unsubscribe</a></p>",
    "text": "Hi {{first_name}}, here is what changed this month. Unsubscribe: {{unsubscribe_url}}"
  }'
JSON
{
  "object": "campaign",
  "id": "cmp_3zNrBaNjAoPK1l0IL2GQ3pDkubN",
  "name": "October newsletter",
  "status": "draft",
  "subject": "October news for {{first_name}}",
  "from_email": "news@acme.com",
  "from_name": "Acme",
  "reply_to": "support@acme.com",
  "preview_text": null,
  "content_type": "html",
  "created_at": "2026-10-01T09:30:12.482193Z",
  "updated_at": "2026-10-01T09:30:12.482193Z",
  "utm_tracking": false,
  "utm_params": null,
  "smart_sending_hours": null,
  "exclude_unengaged": false,
  "tags": [],
  "send_strategy": "immediate",
  "send_options": null,
  "send_completes_at": null,
  "send_summary": null,
  "ab_test": {
    "enabled": false,
    "variants": []
  }
}

Obter uma campanha

Obtém uma campanha pelo ID ou pelo nome. Requer uma chave de API com escopo full.

GET/campaigns/{id}

Parâmetros de caminho

idstringobrigatório
O ID da campanha (cmp_…) ou o nome da campanha. Codifique para URL os nomes que contêm espaços ou caracteres especiais.

Retorno

Retorna o objeto de campanha.

objectstring
Sempre campaign.
idstring
ID da campanha, com o prefixo cmp_.
statusstring
draft, scheduled, queued, sending, testing, sent, canceled ou archived. queued significa que uma campanha agendada chegou ao horário de envio e está aguardando um worker. testing significa que um teste A/B está em andamento e a versão vencedora ainda não foi enviada. Um envio distribuído ao longo do tempo fica em sending até a hora do último lote.
namestring
Nome interno da campanha.
subjectstring
Linha de assunto, com as tags de mesclagem não resolvidas.
from_emailstring
Endereço do remetente. "" até ser definido.
from_namestring
Nome de exibição do remetente. "" até ser definido.
reply_tostring
Endereço de resposta (Reply-To). "" significa que as respostas vão para from_email.
preview_textstring | null
Texto de pré-visualização que as caixas de entrada mostram depois do assunto.
content_typestring
Rótulo do formato da fonte no editor: html, text ou mjml para campanhas criadas pela API. As campanhas cujo MJML o Emailit compilou (alfa) também retornam um objeto mjml com as versões do documento.
scheduled_atstring | null
Quando uma campanha agendada é enviada, em UTC.
sent_atstring | null
Quando o envio começou.
utm_trackingboolean
Indica se os parâmetros UTM são adicionados aos links da campanha.
utm_paramsobject | null
Valores UTM que substituem os padrões, ou null. Consulte Criar uma campanha.
smart_sending_hoursinteger | null
Os contatos que receberam outra campanha neste número de horas são ignorados. null quando o envio inteligente está desativado.
exclude_unengagedboolean
Indica se os contatos que receberam 3 ou mais e-mails de campanha nos últimos 90 dias e não abriram nem clicaram em nenhum deles são ignorados.
tagsstring[]
As tags da campanha.
send_strategystring
immediate, throttled, local_time ou smart_time.
send_optionsobject | null
Opções da estratégia. Consulte Enviar ou agendar uma campanha.
send_completes_atstring | null
Para um envio distribuído por mais de um minuto, a hora do último lote. Depois disso, a campanha passa para sent.
send_summaryobject | null

O que o último envio fez, ou null antes de a campanha ser enviada:

  • recipients: os contatos das listas de contatos e dos segmentos, uma vez por endereço.
  • suppressed: ignorados porque o endereço está suprimido.
  • smart_sending_skipped: ignorados por smart_sending_hours.
  • unengaged_skipped: ignorados por exclude_unengaged.
  • sent: os contatos para os quais a campanha foi enviada. Em um teste A/B, só o grupo de teste.
  • batches: número de lotes de envio.
  • completes_at: o mesmo que send_completes_at.
ab_testobject

O teste A/B. Sem teste: { "enabled": false, "variants": [] }. Com teste: enabled, winner_metric, test_size_percent, duration_hours e variants. Cada versão tem id (cvr_…), name, subject, preview_text, from_name, from_email, reply_to, html, text (null quando a versão usa o valor da campanha) e is_winner. Consulte Criar uma campanha.

recipientsobject[]
Listas de contatos e segmentos de destino da campanha. Cada item tem audience_id (aud_…) ou segment_id (seg_…), além de exclude (true para uma exclusão).

O corpo (html, text e content) não é incluído na resposta. Para o engajamento e a receita, use Obter as estatísticas de uma campanha ou o relatório no painel, em Email MarketingCampaigns.

Retorna 404 se nenhuma campanha do workspace corresponder a id.

GET/campaigns/{id}
Terminal
curl https://api.emailit.com/v2/campaigns/cmp_3zNrBaNjAoPK1l0IL2GQ3pDkubN \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
JSON
{
  "object": "campaign",
  "id": "cmp_3zNrBaNjAoPK1l0IL2GQ3pDkubN",
  "name": "October newsletter",
  "status": "scheduled",
  "subject": "October news for {{first_name}}",
  "from_email": "news@acme.com",
  "from_name": "Acme",
  "reply_to": "support@acme.com",
  "preview_text": null,
  "content_type": "html",
  "sent_at": null,
  "scheduled_at": "2026-10-08 09:00:00+00",
  "created_at": "2026-10-01 09:30:12.482193+00",
  "updated_at": "2026-10-01 10:02:47.118204+00",
  "utm_tracking": true,
  "utm_params": {
    "campaign": "{campaign_name}-{send_date}"
  },
  "smart_sending_hours": 16,
  "exclude_unengaged": true,
  "tags": ["newsletter", "q4"],
  "send_strategy": "throttled",
  "send_options": {
    "per_hour": 5000
  },
  "send_completes_at": null,
  "send_summary": null,
  "ab_test": {
    "enabled": false,
    "variants": []
  },
  "recipients": [
    { "audience_id": "aud_3Cz7WJ9GpvD7P0PQez50xOmkZSV", "exclude": false },
    { "segment_id": "seg_3Kq8VbN2xYt5Lm9Pw1Rc7Hd4Zf0", "exclude": true }
  ]
}

Atualizar uma campanha

Atualiza os campos que você passar e deixa os outros como estão. Use-o para escolher as listas de contatos e os segmentos da campanha antes de enviá-la. Requer uma chave de API com escopo full. Emite um evento campaign.updated.

Uma campanha agendada envia o que estiver salvo no horário de envio, então você ainda pode editá-la depois de agendar.

POST/campaigns/{id}

Parâmetros de caminho

idstringobrigatório
O ID da campanha (cmp_…) ou o nome da campanha.

Parâmetros do corpo

namestring
Nome interno da campanha.
subjectstring
Linha de assunto. Aceita tags de mesclagem.
from_emailstring
Endereço do remetente em um domínio de envio verificado.
from_namestring
Nome de exibição do remetente.
reply_tostring
Endereço de resposta (Reply-To). Uma string vazia significa que as respostas vão para from_email.
preview_textstring
Texto de pré-visualização que as caixas de entrada mostram depois do assunto. O Emailit o adiciona como texto oculto no início do corpo HTML quando a campanha é enviada. Consulte Criar uma campanha.
contentstring
Fonte do corpo no editor, armazenada como está. Quando você altera content ou content_type e o formato é html ou text, o Emailit envia content como o novo corpo HTML ou em texto simples.
content_typestring
Formato de content: html, text ou mjml. Para a equipe do Emailit, o Emailit compila o conteúdo mjml em html (alfa). Para todos os outros, mjml é um rótulo.
utm_trackingboolean
Adiciona parâmetros UTM aos links da campanha quando ela é enviada. Consulte Criar uma campanha.
utm_paramsobject | null
Valores UTM: source, medium, campaign, content, term e id. Substitui o objeto armazenado; null restaura os padrões. Consulte Criar uma campanha.
smart_sending_hoursinteger | null
Ignora os contatos que receberam outra campanha neste número de horas, de 1 a 168. null o desativa.
exclude_unengagedboolean
Ignora os contatos que receberam 3 ou mais e-mails de campanha nos últimos 90 dias e não abriram nem clicaram em nenhum deles.
tagsstring[]
Até 20 tags de até 50 caracteres cada. Substitui as tags atuais.
send_strategystring
immediate, throttled, local_time ou smart_time. Usado quando você envia a campanha sem uma estratégia.
send_optionsobject | null
Opções de send_strategy, verificadas por completo quando a campanha é enviada. Consulte Enviar ou agendar uma campanha.
ab_testobject | null

O teste A/B, com os campos descritos em Criar uma campanha. Enviar ab_test substitui o teste e as versões dele. Para manter o ID de uma versão, e com ele os resultados dela, inclua o id (cvr_…) na versão. null ou "enabled": false desativa o teste e exclui as versões.

recipientsobject[]

As listas de contatos e os segmentos de destino, até 100 itens. Substitui a relação atual. Inclua pelo menos um item com exclude definido como false. Cada item tem audience_id ou segment_id, nunca os dois:

  • audience_id (string): um ID de lista de contatos (aud_…) deste workspace.
  • segment_id (string): um ID de segmento (seg_…) deste workspace. Os segmentos estão em alfa: apenas a equipe do Emailit pode adicionar um, e as outras requisições retornam 403 com error: "segments_alpha". Os segmentos que a campanha já tem podem ser mantidos.
  • exclude (booleano, padrão false): true deixa de fora os inscritos da lista ou os contatos do segmento, mesmo que eles também estejam em um item incluído.

Itens duplicados são ignorados. No momento do envio, o Emailit envia um e-mail uma única vez a cada contato que está inscrito em uma lista incluída ou corresponde a um segmento incluído, não está em um item excluído, não está descadastrado globalmente, está inscrito em pelo menos uma lista e não está suprimido. Os segmentos são avaliados no momento do envio. Se uma lista ou um segmento excluído não existir mais nesse momento, a campanha não é enviada.

O corpo HTML e o de texto são definidos quando você cria a campanha. Campos desconhecidos no corpo são ignorados.

Retorno

Retorna o objeto de campanha atualizado, incluindo recipients e ab_test. Consulte Obter uma campanha.

Retorna 422 se recipients não tiver nenhuma lista ou segmento incluído, tiver mais de 100 itens, tiver um item com os dois IDs ou fizer referência a uma lista ou um segmento de fora do workspace. Também retorna 422 quando uma configuração ou o teste A/B for inválido, ou quando você enviar ab_test para uma campanha que não é um rascunho nem está agendada, e 404 se a campanha não existir.

POST/campaigns/{id}
Terminal
curl -X POST https://api.emailit.com/v2/campaigns/cmp_3zNrBaNjAoPK1l0IL2GQ3pDkubN \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "subject": "Your October update, {{first_name}}",
    "recipients": [
      { "audience_id": "aud_3Cz7WJ9GpvD7P0PQez50xOmkZSV" },
      { "segment_id": "seg_3Kq8VbN2xYt5Lm9Pw1Rc7Hd4Zf0", "exclude": true }
    ]
  }'
JSON
{
  "object": "campaign",
  "id": "cmp_3zNrBaNjAoPK1l0IL2GQ3pDkubN",
  "name": "October newsletter",
  "status": "draft",
  "subject": "Your October update, {{first_name}}",
  "from_email": "news@acme.com",
  "from_name": "Acme",
  "reply_to": "support@acme.com",
  "preview_text": null,
  "content_type": "html",
  "scheduled_at": null,
  "created_at": "2026-10-01 09:30:12.482193+00",
  "updated_at": "2026-10-01 10:02:47.118204+00",
  "utm_tracking": false,
  "utm_params": null,
  "smart_sending_hours": null,
  "exclude_unengaged": false,
  "tags": [],
  "send_strategy": "immediate",
  "send_options": null,
  "send_completes_at": null,
  "send_summary": null,
  "ab_test": {
    "enabled": false,
    "variants": []
  },
  "recipients": [
    { "audience_id": "aud_3Cz7WJ9GpvD7P0PQez50xOmkZSV", "exclude": false },
    { "segment_id": "seg_3Kq8VbN2xYt5Lm9Pw1Rc7Hd4Zf0", "exclude": true }
  ]
}

Listar campanhas

Retorna as campanhas do workspace, das mais recentes para as mais antigas. Requer uma chave de API com escopo full.

GET/campaigns

Parâmetros de consulta

pageintegerpadrão: 1
Número da página, a partir de 1.
limitintegerpadrão: 10
Campanhas por página, de 1 a 100.
statusstring
Atalho para filtrar por status: draft, scheduled, sending (também corresponde a queued), sent, canceled, archived ou all.
matchstring

all (padrão) exige todos os filtros. or corresponde a qualquer filtro. Consulte Filtragem.

orderstring

Chave de ordenação desta lista. Consulte as chaves de ordenação abaixo.

directionstring

asc ou desc.

Chaves de filtro

Os filtros usam parâmetros de consulta key.condition=value, por exemplo status.exact=sent ou created_at.after=2026-09-01. Consulte Filtragem para ver as condições de cada tipo.

Chave Tipo Observações
name string
subject string
status enum draft, scheduled, queued, sending, sent, archived
created_at date
sent_at date

Chaves de ordenação para order: name, subject, status, created_at, sent_at.

Retorno

Retorna uma página de objetos de campanha sem reply_to, preview_text, content_type e recipients e, das opções de envio, só com tags, send_strategy e send_completes_at. Use Obter uma campanha para obter o resto.

dataobject[]
As campanhas desta página.
total_recordsinteger
Número de campanhas que correspondem à consulta.
next_page_urlstring | null
Caminho da próxima página, ou null na última página. Ele leva apenas page e limit, então adicione de novo a sua busca e os seus filtros ao segui-lo.
previous_page_urlstring | null
Caminho da página anterior, ou null na primeira página.
GET/campaigns
Terminal
curl -G https://api.emailit.com/v2/campaigns \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -d limit=20 \
  -d status=sent \
  -d order=sent_at \
  -d direction=desc
JSON
{
  "data": [
    {
      "object": "campaign",
      "id": "cmp_3zNrBaNjAoPK1l0IL2GQ3pDkubN",
      "name": "October newsletter",
      "status": "sent",
      "subject": "Your October update, {{first_name}}",
      "from_email": "news@acme.com",
      "from_name": "Acme",
      "sent_at": "2026-10-08 09:00:04+00",
      "scheduled_at": "2026-10-08 09:00:00+00",
      "created_at": "2026-10-01 09:30:12.482193+00",
      "updated_at": "2026-10-08 09:00:31+00",
      "tags": ["newsletter"],
      "send_strategy": "immediate",
      "send_completes_at": null
    }
  ],
  "total_records": 34,
  "next_page_url": "/v2/campaigns?page=2&limit=20",
  "previous_page_url": null
}

Enviar ou agendar uma campanha

Envia a campanha agora ou a agenda quando você passa um scheduled_at futuro. Requer uma chave de API com escopo full e um workspace verificado: workspaces não verificados não podem enviar campanhas e recebem 403. Só é possível enviar rascunhos e campanhas agendadas: uma campanha em envio ou já enviada retorna 422, para que uma requisição repetida não envie o e-mail a todos de novo.

Antes de enviar, confira se a campanha tem um from_email em um domínio verificado, um assunto, um corpo html ou text e pelo menos uma lista de contatos ou um segmento incluído (definidos com Atualizar uma campanha). Cada e-mail custa 2 créditos.

POST/campaigns/{id}/send

Parâmetros de caminho

idstringobrigatório
O ID da campanha (cmp_…) ou o nome da campanha.

Parâmetros do corpo

scheduled_atstring

Quando enviar. Aceita ISO 8601 (2026-10-08T09:00:00Z), um timestamp Unix em segundos ou linguagem natural em inglês, como tomorrow at 9am (interpretada em UTC). O horário deve estar no futuro e a campanha deve ser um draft.

Omita-o para enviar agora. Para enviar antes uma campanha agendada, chame este endpoint sem scheduled_at.

send_strategystring

Como distribuir o envio ao longo do tempo. O padrão é a estratégia salva na campanha ou, se não houver uma, immediate. A estratégia e as opções dela são salvas na campanha. Consulte Opções de envio.

  • immediate: todos de uma vez, agora ou em scheduled_at.
  • throttled: um ritmo uniforme de per_hour e-mails, começando agora ou em scheduled_at.
  • local_time: um horário de relógio no fuso horário de cada contato. scheduled_at é ignorado.
  • smart_time: cada contato no horário em que costuma abrir ou clicar, dentro de uma janela a partir do início.

As campanhas com um teste A/B só são enviadas com immediate.

send_optionsobject

Opções da estratégia. O padrão são as opções salvas na campanha.

  • throttled: per_hour (inteiro, obrigatório), de 100 a 1.000.000 e-mails por hora.
  • local_time: local_time (string, obrigatório), o horário no formato YYYY-MM-DDTHH:mm, por exemplo 2026-10-08T09:00, e timezone (string, padrão UTC), o fuso horário IANA para os contatos cujo fuso horário não é conhecido. Os fusos horários dos contatos vêm do script de rastreamento. O envio começa quando o primeiro fuso horário (UTC+14) chega ao horário; os contatos em fusos em que ele já passou recebem o e-mail na hora. Até lá, a campanha fica em scheduled, então ela precisa ser um rascunho. Retorna 422 quando o horário já passou em todos os fusos horários.
  • smart_time: window_hours (inteiro, padrão 24), de 1 a 48. Cada contato recebe o e-mail na hora do dia (UTC) em que mais abriu ou clicou nos últimos 90 dias, com um clique valendo três vezes mais que uma abertura, quando essa hora cai dentro da janela. Os contatos sem esse histórico recebem na hora mais comum entre os outros destinatários. Os contatos sem nenhum dos dois, ou cuja hora fica fora da janela, recebem no início.

timezone é aceito em todas as estratégias e precisa ser um fuso horário IANA válido, mas só local_time o usa.

Retorno

Enviar agora: o status muda para sending e o Emailit emite campaign.sending. Em seguida, o Emailit define os destinatários: cada contato inscrito nas listas de contatos incluídas e cada contato que corresponde aos segmentos incluídos, uma vez por endereço, excluindo os contatos de listas ou segmentos excluídos, os contatos descadastrados globalmente ou que não estão em nenhuma lista e os endereços suprimidos. Os segmentos são avaliados nesse momento. Ele também ignora os contatos deixados de fora por smart_sending_hours e exclude_unengaged. Os e-mails são criados nos horários que a estratégia de envio define. Quando todos os destinatários tiverem sido passados ao pipeline de envio, o status muda para sent e o Emailit emite campaign.sent. Um envio distribuído ao longo do tempo fica em sending até a hora do último lote (send_completes_at). O send_summary da campanha mostra para quantos contatos a campanha foi enviada e quantos foram ignorados. Acompanhe a entrega no painel, com Obter as estatísticas de uma campanha ou com os eventos de e-mail.

Teste A/B: o grupo de teste recebe as versões e o status muda para testing. Depois de duration_hours, o resto dos destinatários recebe a versão vencedora e o status muda para sent.

Agendar: o status muda para scheduled e o Emailit emite campaign.scheduled. No horário agendado, a campanha passa a queued (campaign.queued) e depois é enviada como descrito acima. Se uma lista ou um segmento excluído tiver sido apagado nesse intervalo, a campanha volta para draft em vez de ser enviada.

A resposta contém object, id, name e o novo status, além de scheduled_at quando você agenda.

Status Quando
403 O workspace não está verificado ou a chave de API não tem o escopo full.
404 Nenhuma campanha corresponde a id.
422 A campanha não é um rascunho nem está agendada (por exemplo, ela está em envio ou já foi enviada), scheduled_at não pode ser interpretado ou não está no futuro, você tentou agendar uma campanha que não é um rascunho, a campanha não tem corpo html nem text, ela não tem destinatários (defina-os com Atualizar uma campanha), ela exclui uma lista ou um segmento que não existe mais, ou send_strategy e send_options são inválidos. O erro da estratégia indica o campo em message.
POST/campaigns/{id}/send
Terminal
curl -X POST https://api.emailit.com/v2/campaigns/cmp_3zNrBaNjAoPK1l0IL2GQ3pDkubN/send \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "scheduled_at": "2026-10-08T09:00:00Z" }'
JSON
{
  "object": "campaign",
  "id": "cmp_3zNrBaNjAoPK1l0IL2GQ3pDkubN",
  "name": "October newsletter",
  "status": "scheduled",
  "scheduled_at": "2026-10-08T09:00:00.000000Z"
}

Cancelar uma campanha

Define o status da campanha como canceled e emite um evento campaign.canceled. Requer uma chave de API com escopo full.

Só é possível cancelar campanhas com o status draft ou sending; qualquer outro status retorna 422. Cancelar uma campanha em envio não recolhe os e-mails que já estão na fila de entrega.

POST/campaigns/{id}/cancel

Parâmetros de caminho

idstringobrigatório
O ID da campanha (cmp_…) ou o nome da campanha.

Retorno

Retorna object, id, name e status (canceled).

Retorna 422 se o status da campanha não for draft nem sending, e 404 se a campanha não existir.

POST/campaigns/{id}/cancel
Terminal
curl -X POST https://api.emailit.com/v2/campaigns/cmp_3zNrBaNjAoPK1l0IL2GQ3pDkubN/cancel \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
JSON
{
  "object": "campaign",
  "id": "cmp_3zNrBaNjAoPK1l0IL2GQ3pDkubN",
  "name": "October newsletter",
  "status": "canceled"
}

Obter as estatísticas de uma campanha

Obtém o relatório de uma campanha: quantos e-mails foram enviados, entregues, abertos e clicados, os resultados por provedor de e-mail, a receita dos pedidos atribuídos à campanha (e-commerce, alfa) e, nos testes A/B, os resultados por versão. O relatório do painel em Email MarketingCampaigns mostra os mesmos números. Requer uma chave de API com escopo full.

Todas as contagens são números de e-mails: um e-mail aberto três vezes conta uma vez em opened. As porcentagens são relativas a sent, salvo indicação em contrário, com duas casas decimais.

GET/campaigns/{id}/stats

Parâmetros de caminho

idstringObrigatório

O ID da campanha (cmp_...) ou o nome da campanha. Codifique para URL os nomes que contêm espaços ou caracteres especiais.

Parâmetros de consulta

fromstring

Conta só os e-mails criados neste momento ou depois dele, uma data ou data e hora ISO 8601.

tostring

Conta só os e-mails criados neste momento ou antes dele.

statusstring

Conta só os e-mails cujo status atual é este: accepted, scheduled, delivered, loaded, clicked, attempted, bounced, failed, rejected, suppressed ou complained. Os outros valores são ignorados.

Os filtros se aplicam às contagens de e-mails, aos provedores e às contagens do teste A/B, e from e to também se aplicam a unsubscribed. A receita, os pedidos e os compradores sempre abrangem todos os pedidos atribuídos à campanha, e as taxas deles usam todos os e-mails entregues da campanha.

Retorno

objectstring

Sempre campaign_stats.

campaign_idstring

O ID da campanha (cmp_...).

sentinteger

Os e-mails criados para a campanha. sent_percent é 100, ou 0 antes de qualquer envio.

delivered, delivered_percentinteger, number

Os e-mails cujo status é delivered, loaded ou clicked.

opened, opened_percentinteger, number

Os e-mails abertos pelo menos uma vez.

clicked, clicked_percentinteger, number

Os e-mails com pelo menos um clique rastreado.

click_through_percentnumber

clicked como porcentagem de opened.

bounced, suppressed, complained, attemptedinteger

Os e-mails cujo status é bounced, suppressed, complained ou attempted (aguardando uma nova tentativa). Cada um também tem um campo _percent.

not_processed, not_processed_percentinteger, number

Os e-mails ainda accepted ou scheduled.

unsubscribed, unsubscribed_percentinteger, number

Descadastros a partir dos e-mails da campanha.

providersobject[]

Resultados por provedor de e-mail dos destinatários, para os provedores com pelo menos um e-mail. key é gmail, outlook.com, live.com, hotmail.com, yahoo, icloud ou other, e label é o nome de exibição dele. Cada um tem sent, delivered, opened, clicked e bounced com os campos _percent correspondentes. sent_percent é a participação do provedor em todos os e-mails; as outras porcentagens são relativas ao sent do provedor.

commerceobject

Apenas para a equipe do Emailit enquanto o e-commerce estiver em alfa: as outras requisições não recebem este campo, e as variants do teste A/B delas deixam de fora orders, revenue e revenue_per_recipient. Pedidos atribuídos à campanha. A receita é o total do pedido menos os reembolsos, e os pedidos cancelados não contam. Os valores em moedas diferentes não são somados: a moeda principal é a que tem mais receita.

  • currency (string ou null): a moeda principal.

  • revenue (número): a receita na moeda principal.

  • orders (inteiro): os pedidos atribuídos em todas as moedas.

  • buyers (inteiro): os compradores distintos em todas as moedas. Um comprador que pagou em duas moedas conta uma vez.

  • average_order_value (número): na moeda principal.

  • conversion_percent (número): buyers como porcentagem dos e-mails entregues da campanha.

  • revenue_per_recipient (número): revenue dividido pelos e-mails entregues da campanha.

  • by_currency (object[]): currency, orders, revenue, buyers e average_order_value de cada moeda, da maior receita para a menor.

ab_testobject

Só para campanhas com um teste A/B.

  • winner_metric (string): opened, clicked, orders ou revenue.

  • leader_variant_id (string ou null): a versão com a melhor taxa até agora: aberturas, cliques ou pedidos por e-mail enviado, ou receita por e-mail enviado.

  • win_probability (número ou null): a probabilidade, em porcentagem, de que a versão na liderança realmente supere a segunda colocada.

  • significance (string): significant (90% ou mais, com pelo menos 50 e-mails por versão), promising (75% ou mais, com o mesmo mínimo), not_significant (menos de 75% com pelo menos 1.800 e-mails por versão) ou inconclusive. Para revenue, a probabilidade se baseia nos pedidos.

  • variants (object[]): por versão, variant_id, name, subject, is_winner, sent, delivered, opened, opened_percent, clicked, clicked_percent, orders, revenue e revenue_per_recipient. Depois que a vencedora é enviada para o resto do público, as contagens da versão vencedora incluem esses e-mails.

Retorna 404 se nenhuma campanha corresponder a id, e 503 quando o armazenamento de análises não estiver disponível.

GET/campaigns/{id}/stats
Terminal
curl https://api.emailit.com/v2/campaigns/cmp_3zNrBaNjAoPK1l0IL2GQ3pDkubN/stats \
  -H "Authorization: Bearer your_api_key"
JSON
{
  "object": "campaign_stats",
  "campaign_id": "cmp_3zNrBaNjAoPK1l0IL2GQ3pDkubN",
  "sent": 12480,
  "sent_percent": 100,
  "delivered": 12302,
  "delivered_percent": 98.57,
  "opened": 5021,
  "opened_percent": 40.23,
  "clicked": 1187,
  "clicked_percent": 9.51,
  "click_through_percent": 23.64,
  "bounced": 98,
  "bounced_percent": 0.79,
  "suppressed": 42,
  "suppressed_percent": 0.34,
  "complained": 3,
  "complained_percent": 0.02,
  "attempted": 0,
  "attempted_percent": 0,
  "not_processed": 38,
  "not_processed_percent": 0.3,
  "unsubscribed": 27,
  "unsubscribed_percent": 0.22,
  "providers": [
    {
      "key": "gmail",
      "label": "Gmail",
      "sent": 7310,
      "sent_percent": 58.57,
      "delivered": 7236,
      "delivered_percent": 98.99,
      "opened": 3102,
      "opened_percent": 42.44,
      "clicked": 741,
      "clicked_percent": 10.14,
      "bounced": 41,
      "bounced_percent": 0.56
    },
    {
      "key": "other",
      "label": "Other",
      "sent": 5170,
      "sent_percent": 41.43,
      "delivered": 5066,
      "delivered_percent": 97.99,
      "opened": 1919,
      "opened_percent": 37.12,
      "clicked": 446,
      "clicked_percent": 8.63,
      "bounced": 57,
      "bounced_percent": 1.1
    }
  ],
  "commerce": {
    "currency": "USD",
    "revenue": 17311.9,
    "orders": 214,
    "buyers": 198,
    "average_order_value": 86.13,
    "conversion_percent": 1.61,
    "revenue_per_recipient": 1.41,
    "by_currency": [
      {
        "currency": "USD",
        "orders": 201,
        "revenue": 17311.9,
        "buyers": 186,
        "average_order_value": 86.13
      },
      {
        "currency": "EUR",
        "orders": 13,
        "revenue": 1052.4,
        "buyers": 12,
        "average_order_value": 80.95
      }
    ]
  }
}

Excluir uma campanha

Exclui permanentemente uma campanha. Requer uma chave de API com escopo full. Emite um evento campaign.deleted.

Excluir uma campanha não afeta os e-mails que já foram enviados ou colocados na fila. Para interromper uma campanha em envio, cancele-a primeiro.

DELETE/campaigns/{id}

Parâmetros de caminho

idstringobrigatório
O ID da campanha (cmp_…) ou o nome da campanha.

Retorno

Retorna object, id, name e deleted: true. Retorna 404 se a campanha não existir.

DELETE/campaigns/{id}
Terminal
curl -X DELETE https://api.emailit.com/v2/campaigns/cmp_3zNrBaNjAoPK1l0IL2GQ3pDkubN \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
JSON
{
  "object": "campaign",
  "id": "cmp_3zNrBaNjAoPK1l0IL2GQ3pDkubN",
  "name": "October newsletter",
  "deleted": true
}

Esta página foi útil?

Obrigado pelo feedback.

Obrigado, lemos todas as mensagens.