API de Email

No momento, ainda não lançamos wrappers de API, mas planejamos fazê-lo em breve. Envie um email para api@forwardemail.net se desejar ser notificado quando o wrapper da API para uma linguagem de programação específica for lançado. Enquanto isso, você pode usar essas bibliotecas recomendadas para requisições HTTP em sua aplicação, ou simplesmente usar curl como nos exemplos abaixo.

Linguagem Biblioteca
Ruby Faraday
Python requests
Java OkHttp
PHP guzzle
JavaScript superagent (somos mantenedores)
Node.js superagent (somos mantenedores)
Go net/http
.NET RestSharp

O caminho atual do URI base HTTP é: https://fe.tiamati.email.

Todos os endpoints requerem autenticação usando Autorização Básica. Suportamos dois métodos de autenticação:

Defina sua chave API como o valor "username" com uma senha vazia:

curl https://fe.tiamati.email/v1/account \
  -u API_TOKEN:

Note o dois pontos (:) após o token API – isso indica uma senha vazia no formato Basic Auth.

Autenticação por Credenciais de Alias (Para email de saída)

O endpoint Criar email SMTP de saída também suporta autenticação usando seu endereço de email alias e uma senha de alias gerada:

curl -X POST https://fe.tiamati.email/v1/emails \
  -u "alias@yourdomain.com:your_generated_password" \
  -d "to=recipient@example.com" \
  -d "subject=Hello" \
  -d "text=Test email"

Este método é útil ao enviar emails de aplicações que já usam credenciais SMTP e torna a migração do SMTP para nossa API transparente.

Endpoints Somente para Alias

Os endpoints Contatos de Alias, Calendários de Alias, Mensagens de Alias e Pastas de Alias requerem credenciais de alias e não suportam autenticação por token API.

Não se preocupe – exemplos são fornecidos abaixo para você caso não saiba o que é isso.

Se ocorrer algum erro, o corpo da resposta da requisição API conterá uma mensagem de erro detalhada.

Código Nome
200 OK
400 Requisição Inválida
401 Não Autorizado
403 Proibido
404 Não Encontrado
429 Muitas Requisições
500 Erro Interno do Servidor
501 Não Implementado
502 Gateway Ruim
503 Serviço Indisponível
504 Tempo Esgotado no Gateway

Tip

Se você receber um código de status 5xx (o que não deveria acontecer), por favor entre em contato conosco em api@forwardemail.net e ajudaremos você a resolver seu problema imediatamente.

Nosso serviço está traduzido para mais de 25 idiomas diferentes. Todas as mensagens de resposta da API são traduzidas para o último idioma detectado do usuário que faz a requisição API. Você pode sobrescrever isso passando um cabeçalho Accept-Language personalizado. Sinta-se à vontade para testar usando o menu de seleção de idioma no rodapé desta página.

Note

A partir de 1º de novembro de 2024, os endpoints da API para Listar domínios e Listar aliases de domínio terão por padrão 1000 resultados máximos por página. Se desejar optar por esse comportamento antecipadamente, você pode passar ?paginate=true como um parâmetro adicional na querystring da URL do endpoint.

A paginação é suportada por todos os endpoints da API que listam resultados.

Basta fornecer as propriedades da querystring page (e opcionalmente limit).

A propriedade page deve ser um número maior ou igual a 1. Se você fornecer limit (também um número), o valor mínimo é 10 e o máximo é 50 (a menos que indicado de outra forma).

Parâmetro da Querystring Obrigatório Tipo Descrição
page Não Número Página de resultados a retornar. Se não especificado, o valor de page será 1. Deve ser um número maior ou igual a 1.
limit Não Número Número de resultados a retornar por página. Padrão é 10 se não especificado. Deve ser um número maior ou igual a 1 e menor ou igual a 50.
Para determinar se há mais resultados disponíveis, fornecemos estes cabeçalhos de resposta HTTP (que você pode analisar para paginar programaticamente):
Cabeçalho de Resposta HTTP Exemplo Descrição
X-Page-Count X-Page-Count: 3 A contagem total de páginas disponíveis.
X-Page-Current X-Page-Current: 1 A página atual de resultados retornada (por exemplo, baseada no parâmetro de querystring page).
X-Page-Size X-Page-Size: 10 O número total de resultados na página retornada (por exemplo, baseado no parâmetro de querystring limit e nos resultados efetivamente retornados).
X-Item-Count X-Item-Count: 30 O número total de itens disponíveis em todas as páginas.
Link Link: <https://api.forwardemail.net/v1/emails?page=1>; rel="prev", <https://api.forwardemail.net/v1/emails?page=3>; rel="next", <https://api.forwardemail.net/v1/emails?page=3; rel="last", https://api.forwardemail.net/v1/emails?page=1; rel="first" Fornecemos um cabeçalho de resposta HTTP Link que você pode analisar conforme mostrado no exemplo. Isso é similar ao GitHub (por exemplo, nem todos os valores serão fornecidos se não forem relevantes ou disponíveis, por exemplo, "next" não será fornecido se não houver outra página).

Exemplo de Requisição:

