Saltar para a documentação
API

Adicionar um domínio

Adiciona um domínio ao espaço de trabalho e devolve-o com todos os registos DNS de que precisa. O domínio começa não verificado, com o catch-all ligado, e fica verificado por si só assim que os registos responderem no DNS público.

POST/domains

Executa a chamada real contra o seu espaço de trabalho, com a sua própria chave.

POST /domains

Adiciona um domínio ao espaço de trabalho e devolve-o com todos os registos DNS de que precisa. O domínio começa não verificado, com o catch-all ligado, e fica verificado por si só assim que os registos responderem no DNS público.

O pedido

Parâmetros

domainstringobrigatório
Um domínio simples, como `acme.com` ou `mail.acme.com`. Os espaços são removidos, é convertido em minúsculas, e um nome internacional é guardado na sua forma ASCII. Um esquema, um caminho ou um endereço são recusados.

Exemplo

Requer domains:write e uma chave sem restrição de endereço ou domínio, porque um novo domínio abrange todo o espaço de trabalho.

curl
curl -X POST "$OE/domains" -H "$AUTH" -H "Content-Type: application/json" \  -d '{ "domain": "acme.com" }'
Resposta
{  "object": "domain",  "id": "b3e1f0a4-6c2d-4e8a-9f17-2d5c8a0b4e6f",  "domain": "acme.com",  "receiving": {    "verified": false,    "verifiedAt": null,    "catchAll": true,    "lastCheckedAt": "2026-09-25T10:00:02.000Z",    "error": "No MX records yet. DNS changes can take a few minutes to spread."  },  "sending": {    "status": "no_identity",    "canSend": false,    "checkedAt": null,    "error": null,    "note": "Sending is not set up yet. Publish the signing record listed for this domain, and sending switches on shortly after it answers in DNS."  },  "tracking": { "host": null, "status": "none", "active": false, "target": "", "record": null, "checkedAt": null, "verifiedAt": null, "error": null },  "storage": { "host": null, "status": "none", "active": false, "target": "", "record": null, "checkedAt": null, "verifiedAt": null, "error": null },  "addresses": [],  "createdAt": "2026-09-25T10:00:00.000Z",  "records": [    { "type": "MX", "name": "acme.com", "value": "inbound.mail.example", "priority": 10, "purpose": null, "status": "missing" },    { "type": "TXT", "name": "acme.com", "value": "v=spf1 include:_spf.openemail.uk ~all", "priority": null, "purpose": null, "status": "missing" },    { "type": "TXT", "name": "_openemail-challenge.acme.com", "value": "oe-verify=4f1c9a2b7e8d6053a1c4", "priority": null, "purpose": "Proves you own this domain", "status": "missing" }  ],  "dmarc": null}

O exemplo abrevia records. Uma resposta real lista todos os registos de que o domínio precisa, incluindo DMARC, os CNAME de assinatura e os registos de return-path, e GET /domains/{id} descreve cada campo.

Publique os registos exatamente como são dados e depois chame POST /domains/{id}/verify ou aguarde: o domínio é verificado de novo sempre que é lido e por uma varredura em segundo plano, e domain.verified dispara no momento em que passa.

Quando é recusado

  • 409 domain_already_added: o proprietário deste espaço de trabalho já tem o domínio.
  • 409 domain_claimed: outra conta tem-no.
  • 409 related_domain_owned: um domínio pai ou um subdomínio dele pertence a outra conta, pelo que não pode ser dividido entre as duas.
  • 409 operator_domain: o domínio pertence à própria OpenEmail.
  • 403 domain_allowance_reached: o plano não comporta mais domínios. A mensagem indica o plano que comporta mais.
  • 422 capability_unsupported: a chave está limitada a determinados endereços ou domínios.

A sua caixa de entrada,
nos seus termos.

Infraestrutura de email para empresas, IA, agentes e correio pessoal. Feita para escala, privacidade e controlo. Tudo o que o email devia ter tido desde o primeiro dia.

OpenEmail

Infraestrutura de email para empresas, IA, agentes e correio pessoal. Feita para escala, privacidade e controlo. Tudo o que o email devia ter tido desde o primeiro dia.

© 2026 OpenEmail. Todos os direitos reservados.