Pular para o conteúdo
Docs

Gerencie perfis de contato e campos personalizados, em massa ou um por vez.

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

Criar um contato

Cria um contato e, opcionalmente, inscreve-o em listas de contatos.

POST/contacts

Requer uma chave de API com escopo full. Os endereços de e-mail são únicos por workspace e armazenados em minúsculas; criar um contato que já existe retorna 409 com o contato existente em existing. Dispara contact.created e subscriber.created para cada lista de contatos. Consulte Contatos.

Parâmetros do corpo

emailstringobrigatório
O endereço de e-mail do contato.
first_namestring
O nome.
last_namestring
O sobrenome.
custom_fieldsobject

Valores por chave de campo personalizado, como {"company": "Analytical Engines"}. Os valores de campos de data devem estar no formato YYYY-MM-DD. Chaves que não correspondem a um campo personalizado são armazenadas como estão.

audiencesstring[]
IDs das listas de contatos (aud_…) em que o contato será inscrito. IDs que não existem no workspace são ignorados.
unsubscribedbooleanpadrão: false

true para criar o contato como descadastrado. As campanhas ignoram contatos descadastrados, e a participação deles em listas começa como descadastrada.

Retorno

Retorna 201 com o objeto de contato. Aqui, audiences lista cada lista de contatos com id, name e o status subscribed. Consulte Obter um contato para ver todos os campos.

Retorna 422 com usage quando uma lista de contatos está no limite de inscritos do seu plano. Nesse caso, nenhum contato é criado.

POST/contacts
Terminal
curl -X POST https://api.emailit.com/v2/contacts \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "ada@example.com",
    "first_name": "Ada",
    "last_name": "Lovelace",
    "custom_fields": { "company": "Analytical Engines", "plan": "pro" },
    "audiences": ["aud_4KbFmQPy1feMCGAY8F8pAhiZ1u2"]
  }'
JSON
{
  "object": "contact",
  "id": "con_4K9kQdrXth7am0TPKvPrR5yd2oo",
  "email": "ada@example.com",
  "first_name": "Ada",
  "last_name": "Lovelace",
  "custom_fields": {
    "company": "Analytical Engines",
    "plan": "pro"
  },
  "unsubscribed": false,
  "audiences": [
    {
      "id": "aud_4KbFmQPy1feMCGAY8F8pAhiZ1u2",
      "name": "Newsletter",
      "subscribed": true
    }
  ],
  "created_at": "2026-10-01T10:20:31.704113Z",
  "updated_at": "2026-10-01T10:20:31.704113Z"
}

Obter um contato

Obtém um contato com os campos personalizados e a participação dele em listas de contatos.

GET/contacts/{id}

Requer uma chave de API com escopo full.

Parâmetros de caminho

idstringobrigatório
O ID do contato (con_…) ou o endereço de e-mail do contato, codificado para URL.

Retorno

Retorna o objeto de contato.

objectstring
Sempre contact.
idstring
O ID do contato.
emailstring
O endereço de e-mail, em minúsculas.
first_namestring | null
O nome.
last_namestring | null
O sobrenome.
custom_fieldsobject
Valores de campos personalizados por chave. {} quando não há nenhum.
unsubscribedboolean
true se o contato se descadastrou de todas as campanhas.
audiencesobject[]

As listas de contatos de que o contato participa, cada uma com id, name e um objeto subscriber: id (sub_…), subscribed, subscribed_at, unsubscribed_at, created_at e updated_at.

created_atstring
Quando o contato foi criado.
updated_atstring
Quando o contato foi alterado pela última vez.
GET/contacts/{id}
Terminal
curl https://api.emailit.com/v2/contacts/con_4K9kQdrXth7am0TPKvPrR5yd2oo \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
JSON
{
  "object": "contact",
  "id": "con_4K9kQdrXth7am0TPKvPrR5yd2oo",
  "email": "ada@example.com",
  "first_name": "Ada",
  "last_name": "Lovelace",
  "custom_fields": {
    "company": "Analytical Engines",
    "plan": "pro"
  },
  "unsubscribed": false,
  "audiences": [
    {
      "id": "aud_4KbFmQPy1feMCGAY8F8pAhiZ1u2",
      "name": "Newsletter",
      "subscriber": {
        "id": "sub_4KECYl5AwXEy8ezswYRhuddttxo",
        "subscribed": true,
        "subscribed_at": "2026-10-01T10:20:31.000000Z",
        "unsubscribed_at": null,
        "created_at": "2026-10-01T10:20:31.000000Z",
        "updated_at": "2026-10-01T10:20:31.000000Z"
      }
    }
  ],
  "created_at": "2026-10-01T10:20:31.000000Z",
  "updated_at": "2026-10-01T10:20:31.000000Z"
}