curl https://fe.tiamati.email/v1/domains/example.com/aliases?page=2&pagination=true \
  -u API_TOKEN:

Recuperar logs

Nossa API permite programaticamente que você baixe logs da sua conta. Enviar uma requisição para este endpoint processará todos os logs da sua conta e os enviará por email como um anexo (arquivo de planilha CSV comprimido com Gzip) assim que concluído.

Isso permite que você crie tarefas em segundo plano com um Cron job ou usando nosso software de agendamento de tarefas Node.js Bree para receber logs sempre que desejar. Note que este endpoint é limitado a 10 requisições por dia.

O anexo tem o formato em minúsculas de email-deliverability-logs-YYYY-MM-DD-h-mm-A-z.csv.gz e o próprio email contém um breve resumo dos logs recuperados. Você também pode baixar logs a qualquer momento em Minha Conta → Logs

GET /v1/logs/download

Parâmetro Querystring Obrigatório Tipo Descrição
domain Não String (FQDN) Filtrar logs por domínio totalmente qualificado ("FQDN"). Se não fornecer, todos os logs de todos os domínios serão recuperados.
q Não String Buscar logs por email, domínio, nome do alias, endereço IP ou data (formatos M/Y, M/D/YY, M-D, M-D-YY ou M.D.YY).
bounce_category Não String Buscar logs por uma categoria específica de bounce (ex. blocklist).
response_code Não Número Buscar logs por um código de resposta de erro específico (ex. 421 ou 550).

Exemplo de Requisição:

curl https://fe.tiamati.email/v1/logs/download \
  -u API_TOKEN:

Exemplo de Cron job (à meia-noite todo dia):

0 0 * * * /usr/bin/curl https://fe.tiamati.email/v1/logs/download -u API_TOKEN: &>/dev/null

Note que você pode usar serviços como Crontab.guru para validar a sintaxe da expressão do seu cron job.

Exemplo de Cron job (à meia-noite todo dia e com logs do dia anterior):

Para MacOS:

0 0 * * * /usr/bin/curl https://fe.tiamati.email/v1/logs/download?q=`date -v-1d -u "+%-m/%-d/%y"` -u API_TOKEN: &>/dev/null

Para Linux e Ubuntu:

0 0 * * * /usr/bin/curl https://fe.tiamati.email/v1/logs/download?q=`date --date "-1 days" -u "+%-m/%-d/%y"` -u API_TOKEN: &>/dev/null

Criar conta

POST /v1/account

Parâmetro do Corpo Obrigatório Tipo Descrição
email Sim String (Email) Endereço de email
password Sim String Senha

Exemplo de Requisição:

curl -X POST https://fe.tiamati.email/v1/account \
  -u API_TOKEN: \
  -d "email=user%40gmail.com"

Recuperar conta

GET /v1/account

Exemplo de Requisição:

curl https://fe.tiamati.email/v1/account \
  -u API_TOKEN:

Atualizar conta

PUT /v1/account

Parâmetro do Corpo Obrigatório Tipo Descrição
email Não String (Email) Endereço de email
given_name Não String Primeiro nome
family_name Não String Sobrenome
avatar_url Não String (URL) Link para imagem do avatar

Exemplo de Requisição:

curl -X PUT https://fe.tiamati.email/v1/account \
  -u API_TOKEN: \
  -d "email=user%40gmail.com"

Note

Diferente de outros endpoints da API, estes requerem Autenticação com "username" igual ao nome de usuário do alias e "password" igual à senha gerada do alias como cabeçalhos de Autorização Básica. [!WARNING] Esta seção de endpoint está em desenvolvimento e será lançada (esperançosamente) em 2024. Enquanto isso, por favor use um cliente IMAP no menu "Apps" na navegação do nosso site.

Listar contatos

GET /v1/contacts

Em breve

Criar contato

POST /v1/contacts

Em breve

Recuperar contato

GET /v1/contacts/:id

Em breve

Atualizar contato

PUT /v1/contacts/:id

Em breve

Excluir contato

DELETE /v1/contacts/:id

Em breve

Note

Diferente de outros endpoints da API, estes requerem Autenticação com "username" igual ao nome de usuário do alias e "password" igual à senha gerada do alias como cabeçalhos de Autorização Básica.

Warning

Esta seção de endpoint está em desenvolvimento e será lançada (esperançosamente) em 2024. Enquanto isso, por favor use um cliente IMAP no menu "Apps" na navegação do nosso site.

Listar calendários

GET /v1/calendars

Em breve

Criar calendário

POST /v1/calendars

Em breve

Recuperar calendário

GET /v1/calendars/:id

Em breve

Atualizar calendário

PUT /v1/calendars/:id

Em breve

Excluir calendário

DELETE /v1/calendars/:id

Em breve

Note

Diferente de outros endpoints da API, estes requerem Autenticação com "username" igual ao nome de usuário do alias e "password" igual à senha gerada do alias como cabeçalhos de Autorização Básica.

Warning

Esta seção de endpoint está em desenvolvimento e será lançada (esperançosamente) em 2024. Enquanto isso, por favor use um cliente IMAP no menu "Apps" na navegação do nosso site.

