Skip to Content

Get domain verification

Returns the domain's last observed DNS and verification state. Reading it does not check DNS again or change anything; use advance to check now.

GET
/v1/email/domains/{id}/verification

Returns the domain's last observed DNS and verification state. Reading it does not check DNS again or change anything; use advance to check now.

Authorization

apiKey
headerx-api-key<token>

Path Parameters

id*string
Match^dom_[0-9a-hjkmnp-tv-z]{16,24}$

Response Body

EmailDomainVerification

application/json
  1. response
domainId*EmailDomainId
Match^dom_[0-9a-hjkmnp-tv-z]{16,24}$
domain*string
phase*string
Value in"dns-setup""provisioning""verifying""ready""degraded""failed"
dns*
requirements*array<>
provider*|null
operationId*|null
checkedAt*string|null
nextCheckAt*string|null
failure*|null
provisioning*
health*
sending*

Whether the domain, the organization, and its sending account are healthy enough to send, as last observed. Ready does not guarantee that a particular send is accepted.

dmarc*
rotation*|null
Example Request
import { createClient } from "samva";

const samva = createClient({ apiKey: process.env.SAMVA_API_KEY! });

const result = await samva.email.getDomainVerification({
  "id": "example"
});
Example Response
{
  "domainId": "string",
  "domain": "string",
  "phase": "dns-setup",
  "dns": {
    "observed": true,
    "total": -9007199254740991,
    "satisfied": -9007199254740991,
    "missing": -9007199254740991,
    "mismatch": -9007199254740991,
    "unknown": -9007199254740991
  },
  "requirements": [
    {
      "key": "string",
      "record": {
        "type": "A",
        "name": "string",
        "value": "string",
        "ttl": "string",
        "description": "string",
        "priority": 0
      },
      "status": "satisfied",
      "evidence": [
        {
          "_tag": "PublicDns",
          "resolver": "string",
          "status": "satisfied",
          "values": [
            "string"
          ],
          "detail": "string",
          "observedAt": "string"
        }
      ]
    }
  ],
  "provider": {
    "identity": "pending",
    "dkim": "pending",
    "mailFrom": "pending"
  },
  "operationId": "string",
  "checkedAt": "string",
  "nextCheckAt": "string",
  "failure": {
    "code": "string",
    "message": "string",
    "failedAt": "string"
  },
  "provisioning": {
    "status": "none",
    "generation": -9007199254740991,
    "revision": -9007199254740991
  },
  "health": {
    "actionOwner": "customer",
    "action": "string",
    "freshness": "current",
    "observedAt": "string",
    "staleAt": "string",
    "nextRetryAt": "string",
    "reason": "ready"
  },
  "sending": {
    "actionOwner": "customer",
    "action": "string",
    "freshness": "current",
    "observedAt": "string",
    "staleAt": "string",
    "nextRetryAt": "string",
    "status": "ready",
    "reason": "domain-not-ready"
  },
  "dmarc": {
    "status": "valid",
    "source": "direct",
    "policyDomain": "string",
    "policy": "none",
    "subdomainPolicy": "none",
    "effectivePolicy": "none",
    "observedAt": "string",
    "staleAt": "string",
    "guidance": "string"
  },
  "rotation": {
    "id": "string",
    "domainId": "string",
    "phase": "staged",
    "selector": "string",
    "record": {
      "name": "string",
      "type": "TXT",
      "value": "string",
      "ttl": "string"
    },
    "formerRecord": {
      "name": "string",
      "type": "TXT",
      "value": "string"
    },
    "minimumRetainUntil": "string"
  }
}

Related documentation