Atualizar um contato

Atualiza um contato. Só mudam os campos que você enviar.

POST/contacts/{id}

Requer uma chave de API com escopo full. Dispara contact.updated, com os valores anteriores dos campos alterados em previous. Alterar audiences também dispara subscriber.created e subscriber.deleted para as participações em listas que forem adicionadas e removidas.

Parâmetros de caminho

idstringobrigatório
O ID do contato (con_…) ou o endereço de e-mail do contato, codificado para URL.

Parâmetros do corpo

emailstring
Um novo endereço de e-mail. Não pode pertencer a outro contato.
first_namestring
O nome.
last_namestring
O sobrenome.
custom_fieldsobject
Valores de campos personalizados por chave. Substitui todos os campos personalizados do contato, então inclua os que você quer manter.
unsubscribedboolean
true para descadastrar o contato de todas as campanhas, false para reinscrevê-lo. As participações existentes em listas mantêm o próprio status.
audiencesstring[]

A lista completa de IDs das listas de contatos de que o contato deve participar. O contato é adicionado às listas em que ainda não está e removido das listas que não estão na sua relação. Envie [] para removê-lo de todas as listas. Para adicionar ou remover uma lista sem relacionar todas, use Adicionar um inscrito ou Excluir um inscrito.

Retorno

Retorna o contato atualizado no mesmo formato de Obter um contato. Uma requisição sem nenhum desses campos retorna 400.

POST/contacts/{id}
Terminal
curl -X POST https://api.emailit.com/v2/contacts/con_4K9kQdrXth7am0TPKvPrR5yd2oo \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"first_name": "Augusta"}'
Terminal
curl -X POST https://api.emailit.com/v2/contacts/ada%40example.com \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "custom_fields": { "company": "Analytical Engines", "plan": "business" },
    "audiences": ["aud_4KbFmQPy1feMCGAY8F8pAhiZ1u2", "aud_4KOlh9t2uw5od4qypqCtyrZyDq2"]
  }'
JSON
{
  "object": "contact",
  "id": "con_4K9kQdrXth7am0TPKvPrR5yd2oo",
  "email": "ada@example.com",
  "first_name": "Augusta",
  "last_name": "Lovelace",
  "custom_fields": {
    "company": "Analytical Engines",
    "plan": "pro"
  },
  "unsubscribed": false,
  "audiences": [
    {
      "id": "aud_4KbFmQPy1feMCGAY8F8pAhiZ1u2",
      "name": "Newsletter",
      "subscriber": {
        "id": "sub_4KECYl5AwXEy8ezswYRhuddttxo",
        "subscribed": true,
        "subscribed_at": "2026-10-01T10:20:31.000000Z",
        "unsubscribed_at": null,
        "created_at": "2026-10-01T10:20:31.000000Z",
        "updated_at": "2026-10-01T10:20:31.000000Z"
      }
    }
  ],
  "created_at": "2026-10-01T10:20:31.000000Z",
  "updated_at": "2026-10-02T09:03:17.000000Z"
}

Listar contatos

Retorna uma página de contatos, dos mais recentes para os mais antigos.

GET/contacts

Requer uma chave de API com escopo full. Use os mesmos parâmetros com Exportar contatos para baixar todas as correspondências como arquivo.

Parâmetros de consulta