Por favor, certifique-se de que você seguiu as instruções de configuração para seu domínio.

Estas instruções podem ser encontradas na seção FAQ Você suporta receber email com IMAP?.

Listar e buscar mensagens

GET /v1/messages

Em breve

Criar mensagem

Note

Isto NÃO enviará um email – apenas adicionará a mensagem à sua pasta de caixa de correio (por exemplo, isso é similar ao comando IMAP APPEND). Se você deseja enviar um email, veja Criar email SMTP de saída abaixo. Após criar o email SMTP de saída, você pode anexar uma cópia dele usando este endpoint à caixa de correio do seu alias para fins de armazenamento.

POST /v1/messages

Em breve

Recuperar mensagem

GET /v1/messages/:id

Em breve

Atualizar mensagem

PUT /v1/messages/:id

Em breve

Excluir mensagem

DELETE /v1/messages:id

Em breve

Tip

Endpoints de pasta com o caminho da pasta /v1/folders/:path como seu endpoint são intercambiáveis com o ID da pasta :id. Isso significa que você pode se referir à pasta pelo seu path ou id.

Warning

Esta seção de endpoint está em desenvolvimento e será lançada (esperançosamente) em 2024. Enquanto isso, por favor use um cliente IMAP no menu "Apps" na navegação do nosso site.

Listar pastas

GET /v1/folders

Em breve

Criar pasta

POST /v1/folders

Em breve

Recuperar pasta

GET /v1/folders/:id

Em breve

Atualizar pasta

PUT /v1/folders/:id

Em breve

Excluir pasta

DELETE /v1/folders/:id

Em breve

Copiar pasta

POST /v1/folders/:id/copy

Em breve

Por favor, certifique-se de que você seguiu as instruções de configuração para seu domínio.

Estas instruções podem ser encontradas em Minha Conta → Domínios → Configurações → Configuração SMTP de Saída. Você precisa garantir a configuração de DKIM, Return-Path e DMARC para enviar SMTP de saída com seu domínio.

Obter limite de email SMTP de saída

Este é um endpoint simples que retorna um objeto JSON contendo o count e o limit para o número diário de mensagens SMTP de saída por conta.

GET /v1/emails/limit

Exemplo de Requisição:

curl https://fe.tiamati.email/v1/emails/limit \
  -u API_TOKEN:

Listar emails SMTP de saída

Observe que este endpoint não retorna valores das propriedades do message, headers nem rejectedErrors de um email.

Para retornar essas propriedades e seus valores, use o endpoint Recuperar email com um ID de email.

GET /v1/emails

Parâmetro Querystring Obrigatório Tipo Descrição
q Não String (RegExp suportado) Pesquisa emails por metadados
domain Não String (RegExp suportado) Pesquisa emails por nome de domínio
sort Não String Ordena por um campo específico (prefixe com um hífen único - para ordenar na direção inversa desse campo). Padrão é created_at se não definido.
page Não Número Veja Paginação para mais detalhes
limit Não Número Veja Paginação para mais detalhes

Exemplo de Requisição:

curl https://fe.tiamati.email/v1/emails?limit=1 \
  -u API_TOKEN:

Criar email SMTP de saída

Nossa API para criar um email é inspirada e utiliza a configuração de opções de mensagem do Nodemailer. Por favor, consulte a configuração de mensagem do Nodemailer para todos os parâmetros do corpo abaixo.

Observe que, com exceção de envelope e dkim (já que configuramos automaticamente para você), suportamos todas as opções do Nodemailer. Definimos automaticamente as opções disableFileAccess e disableUrlAccess como true por motivos de segurança.

Você deve passar ou a única opção raw com seu email completo bruto incluindo cabeçalhos ou passar as opções individuais de parâmetros do corpo abaixo.

Este endpoint da API codificará automaticamente emojis para você se forem encontrados nos cabeçalhos (por exemplo, uma linha de assunto Subject: 🤓 Hello é convertida automaticamente para Subject: =?UTF-8?Q?=F0=9F=A4=93?= Hello). Nosso objetivo foi criar uma API de email extremamente amigável para desenvolvedores e à prova de erros.

Autenticação: Este endpoint suporta tanto autenticação por token de API quanto autenticação por credenciais de alias. Veja a seção Autenticação acima para detalhes.

POST /v1/emails

