Pular para o conteúdo
Docs

Crie campanhas, escolha as listas de contatos 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 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. Aceita as tags de mesclagem {{first_name}}, {{last_name}}, {{email}}, {{unsubscribe_url}} e {{cf.<key>}} para campos personalizados. 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 armazenado com a campanha. O Emailit não o insere na mensagem; adicione um preheader oculto a html se precisar de um.
contentstring
Fonte do corpo no editor (por exemplo, MJML), armazenada como está. O Emailit envia html e text, não content.
content_typestringpadrão: html
Formato de content: html, text ou mjml. O Emailit não compila MJML; envie o HTML compilado em html.

Retorno

Retorna 201 Created com o objeto de campanha. status é draft. A resposta não devolve html, text nem content.

Retorna 400 se name estiver ausente e 403 se a chave de API não tiver o escopo full.

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"
}

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, sent, canceled ou archived. queued significa que uma campanha agendada chegou ao horário de envio e está aguardando um worker.
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 armazenado com a campanha.
content_typestring
Rótulo do formato da fonte no editor: html, text ou mjml para campanhas criadas pela API.
scheduled_atstring | null
Quando uma campanha agendada é enviada, em UTC.
sent_atstring | null
Quando o envio começou.
recipientsobject[]
Listas de contatos de destino da campanha. Cada item tem audience_id (aud_…) e exclude (true para uma lista excluída).

O corpo (html, text e content) não é incluído na resposta. As estatísticas de engajamento estão disponíveis 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",
  "recipients": [
    { "audience_id": "aud_3Cz7WJ9GpvD7P0PQez50xOmkZSV", "exclude": false },
    { "audience_id": "aud_3hRmYTSQ4ca6y9tbPI0IQPjVTL9", "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 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 armazenado com a campanha.
contentstring
Fonte do corpo no editor, armazenada como está.
content_typestring
Formato de content: html, text ou mjml.
recipientsobject[]

As listas de contatos de destino. Substitui a relação atual. Inclua pelo menos uma lista com exclude definido como false.

  • audience_id (string, obrigatório): um ID de lista de contatos (aud_…) deste workspace.
  • exclude (booleano, padrão false): true salva a lista como exclusão. O painel subtrai as listas excluídas da estimativa de destinatários, mas o envio em si não aplica exclusões no momento, então remova também esses contatos das listas incluídas.

IDs de listas duplicados são ignorados. No momento do envio, o Emailit envia um e-mail uma única vez a cada contato inscrito nas listas incluídas e ignora contatos descadastrados e endereços suprimidos.

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.

Retorna 422 se recipients não tiver nenhuma lista incluída ou fizer referência a uma lista de fora do workspace, 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" },
      { "audience_id": "aud_3hRmYTSQ4ca6y9tbPI0IQPjVTL9", "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",
  "recipients": [
    { "audience_id": "aud_3Cz7WJ9GpvD7P0PQez50xOmkZSV", "exclude": false },
    { "audience_id": "aud_3hRmYTSQ4ca6y9tbPI0IQPjVTL9", "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. Use Obter uma campanha para obtê-los.

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"
    }
  ],
  "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.

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 incluída (definida 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.

Retorno

Enviar agora: o status muda para sending e o Emailit emite campaign.sending. Em seguida, o Emailit cria um e-mail por destinatário: cada contato inscrito nas listas de contatos incluídas, sem duplicar endereços, excluindo contatos descadastrados e endereços suprimidos. Quando todos os destinatários tiverem sido passados ao pipeline de envio, o status muda para sent e o Emailit emite campaign.sent. Acompanhe a entrega no painel ou com os eventos de e-mail.

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.

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 scheduled_at não pode ser interpretado ou não está no futuro, ou você tentou agendar uma campanha que não é um rascunho.
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"
}

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.