pageintegerpadrão: 1
A página a retornar.
limitintegerpadrão: 10
Contatos por página, de 1 a 100.
audience_idstring
Apenas os contatos desta lista de contatos (aud_…).
unsubscribedboolean
true ou false. Apenas os contatos com este status de descadastro.
sortstringpadrão: created_at
email, first_name, last_name, name, audiences, created_at ou updated_at.
orderstringpadrão: desc
asc ou desc. Neste endpoint, order é a direção da ordenação, não a chave de ordenação.
matchstringpadrão: all
all ou or. Como os filtros abaixo se combinam.

Filtros

Adicione filtros no formato key.condition=value, por exemplo email.ends_with=@acme.com ou custom_fields.plan.exact=pro. Consulte Filtragem.

Chave Tipo Observações
email string
first_name string
last_name string
name string Nome e sobrenome unidos por um espaço.
audiences string O nome da lista do contato que vem primeiro em ordem alfabética.
unsubscribed boolean
created_at date
updated_at date
audience_id string Apenas exact e not_exact. O valor é um ID de lista de contatos.
custom_fields.<key> string Substitua <key> pela chave de um campo personalizado. Os valores são comparados como texto.

Os parâmetros antigos filter[audience_id], filter[unsubscribed] e filter[custom_fields][<key>] continuam funcionando.

Retorno

dataobject[]
Os contatos desta página, cada um com audiences no formato id, name e subscribed. Consulte Obter um contato.
total_recordsinteger
O número de contatos correspondentes, somando todas as páginas.
next_page_urlstring | null
Caminho da próxima página com os seus filtros, ou null. Consulte Paginação.
previous_page_urlstring | null
Caminho da página anterior, ou null.
GET/contacts
Terminal
curl https://api.emailit.com/v2/contacts \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
Terminal
curl -G https://api.emailit.com/v2/contacts \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  --data-urlencode "audience_id=aud_4KbFmQPy1feMCGAY8F8pAhiZ1u2" \
  --data-urlencode "custom_fields.plan.exact=pro" \
  --data-urlencode "sort=email" \
  --data-urlencode "order=asc" \
  --data-urlencode "limit=100"
JSON
{
  "data": [
    {
      "object": "contact",
      "id": "con_4K9kQdrXth7am0TPKvPrR5yd2oo",
      "email": "ada@example.com",
      "first_name": "Ada",
      "last_name": "Lovelace",
      "custom_fields": {
        "company": "Analytical Engines",
        "plan": "pro"
      },
      "unsubscribed": false,
      "audiences": [
        {
          "id": "aud_4KbFmQPy1feMCGAY8F8pAhiZ1u2",
          "name": "Newsletter",
          "subscribed": true
        }
      ],
      "created_at": "2026-10-01T10:20:31.704113Z",
      "updated_at": "2026-10-01T10:20:31.704113Z"
    },
    {
      "object": "contact",
      "id": "con_4KiXIs4xLTcJIAHnKJaLcnMZYh7",
      "email": "grace@example.com",
      "first_name": "Grace",
      "last_name": "Hopper",
      "custom_fields": {},
      "unsubscribed": true,
      "audiences": [],
      "created_at": "2026-09-28T07:55:02.118342Z",
      "updated_at": "2026-09-30T18:11:40.902215Z"
    }
  ],
  "total_records": 2,
  "next_page_url": null,
  "previous_page_url": null
}

Atualizar contatos em massa

Executa uma ação em até 100 contatos em uma única requisição.

POST/contacts/bulk

Requer uma chave de API com escopo full. Todos os IDs devem pertencer a contatos do workspace; caso contrário, nada é alterado e a resposta lista os IDs ausentes em missing. Cada contato dispara os mesmos eventos que os endpoints de um único contato. Se a lista de contatos atingir o limite de inscritos do seu plano durante add_to_audience, a requisição para com 422, e os contatos processados até então continuam adicionados.

Ação O que faz
delete Exclui os contatos e a participação deles em listas, como Excluir um contato.
add_to_audience Adiciona os contatos a audience_id. Os contatos que já estão na lista ficam como estão.
remove_from_audience Remove os contatos de audience_id.
unsubscribe Define unsubscribed como true, para que as campanhas ignorem os contatos.
resubscribe Define unsubscribed como false.

Parâmetros do corpo