Parâmetro do Corpo Obrigatório Tipo Descrição
from Não String (Email) O endereço de email do remetente (deve existir como um alias do domínio).
to Não String ou Array Lista separada por vírgulas ou um Array de destinatários para o cabeçalho "To".
cc Não String ou Array Lista separada por vírgulas ou um Array de destinatários para o cabeçalho "Cc".
bcc Não String ou Array Lista separada por vírgulas ou um Array de destinatários para o cabeçalho "Bcc".
subject Não String O assunto do email.
text Não String ou Buffer A versão em texto simples da mensagem.
html Não String ou Buffer A versão HTML da mensagem.
attachments Não Array Um array de objetos de anexos (veja os campos comuns do Nodemailer).
sender Não String O endereço de email para o cabeçalho "Sender" (veja os campos mais avançados do Nodemailer).
replyTo Não String O endereço de email para o cabeçalho "Reply-To".
inReplyTo Não String O Message-ID ao qual a mensagem está respondendo.
references Não String ou Array Lista separada por espaços ou um Array de Message-IDs.
attachDataUrls Não Boolean Se true, converte imagens data: no conteúdo HTML da mensagem em anexos incorporados.
watchHtml Não String Uma versão HTML específica para Apple Watch da mensagem (de acordo com a documentação do Nodemailer, os relógios mais recentes não exigem que isso seja definido).
amp Não String Uma versão HTML específica AMP4EMAIL da mensagem (veja o exemplo do Nodemailer).
icalEvent Não Object Um evento iCalendar para usar como conteúdo alternativo da mensagem (veja os eventos de calendário do Nodemailer).
alternatives Não Array Um Array de conteúdos alternativos da mensagem (veja os conteúdos alternativos do Nodemailer).
encoding Não String Codificação para as strings de texto e HTML (padrão é "utf-8", mas também suporta valores de codificação "hex" e "base64").
raw Não String ou Buffer Uma mensagem formatada RFC822 gerada customizadamente para usar (em vez de uma gerada pelo Nodemailer – veja a fonte customizada do Nodemailer).
textEncoding Não String Codificação que é forçada a ser usada para valores de texto (ou "quoted-printable" ou "base64"). O valor padrão é o valor mais próximo detectado (para ASCII use "quoted-printable").
priority Não String Nível de prioridade para o email (pode ser "high", "normal" (padrão) ou "low"). Note que um valor "normal" não define um cabeçalho de prioridade (este é o comportamento padrão). Se um valor "high" ou "low" for definido, os cabeçalhos X-Priority, X-MSMail-Priority e Importance serão definidos conforme.
headers Não Object ou Array Um Objeto ou um Array de campos de cabeçalho adicionais para definir (veja os cabeçalhos customizados do Nodemailer).
messageId Não String Um valor opcional de Message-ID para o cabeçalho "Message-ID" (um valor padrão será criado automaticamente se não definido – note que o valor deve aderir à especificação RFC2822).
date Não String ou Date Um valor opcional de Data que será usado se o cabeçalho Date estiver ausente após o parsing, caso contrário a string UTC atual será usada se não definido. O cabeçalho de data não pode ser mais de 30 dias à frente do tempo atual.
list Não Object Um Objeto opcional de cabeçalhos List-* (veja os cabeçalhos de lista do Nodemailer).

Exemplo de Requisição (Token API):

curl -X POST https://fe.tiamati.email/v1/emails \
  -u API_TOKEN: \
  -d "from=alias@example.com" \
  -d "to=user%40gmail.com" \
  -d "subject=test" \
  -d "text=test"

Exemplo de Requisição (Credenciais do Alias):

curl -X POST https://fe.tiamati.email/v1/emails \
  -u "alias@example.com:GENERATED_PASSWORD" \
  -d "from=alias@example.com" \
  -d "to=user%40gmail.com" \
  -d "subject=test" \
  -d "text=test"

Exemplo de Requisição (Email Bruto):

curl -X POST https://fe.tiamati.email/v1/emails \
  -u API_TOKEN: \
  -d "raw=`cat file.eml`"

Recuperar email SMTP de saída

GET /v1/emails/:id

Exemplo de Requisição:

curl https://fe.tiamati.email/v1/emails/:id \
  -u API_TOKEN:

Excluir email SMTP de saída

A exclusão do email definirá o status para "rejected" (e subsequentemente não o processará na fila) se e somente se o status atual for um dos seguintes: "pending", "queued" ou "deferred". Podemos purgar emails automaticamente após 30 dias da sua criação e/ou envio – portanto, você deve manter uma cópia dos emails SMTP de saída em seu cliente, banco de dados ou aplicação. Você pode referenciar nosso valor de ID do email em seu banco de dados, se desejar – este valor é retornado tanto nos endpoints Criar email quanto Recuperar email.

DELETE /v1/emails/:id

Exemplo de Requisição:

curl -X DELETE https://fe.tiamati.email/v1/emails/:id \
  -u API_TOKEN:

Tip

Endpoints de domínio com o nome do domínio /v1/domains/:domain_name como seu endpoint são intercambiáveis com o ID do domínio :domain_id. Isso significa que você pode se referir ao domínio pelo seu name ou id.

Listar domínios

Note

A partir de 1º de novembro de 2024, os endpoints da API para Listar domínios e Listar aliases de domínio terão como padrão 1000 resultados máximos por página. Se desejar optar por esse comportamento antecipadamente, você pode passar ?paginate=true como um parâmetro adicional na querystring da URL para a consulta do endpoint. Veja Paginação para mais detalhes.

GET /v1/domains

