Domínios — gestão via API
O mxout v0.4.0 gerencia domínios remetentes via API. Um domínio recém-adicionado
nasce com status pending e só pode assinar e-mails depois que o DNS for validado
pelo GET /check, que o promove a active.
Todos os endpoints abaixo exigem o header X-Auth-Token.
| Método | Caminho | Descrição |
|---|---|---|
| POST | /domains |
Adiciona um domínio e gera o kit DKIM. |
| GET | /domains |
Lista todos os domínios cadastrados. |
| GET | /domains/{dominio}/instructions |
Recupera as instruções DNS de um domínio já cadastrado. |
Autenticação
X-Auth-Token: SEU_TOKENToken ausente ou incorreto retorna 401. Se MXOUT_AUTH_TOKEN não estiver definido no servidor, os endpoints ficam abertos — comportamento idêntico ao /send.
POST /domains — adiciona um domínio
Gera um par de chaves DKIM RSA-2048, registra o domínio como pending e retorna os três registros DNS que precisam ser publicados antes do envio.
Body da requisição
{
"domain": "exemplo.com",
"selector": "mxout"
}| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
domain |
string | Sim | Domínio remetente a cadastrar. |
selector |
string | Não | Seletor DKIM. Padrão: mxout. |
Exemplo de requisição
curl -X POST https://mxout.203.0.113.x/domains \
-H "Content-Type: application/json" \
-H "X-Auth-Token: SEU_TOKEN" \
-d '{"domain": "exemplo.com", "selector": "mxout"}'Resposta de sucesso — 201
{
"domain": "exemplo.com",
"selector": "mxout",
"dkim": {
"host": "mxout._domainkey.exemplo.com",
"type": "TXT",
"value": "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ..."
},
"spf": {
"host": "exemplo.com",
"type": "TXT",
"value": "v=spf1 include:mxout.ccs.systems -all"
},
"dmarc": {
"host": "_dmarc.exemplo.com",
"type": "TXT",
"value": "v=DMARC1; p=none; rua=mailto:dmarc@exemplo.com"
},
"note": "Publique os 3 registros DNS e execute GET /check/exemplo.com para ativar o domínio."
}Códigos de status
| Código | Código de erro | Causa |
|---|---|---|
| 201 | — | Domínio criado com sucesso. |
| 400 | bad_domain |
Campo domain ausente ou inválido. |
| 409 | exists |
Domínio já cadastrado. |
| 500 | — | Falha ao gerar ou gravar a chave privada, ou ao persistir a configuração. |
Próxima etapa obrigatória
Após receber o 201, publique os três registros DNS retornados (DKIM, SPF e DMARC) no painel do seu provedor de DNS. Só então execute GET /check/exemplo.com para validar a configuração e ativar o domínio.
GET /domains — lista os domínios
Retorna todos os domínios cadastrados com status e limites de envio.
Exemplo de requisição
curl -s \
-H "X-Auth-Token: SEU_TOKEN" \
https://mxout.203.0.113.x/domainsResposta — 200
{
"domains": [
{
"domain": "exemplo.com",
"status": "active",
"selector": "mxout",
"limits": {
"per_hour": 500,
"per_day": 5000
}
},
{
"domain": "outro.com.br",
"status": "pending",
"selector": "mxout",
"limits": {
"per_hour": 0,
"per_day": 0
}
}
]
}| Campo | Tipo | Descrição |
|---|---|---|
domain |
string | Nome do domínio. |
status |
string | pending (aguardando validação DNS) ou active (pronto para envio). |
selector |
string | Seletor DKIM configurado. |
limits.per_hour |
int | Limite de envios por hora. 0 indica domínio pendente ou sem limite configurado. |
limits.per_day |
int | Limite de envios por dia. |
GET /domains/{dominio}/instructions — recupera instruções DNS
Retorna o mesmo JSON de instruções do POST /domains para um domínio já cadastrado. Use este endpoint para reconsultar os registros DNS sem precisar recriar o domínio ou regenerar a chave DKIM.
Exemplo de requisição
curl -s \
-H "X-Auth-Token: SEU_TOKEN" \
https://mxout.203.0.113.x/domains/exemplo.com/instructionsResposta — 200
{
"domain": "exemplo.com",
"selector": "mxout",
"dkim": {
"host": "mxout._domainkey.exemplo.com",
"type": "TXT",
"value": "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ..."
},
"spf": {
"host": "exemplo.com",
"type": "TXT",
"value": "v=spf1 include:mxout.ccs.systems -all"
},
"dmarc": {
"host": "_dmarc.exemplo.com",
"type": "TXT",
"value": "v=DMARC1; p=none; rua=mailto:dmarc@exemplo.com"
},
"note": "Publique os 3 registros DNS e execute GET /check/exemplo.com para ativar o domínio."
}Códigos de status
| Código | Código de erro | Causa |
|---|---|---|
| 200 | — | Instruções retornadas com sucesso. |
| 404 | not_found |
Domínio não cadastrado no servidor. |
Próximo passo
Com os registros DNS publicados, valide e ative o domínio com GET /check. O endpoint verifica DKIM, SPF e DMARC e promove o domínio de pending para active quando todos os registros estão corretos.