actionstringobrigatório
delete, add_to_audience, remove_from_audience, unsubscribe ou resubscribe.
idsstring[]obrigatório
IDs de contatos (con_…), de 1 a 100. Endereços de e-mail não são aceitos aqui. IDs duplicados são ignorados.
audience_idstring
O ID da lista de contatos. Obrigatório para add_to_audience e remove_from_audience.

Retorno

objectstring
Sempre contact_bulk.
actionstring
A ação executada.
processedinteger
Quantos contatos foram processados.
idsstring[]
Os IDs dos contatos processados.
POST/contacts/bulk
Terminal
curl -X POST https://api.emailit.com/v2/contacts/bulk \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"action": "add_to_audience", "ids": ["con_4K9kQdrXth7am0TPKvPrR5yd2oo", "con_4KiXIs4xLTcJIAHnKJaLcnMZYh7"], "audience_id": "aud_4KOlh9t2uw5od4qypqCtyrZyDq2"}'
JSON
{
  "object": "contact_bulk",
  "action": "add_to_audience",
  "processed": 2,
  "ids": ["con_4K9kQdrXth7am0TPKvPrR5yd2oo", "con_4KiXIs4xLTcJIAHnKJaLcnMZYh7"]
}

Exportar contatos

Baixa os contatos correspondentes como arquivo CSV ou XLSX.

GET/contacts/export

Requer uma chave de API com escopo full. Aceita os mesmos parâmetros de busca, filtro e ordenação que Listar contatos, passados na query string, sem paginação. POST /contacts/export funciona da mesma forma. Uma exportação pode incluir até 10.000 contatos; se houver mais correspondências, a requisição retorna 422, então restrinja os filtros.

Parâmetros de consulta

formatstringpadrão: csv
csv ou xlsx.
search, audience_id, unsubscribed, sort, order, match, key.conditionstring
Os mesmos parâmetros de Listar contatos.

Retorno

Retorna o arquivo como anexo: contacts.csv (text/csv; charset=utf-8) ou contacts.xlsx. Cada linha é um contato, com estas colunas:

Coluna Contém
email O endereço de e-mail.
first_name, last_name Os nomes.
unsubscribed true ou false.
audiences Os nomes das listas de contatos do contato, separados por ; .
Uma coluna por campo personalizado O valor de cada campo personalizado definido no workspace, com a chave dele como nome. Listas de valores são unidas com ;.
created_at, updated_at Timestamps ISO 8601.
GET/contacts/export
Terminal
curl "https://api.emailit.com/v2/contacts/export?format=csv&audience_id=aud_4KbFmQPy1feMCGAY8F8pAhiZ1u2" \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -o contacts.csv
Text
email,first_name,last_name,unsubscribed,audiences,company,plan,created_at,updated_at
ada@example.com,Ada,Lovelace,false,Newsletter,Analytical Engines,pro,2026-10-01T10:20:31.000000Z,2026-10-01T10:20:31.000000Z

Excluir um contato

Exclui permanentemente um contato e toda a participação dele em listas de contatos.

DELETE/contacts/{id}

Requer uma chave de API com escopo full. A exclusão não pode ser desfeita. Para parar de enviar e-mails a alguém, mas manter o registro da pessoa, atualize o contato com unsubscribed: true ou adicione o endereço às suas supressões. Dispara subscriber.deleted para cada participação em lista e depois contact.deleted.

Parâmetros de caminho

idstringobrigatório
O ID do contato (con_…) ou o endereço de e-mail do contato, codificado para URL.

Retorno

objectstring
Sempre contact.
idstring
O ID do contato excluído.
emailstring
O endereço de e-mail do contato.
deletedboolean
Sempre true.
DELETE/contacts/{id}
Terminal
curl -X DELETE https://api.emailit.com/v2/contacts/con_4Kt4ZXloQR8WGcMsYx8PFCUjokM \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
JSON
{
  "object": "contact",
  "id": "con_4Kt4ZXloQR8WGcMsYx8PFCUjokM",
  "email": "alan@example.com",
  "deleted": true
}

Esta página foi útil?

Obrigado pelo feedback.

Obrigado, lemos todas as mensagens.