Parâmetro da Querystring Obrigatório Tipo Descrição
q Não String (RegExp suportado) Buscar domínios pelo nome
name Não String (RegExp suportado) Buscar domínios pelo nome
sort Não String Ordenar por um campo específico (prefixe com um hífen - para ordenar na direção inversa desse campo). Padrão é created_at se não definido.
page Não Número Veja Paginação para mais detalhes
limit Não Número Veja Paginação para mais detalhes

Exemplo de Requisição:

curl https://fe.tiamati.email/v1/domains \
  -u API_TOKEN:

Criar domínio

POST /v1/domains

Parâmetro do Corpo Obrigatório Tipo Descrição
domain Sim String (FQDN ou IP) Nome de domínio totalmente qualificado ("FQDN") ou endereço IP
team_domain Não String (ID do domínio ou nome do domínio; FQDN) Atribuir automaticamente este domínio ao mesmo time de outro domínio. Isso significa que todos os membros deste domínio serão atribuídos como membros do time, e o plan será automaticamente definido como team. Você pode definir como "none" se necessário para desabilitar explicitamente isso, mas não é necessário.
plan Não String (enumerável) Tipo de plano (deve ser "free", "enhanced_protection" ou "team", padrão é "free" ou o plano pago atual do usuário, se houver)
catchall Não String (endereços de email delimitados) ou Boolean Criar um alias catch-all padrão, padrão é true (se true usará o endereço de email do usuário da API como destinatário, e se false nenhum catch-all será criado). Se for passada uma String, será uma lista delimitada de endereços de email para usar como destinatários (separados por quebra de linha, espaço e/ou vírgula)
has_adult_content_protection Não Boolean Se deve ativar a proteção de conteúdo adulto do Spam Scanner neste domínio
has_phishing_protection Não Boolean Se deve ativar a proteção contra phishing do Spam Scanner neste domínio
has_executable_protection Não Boolean Se deve ativar a proteção contra executáveis do Spam Scanner neste domínio
has_virus_protection Não Boolean Se deve ativar a proteção contra vírus do Spam Scanner neste domínio
has_recipient_verification Não Boolean Padrão global do domínio para exigir que destinatários de alias cliquem em um link de verificação de email para que os emails sejam encaminhados
ignore_mx_check Não Boolean Se deve ignorar a verificação do registro MX no domínio para verificação. Isso é principalmente para usuários que possuem regras avançadas de configuração de troca MX e precisam manter sua troca MX existente e encaminhar para a nossa.
retention_days Não Número Inteiro entre 0 e 30 que corresponde ao número de dias de retenção para armazenar emails SMTP de saída após entrega bem-sucedida ou erro permanente. Padrão é 0, o que significa que os emails SMTP de saída são purgados e redigidos imediatamente para sua segurança.
bounce_webhook Não String (URL) ou Boolean (false) URL webhook http:// ou https:// de sua escolha para enviar webhooks de bounce. Enviaremos uma requisição POST para essa URL com informações sobre falhas SMTP de saída (ex.: falhas suaves ou duras – para que você possa gerenciar seus assinantes e gerenciar programaticamente seu email de saída).
max_quota_per_alias Não String Quota máxima de armazenamento para aliases neste nome de domínio. Insira um valor como "1 GB" que será interpretado por bytes.

Exemplo de Solicitação:

curl -X POST https://fe.tiamati.email/v1/domains \
  -u API_TOKEN: \
  -d domain=example.com \
  -d plan=free

Recuperar domínio

GET /v1/domains/example.com

Exemplo de Solicitação:

curl https://fe.tiamati.email/v1/domains/example.com \
  -u API_TOKEN:

Verificar registros do domínio

GET /v1/domains/example.com/verify-records

Exemplo de Solicitação:

curl https://fe.tiamati.email/v1/domains/example.com/verify-records \
  -u API_TOKEN:

Verificar registros SMTP do domínio

GET /v1/domains/example.com/verify-smtp

Exemplo de Solicitação:

curl https://fe.tiamati.email/v1/domains/example.com/verify-smtp \
  -u API_TOKEN:

Listar senhas catch-all para todo o domínio

GET /v1/domains/example.com/catch-all-passwords

Exemplo de Solicitação:

curl https://fe.tiamati.email/v1/domains/example.com/catch-all-passwords \
  -u API_TOKEN:

Criar senha catch-all para todo o domínio

POST /v1/domains/example.com/catch-all-passwords

Parâmetro do Corpo Obrigatório Tipo Descrição
new_password Não String Sua nova senha personalizada para usar como senha catch-all para todo o domínio. Note que você pode deixar este campo em branco ou ausente no corpo da requisição API se desejar obter uma senha forte gerada aleatoriamente.
description Não String Descrição apenas para fins de organização.

Exemplo de Solicitação:

curl BASE_URL/v1/domains/example.com/catch-all-passwords \
  -u API_TOKEN:

Remover senha catch-all para todo o domínio

DELETE /v1/domains/example.com/catch-all-passwords/:token_id

Exemplo de Solicitação:

curl -X DELETE https://fe.tiamati.email/v1/domains/:domain_name/catch-all-passwords/:token_id \
  -u API_TOKEN:

Atualizar domínio

PUT /v1/domains/example.com

Parâmetro do Corpo Obrigatório Tipo Descrição
smtp_port Não String ou Número Porta personalizada para configurar o encaminhamento SMTP (padrão é "25")
has_adult_content_protection Não Boolean Se deve ativar a proteção contra conteúdo adulto do Spam Scanner neste domínio
has_phishing_protection Não Boolean Se deve ativar a proteção contra phishing do Spam Scanner neste domínio
has_executable_protection Não Boolean Se deve ativar a proteção contra executáveis do Spam Scanner neste domínio
has_virus_protection Não Boolean Se deve ativar a proteção contra vírus do Spam Scanner neste domínio
has_recipient_verification Não Boolean Padrão global do domínio para exigir que destinatários de alias cliquem em um link de verificação de email para que os emails sejam encaminhados
ignore_mx_check Não Boolean Se deve ignorar a verificação do registro MX no domínio para verificação. Isso é principalmente para usuários que possuem regras avançadas de configuração de troca MX e precisam manter sua troca MX existente e encaminhar para a nossa.
retention_days Não Número Inteiro entre 0 e 30 que corresponde ao número de dias de retenção para armazenar emails SMTP de saída após entrega bem-sucedida ou erro permanente. O padrão é 0, o que significa que os emails SMTP de saída são apagados e redigidos imediatamente para sua segurança.
bounce_webhook Não String (URL) ou Boolean (false) A URL webhook http:// ou https:// de sua escolha para enviar webhooks de bounce. Enviaremos uma requisição POST para essa URL com informações sobre falhas SMTP de saída (ex.: falhas suaves ou duras – para que você possa gerenciar seus assinantes e gerenciar programaticamente seu email de saída).
max_quota_per_alias Não String Quota máxima de armazenamento para aliases neste nome de domínio. Insira um valor como "1 GB" que será interpretado por bytes.

Exemplo de Requisição:

curl -X PUT https://fe.tiamati.email/v1/domains/example.com \
  -u API_TOKEN:

Excluir domínio

DELETE /v1/domains/:domain_name

Exemplo de Requisição:

curl -X DELETE https://fe.tiamati.email/v1/domains/:domain_name \
  -u API_TOKEN:

Aceitar convite de domínio

GET /v1/domains/:domain_name/invites

Exemplo de Requisição:

curl https://fe.tiamati.email/v1/domains/:domain_name/invites \
  -u API_TOKEN:

Criar convite de domínio

POST /v1/domains/example.com/invites

Parâmetro do Corpo Obrigatório Tipo Descrição
email Sim String (Email) Endereço de email para convidar para a lista de membros do domínio
group Sim String (enumerável) Grupo para adicionar o usuário na associação do domínio (pode ser um dos valores "admin" ou "user")

Exemplo de Requisição:

curl -X POST https://fe.tiamati.email/v1/domains/example.com/invites \
  -u API_TOKEN: \
  -d "email=user%40gmail.com" \
  -d group=admin

Important

Se o usuário convidado já for um membro aceito de qualquer outro domínio do qual o administrador que o convida seja membro, o convite será aceito automaticamente e nenhum email será enviado.

Remover convite de domínio

DELETE /v1/domains/:domain_name/invites

Parâmetro do Corpo Obrigatório Tipo Descrição
email Sim String (Email) Endereço de email para remover da lista de membros do domínio

Exemplo de Requisição:

curl -X DELETE https://fe.tiamati.email/v1/domains/:domain_name/invites \
  -u API_TOKEN:

Atualizar membro do domínio

PUT /v1/domains/example.com/members/:member_id

Parâmetro do Corpo Obrigatório Tipo Descrição
group Sim String (enumerável) Grupo para atualizar o usuário na associação do domínio (pode ser um dos valores "admin" ou "user")

Exemplo de Requisição:

curl -X PUT https://fe.tiamati.email/v1/domains/example.com/members/:member_id \
  -u API_TOKEN:

Remover membro do domínio

DELETE /v1/domains/:domain_name/members/:member_id

Exemplo de Requisição:

curl -X DELETE https://fe.tiamati.email/v1/domains/:domain_name/members/:member_id \
  -u API_TOKEN:

Gerar uma senha para apelido

Note que se você não enviar instruções por email, o nome de usuário e a senha estarão no corpo da resposta JSON de uma requisição bem-sucedida no formato { username: 'alias@yourdomain.com', password: 'some-generated-password' }.

POST /v1/domains/example.com/aliases/:alias_id/generate-password

Parâmetro do Corpo Obrigatório Tipo Descrição
new_password Não String Sua nova senha personalizada para usar no apelido. Note que você pode deixar este campo em branco ou ausente no corpo da requisição API se desejar obter uma senha forte gerada aleatoriamente.
password Não String Senha existente do apelido para alterar a senha sem deletar o armazenamento IMAP existente (veja a opção is_override abaixo se você não tiver mais a senha existente).
is_override Não Boolean USE COM CAUTELA: Isso irá sobrescrever completamente a senha e o banco de dados do apelido existente, apagando permanentemente o armazenamento IMAP existente e resetando completamente o banco de dados SQLite de email do apelido. Faça um backup se possível caso tenha uma caixa de correio associada a este apelido.
emailed_instructions Não String Endereço de email para enviar a senha do apelido e as instruções de configuração.

Exemplo de Requisição:

curl -X POST https://fe.tiamati.email/v1/domains/example.com/aliases/:alias_id/generate-password \
  -u API_TOKEN:

Listar aliases de domínio

Note

A partir de 1º de novembro de 2024, os endpoints da API para Listar domínios e Listar aliases de domínio terão como padrão 1000 resultados máximos por página. Se você quiser optar por esse comportamento antecipadamente, pode passar ?paginate=true como um parâmetro adicional na querystring da URL para a consulta do endpoint. Veja Paginação para mais detalhes.

GET /v1/domains/example.com/aliases

Parâmetro da Querystring Obrigatório Tipo Descrição
q Não String (RegExp suportado) Buscar aliases em um domínio por nome, etiqueta ou destinatário
name Não String (RegExp suportado) Buscar aliases em um domínio por nome
recipient Não String (RegExp suportado) Buscar aliases em um domínio por destinatário
sort Não String Ordenar por um campo específico (prefixar com um hífen único - para ordenar na direção inversa desse campo). Padrão é created_at se não definido.
page Não Número Veja Paginação para mais detalhes
limit Não Número Veja Paginação para mais detalhes

Exemplo de Requisição:

curl https://fe.tiamati.email/v1/domains/example.com/aliases?pagination=true \
  -u API_TOKEN:

Criar novo alias de domínio

POST /v1/domains/example.com/aliases

Parâmetro do Corpo Obrigatório Tipo Descrição
name Não String Nome do alias (se não fornecido ou estiver em branco, um alias aleatório será gerado)
recipients Não String ou Array Lista de destinatários (deve ser uma String separada por quebras de linha/espaço/vírgula ou Array de endereços de email válidos, nomes de domínio totalmente qualificados ("FQDN"), endereços IP e/ou URLs de webhook – e se não fornecido ou for um Array vazio, o email do usuário que está fazendo a requisição API será definido como destinatário)
description Não String Descrição do alias
labels Não String ou Array Lista de etiquetas (deve ser uma String separada por quebras de linha/espaço/vírgula ou Array)
has_recipient_verification Não Boolean Exigir que destinatários cliquem em um link de verificação por email para que os emails sejam encaminhados (padrão é a configuração do domínio se não definido explicitamente no corpo da requisição)
is_enabled Não Boolean Se deve habilitar ou desabilitar este alias (se desabilitado, os emails não serão encaminhados para lugar algum, mas retornarão códigos de status de sucesso). Se um valor for passado, ele será convertido para boolean usando boolean)
error_code_if_disabled Não Número (pode ser 250, 421 ou 550) Email recebido para este alias será rejeitado se is_enabled for false com código 250 (entrega silenciosa para lugar nenhum, ex: buraco negro ou /dev/null), 421 (rejeição temporária; e tentativas por até ~5 dias) ou 550 (falha permanente e rejeição). Padrão é 250.
has_imap Não Boolean Se deve habilitar ou desabilitar armazenamento IMAP para este alias (se desabilitado, emails recebidos não serão armazenados no armazenamento IMAP. Se um valor for passado, ele será convertido para boolean usando boolean)
has_pgp Não Boolean Se deve habilitar ou desabilitar criptografia OpenPGP para armazenamento de email criptografado IMAP/POP3/CalDAV/CardDAV usando a public_key do alias.
public_key Não String Chave pública OpenPGP em formato ASCII Armor (clique aqui para ver um exemplo; ex: chave GPG para support@forwardemail.net). Isso só se aplica se has_pgp estiver definido como true. Saiba mais sobre criptografia de ponta a ponta em nosso FAQ.
max_quota Não String Cota máxima de armazenamento para este alias. Deixe em branco para resetar para a cota máxima atual do domínio ou insira um valor como "1 GB" que será interpretado por bytes. Este valor só pode ser ajustado por administradores do domínio.
vacation_responder_is_enabled Não Boolean Se deve habilitar ou desabilitar um respondedor automático de férias.
vacation_responder_start_date Não String Data de início para o respondedor de férias (se habilitado e nenhuma data de início definida aqui, assume-se que já está iniciado). Suportamos formatos de data como MM/DD/YYYY, YYYY-MM-DD e outros formatos via análise inteligente usando dayjs.
vacation_responder_end_date Não String Data de término para o respondedor de férias (se habilitado e nenhuma data de término definida aqui, assume-se que nunca termina e responde para sempre). Suportamos formatos de data como MM/DD/YYYY, YYYY-MM-DD e outros formatos via análise inteligente usando dayjs.
vacation_responder_subject Não String Assunto em texto simples para o respondedor de férias, ex: "Fora do Escritório". Usamos striptags para remover todo HTML aqui.
vacation_responder_message Não String Mensagem em texto simples para o respondedor de férias, ex: "Estarei fora do escritório até fevereiro.". Usamos striptags para remover todo HTML aqui.

Exemplo de Requisição:

curl -X POST https://fe.tiamati.email/v1/domains/example.com/aliases \
  -u API_TOKEN:

Recuperar alias de domínio

Você pode recuperar um alias de domínio pelo seu valor id ou name.

GET /v1/domains/:domain_name/aliases/:alias_id

Exemplo de Requisição:

curl https://fe.tiamati.email/v1/domains/:domain_name/aliases/:alias_id \
  -u API_TOKEN:

GET /v1/domains/:domain_name/aliases/:alias_name

Exemplo de Requisição:

curl https://fe.tiamati.email/v1/domains/:domain_name/aliases/:alias_name \
  -u API_TOKEN:

Atualizar alias de domínio

PUT /v1/domains/example.com/aliases/:alias_id

Parâmetro do Corpo Obrigatório Tipo Descrição
name Não String Nome do alias
recipients Não String ou Array Lista de destinatários (deve ser uma String separada por quebras de linha/espaços/vírgulas ou um Array de endereços de email válidos, nomes de domínio totalmente qualificados ("FQDN"), endereços IP e/ou URLs de webhook)
description Não String Descrição do alias
labels Não String ou Array Lista de etiquetas (deve ser uma String separada por quebras de linha/espaços/vírgulas ou um Array)
has_recipient_verification Não Boolean Exigir que os destinatários cliquem em um link de verificação por email para que os emails sejam encaminhados (padrão é a configuração do domínio se não definido explicitamente no corpo da requisição)
is_enabled Não Boolean Se deve habilitar ou desabilitar este alias (se desabilitado, os emails não serão encaminhados para lugar algum, mas retornarão códigos de status de sucesso). Se um valor for passado, ele será convertido para boolean usando boolean)
error_code_if_disabled Não Número (pode ser 250, 421 ou 550) Email recebido para este alias será rejeitado se is_enabled for false com código 250 (entrega silenciosa para lugar nenhum, ex: buraco negro ou /dev/null), 421 (rejeição temporária; e tentativas por até ~5 dias) ou 550 falha permanente e rejeição. Padrão é 250.
has_imap Não Boolean Se deve habilitar ou desabilitar armazenamento IMAP para este alias (se desabilitado, emails recebidos não serão armazenados no armazenamento IMAP. Se um valor for passado, ele será convertido para boolean usando boolean)
has_pgp Não Boolean Se deve habilitar ou desabilitar criptografia OpenPGP para armazenamento de email criptografado IMAP/POP3/CalDAV/CardDAV usando a public_key do alias.
public_key Não String Chave pública OpenPGP em formato ASCII Armor (clique aqui para ver um exemplo; ex: chave GPG para support@forwardemail.net). Aplica-se somente se has_pgp estiver definido como true. Saiba mais sobre criptografia de ponta a ponta em nosso FAQ.
max_quota Não String Cota máxima de armazenamento para este alias. Deixe em branco para resetar para a cota máxima atual do domínio ou insira um valor como "1 GB" que será interpretado por bytes. Este valor só pode ser ajustado por administradores do domínio.
vacation_responder_is_enabled Não Boolean Se deve habilitar ou desabilitar um respondedor automático de férias.
vacation_responder_start_date Não String Data de início para o respondedor de férias (se habilitado e nenhuma data de início definida aqui, assume-se que já está iniciado). Suportamos formatos de data como MM/DD/YYYY, YYYY-MM-DD e outros formatos via análise inteligente usando dayjs.
vacation_responder_end_date Não String Data de término para o respondedor de férias (se habilitado e nenhuma data de término definida aqui, assume-se que nunca termina e responde para sempre). Suportamos formatos de data como MM/DD/YYYY, YYYY-MM-DD e outros formatos via análise inteligente usando dayjs.
vacation_responder_subject Não String Assunto em texto simples para o respondedor de férias, ex: "Fora do Escritório". Usamos striptags para remover todo HTML aqui.
vacation_responder_message Não String Mensagem em texto simples para o respondedor de férias, ex: "Estarei fora do escritório até fevereiro.". Usamos striptags para remover todo HTML aqui.

Exemplo de Requisição:

curl -X PUT https://fe.tiamati.email/v1/domains/example.com/aliases/:alias_id \
  -u API_TOKEN:

Excluir alias de domínio

DELETE /v1/domains/:domain_name/aliases/:alias_id

Exemplo de Requisição:

curl -X DELETE https://fe.tiamati.email/v1/domains/:domain_name/aliases/:alias_id \
  -u API_TOKEN:

Permitimos que você criptografe registros mesmo no plano gratuito sem custo. Privacidade não deve ser um recurso, deve ser inerentemente incorporada a todos os aspectos de um produto. Conforme muito solicitado em uma discussão do Privacy Guides e em nossos issues no GitHub, adicionamos isso.

Criptografar Registro TXT

POST /v1/encrypt

Parâmetro do Corpo Obrigatório Tipo Descrição
input Sim String Qualquer registro TXT de texto simples válido do Forward Email

Exemplo de Requisição:

curl -X POST https://fe.tiamati.email/v1/encrypt \
  -d "input=user@gmail.com"