Email & Domain Intelligence API Documentation

Check email syntax, MX, SPF, DKIM, DMARC, RDAP registration, and public TLS for a domain. Mailbox existence is not tested, and no reputation score is invented. Payment is the exact USDC price on Base with x402.

POSThttps://brainiac.software/api/v1/email-domain/email-syntax-validate$0.01 USDC

Validate email syntax

Check that an address is a bare email with a public domain. The mailbox is not contacted, and a valid result does not mean the address exists.

Body

FieldRequiredNotes
emailYesstring

Request exampleJSON

{
  "email": "user@gmail.com"
}

Response exampleJSON

{
  "checkedAt": "2026-11-02T19:00:00.000Z",
  "sendsMail": false,
  "mailboxChecked": false,
  "status": "valid",
  "email": "user@gmail.com",
  "localPart": "user",
  "domain": "gmail.com",
  "findings": [
    {
      "kind": "present",
      "code": "email_syntax_valid",
      "detail": "The address matches the bare email syntax check. This does not show that the mailbox exists."
    }
  ],
  "limitations": [
    "No test message is sent and no mailbox login is attempted.",
    "Syntax and MX records do not show that a mailbox exists.",
    "A reputation verdict is unavailable unless a public unauthenticated source provides one.",
    "Private, loopback, and link-local addresses are not contacted."
  ]
}

cURL

curl -i -X POST "https://brainiac.software/api/v1/email-domain/email-syntax-validate" \
  -H 'content-type: application/json' \
  -H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
  --data-binary @- <<'JSON'
{
  "email": "user@gmail.com"
}
JSON
POSThttps://brainiac.software/api/v1/email-domain/email-domain-verify$0.03 USDC

Verify an email domain

Resolve a public domain and report whether nameserver, address, and MX records were found. MX presence does not mean a mailbox exists.

Body

FieldRequiredNotes
emailNostring
domainNostring

Request exampleJSON

{
  "domain": "gmail.com"
}

Response exampleJSON

{
  "checkedAt": "2026-11-02T19:00:00.000Z",
  "sendsMail": false,
  "mailboxChecked": false,
  "status": "present",
  "email": "",
  "domain": "gmail.com",
  "nameservers": true,
  "address": true,
  "mx": true,
  "findings": [],
  "limitations": [
    "No test message is sent and no mailbox login is attempted.",
    "Syntax and MX records do not show that a mailbox exists.",
    "A reputation verdict is unavailable unless a public unauthenticated source provides one.",
    "Private, loopback, and link-local addresses are not contacted.",
    "A domain with MX records is not evidence that any particular mailbox exists."
  ]
}

cURL

curl -i -X POST "https://brainiac.software/api/v1/email-domain/email-domain-verify" \
  -H 'content-type: application/json' \
  -H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
  --data-binary @- <<'JSON'
{
  "domain": "gmail.com"
}
JSON
POSThttps://brainiac.software/api/v1/email-domain/mx-record-check$0.03 USDC

Check MX records

Look up MX hosts, including a null MX, and resolve each public host. Missing records, lookup failures, and non-public hosts are reported separately. No message is sent.

Body

FieldRequiredNotes
domainYesstring

Request exampleJSON

{
  "domain": "gmail.com"
}

Response exampleJSON

{
  "checkedAt": "2026-11-02T19:00:00.000Z",
  "sendsMail": false,
  "mailboxChecked": false,
  "status": "present",
  "domain": "gmail.com",
  "exchanges": [
    {
      "preference": 5,
      "exchange": "gmail-smtp-in.l.google.com",
      "resolves": "yes"
    },
    {
      "preference": 20,
      "exchange": "alt2.gmail-smtp-in.l.google.com",
      "resolves": "yes"
    },
    {
      "preference": 30,
      "exchange": "alt3.gmail-smtp-in.l.google.com",
      "resolves": "yes"
    },
    {
      "preference": 40,
      "exchange": "alt4.gmail-smtp-in.l.google.com",
      "resolves": "yes"
    },
    {
      "preference": 10,
      "exchange": "alt1.gmail-smtp-in.l.google.com",
      "resolves": "yes"
    }
  ],
  "findings": [],
  "limitations": [
    "No test message is sent and no mailbox login is attempted.",
    "Syntax and MX records do not show that a mailbox exists.",
    "A reputation verdict is unavailable unless a public unauthenticated source provides one.",
    "Private, loopback, and link-local addresses are not contacted."
  ]
}

cURL

curl -i -X POST "https://brainiac.software/api/v1/email-domain/mx-record-check" \
  -H 'content-type: application/json' \
  -H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
  --data-binary @- <<'JSON'
{
  "domain": "gmail.com"
}
JSON
POSThttps://brainiac.software/api/v1/email-domain/spf-record-analyze$0.04 USDC

Analyze an SPF record

Read the published SPF policy and expand redirect or include targets for one level, up to eight lookups. +all is reported as a misconfiguration.

Body

FieldRequiredNotes
domainYesstring

Request exampleJSON

{
  "domain": "gmail.com"
}

Response exampleJSON

{
  "checkedAt": "2026-11-02T19:00:00.000Z",
  "sendsMail": false,
  "mailboxChecked": false,
  "status": "present",
  "domain": "gmail.com",
  "record": "v=spf1 redirect=_spf.google.com",
  "all": "~all",
  "lookups": 2,
  "findings": [
    {
      "kind": "warning",
      "code": "spf_softfail",
      "detail": "The SPF record uses ~all."
    }
  ],
  "limitations": [
    "No test message is sent and no mailbox login is attempted.",
    "Syntax and MX records do not show that a mailbox exists.",
    "A reputation verdict is unavailable unless a public unauthenticated source provides one.",
    "Private, loopback, and link-local addresses are not contacted.",
    "SPF includes are expanded for at most one level and eight extra lookups."
  ]
}

cURL

curl -i -X POST "https://brainiac.software/api/v1/email-domain/spf-record-analyze" \
  -H 'content-type: application/json' \
  -H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
  --data-binary @- <<'JSON'
{
  "domain": "gmail.com"
}
JSON
POSThttps://brainiac.software/api/v1/email-domain/dkim-record-check$0.04 USDC

Check DKIM records

Look up DKIM public keys for the supplied selectors. When no selector is supplied, only google, selector1, selector2, s1, s2, and k1 are queried.

Body

FieldRequiredNotes
domainYesstring
selectorsNoarray; Array

Request exampleJSON

{
  "domain": "outlook.com",
  "selectors": [
    "selector1"
  ]
}

Response exampleJSON

{
  "checkedAt": "2026-11-02T19:00:00.000Z",
  "sendsMail": false,
  "mailboxChecked": false,
  "status": "present",
  "domain": "outlook.com",
  "selectors": [
    {
      "selector": "selector1",
      "status": "present",
      "keyPresent": true
    }
  ],
  "findings": [],
  "limitations": [
    "No test message is sent and no mailbox login is attempted.",
    "Syntax and MX records do not show that a mailbox exists.",
    "A reputation verdict is unavailable unless a public unauthenticated source provides one.",
    "Private, loopback, and link-local addresses are not contacted.",
    "When no selector is supplied, only google, selector1, selector2, s1, s2, and k1 are queried."
  ]
}

cURL

curl -i -X POST "https://brainiac.software/api/v1/email-domain/dkim-record-check" \
  -H 'content-type: application/json' \
  -H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
  --data-binary @- <<'JSON'
{
  "domain": "outlook.com",
  "selectors": [
    "selector1"
  ]
}
JSON
POSThttps://brainiac.software/api/v1/email-domain/dmarc-policy-analyze$0.03 USDC

Analyze a DMARC policy

Read the _dmarc TXT record and report p and pct. A missing record, a failed lookup, and p=none are separate results. No aggregate report is sent.

Body

FieldRequiredNotes
domainYesstring

Request exampleJSON

{
  "domain": "gmail.com"
}

Response exampleJSON

{
  "checkedAt": "2026-11-02T19:00:00.000Z",
  "sendsMail": false,
  "mailboxChecked": false,
  "status": "present",
  "domain": "gmail.com",
  "record": "v=DMARC1; p=none; sp=quarantine; rua=mailto:mailauth-reports@google.com",
  "policy": "none",
  "subdomainPolicy": "quarantine",
  "percentage": "",
  "findings": [
    {
      "kind": "warning",
      "code": "dmarc_none",
      "detail": "DMARC is published with p=none, so failing mail is not quarantined or rejected by this policy."
    }
  ],
  "limitations": [
    "No test message is sent and no mailbox login is attempted.",
    "Syntax and MX records do not show that a mailbox exists.",
    "A reputation verdict is unavailable unless a public unauthenticated source provides one.",
    "Private, loopback, and link-local addresses are not contacted."
  ]
}

cURL

curl -i -X POST "https://brainiac.software/api/v1/email-domain/dmarc-policy-analyze" \
  -H 'content-type: application/json' \
  -H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
  --data-binary @- <<'JSON'
{
  "domain": "gmail.com"
}
JSON
POSThttps://brainiac.software/api/v1/email-domain/domain-reputation-signals$0.04 USDC

Report domain registration signals

Return the RDAP registration date and whether a DNSSEC DS record is published. The reputation verdict stays unavailable because no unauthenticated reputation feed is queried.

Body

FieldRequiredNotes
domainYesstring

Request exampleJSON

{
  "domain": "cloudflare.com"
}

Response exampleJSON

{
  "checkedAt": "2026-11-02T19:00:00.000Z",
  "sendsMail": false,
  "mailboxChecked": false,
  "domain": "cloudflare.com",
  "reputation": "unavailable",
  "registered": "2009-02-17T22:07:54Z",
  "dnssec": "present",
  "signals": [
    {
      "kind": "unavailable",
      "code": "reputation_unavailable",
      "detail": "No unauthenticated public reputation feed was queried. Registration age and DNSSEC are facts, not a reputation verdict."
    },
    {
      "kind": "present",
      "code": "registration_date",
      "detail": "RDAP reports registration on 2009-02-17."
    },
    {
      "kind": "present",
      "code": "dnssec_present",
      "detail": "A DS record is published."
    }
  ],
  "limitations": [
    "No test message is sent and no mailbox login is attempted.",
    "Syntax and MX records do not show that a mailbox exists.",
    "A reputation verdict is unavailable unless a public unauthenticated source provides one.",
    "Private, loopback, and link-local addresses are not contacted."
  ]
}

cURL

curl -i -X POST "https://brainiac.software/api/v1/email-domain/domain-reputation-signals" \
  -H 'content-type: application/json' \
  -H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
  --data-binary @- <<'JSON'
{
  "domain": "cloudflare.com"
}
JSON
POSThttps://brainiac.software/api/v1/email-domain/domain-registration-lookup$0.05 USDC

Look up domain registration

Read public RDAP data for the domain, including registrar, registration and expiration events, status, and nameservers. A not-found response is not proof the domain is unregistered everywhere.

Body

FieldRequiredNotes
domainYesstring

Request exampleJSON

{
  "domain": "gmail.com"
}

Response exampleJSON

{
  "checkedAt": "2026-11-02T19:00:00.000Z",
  "sendsMail": false,
  "mailboxChecked": false,
  "domain": "gmail.com",
  "status": "found",
  "sourceUrl": "https://rdap.verisign.com/com/v1/domain/gmail.com",
  "name": "GMAIL.COM",
  "registrar": "MarkMonitor Inc.",
  "registered": "1995-08-13T04:00:00Z",
  "expires": "2027-08-12T04:00:00Z",
  "statuses": [
    "client delete prohibited",
    "client transfer prohibited",
    "client update prohibited",
    "server delete prohibited",
    "server transfer prohibited",
    "server update prohibited"
  ],
  "nameservers": [
    "ns1.google.com",
    "ns2.google.com",
    "ns3.google.com",
    "ns4.google.com"
  ],
  "findings": [],
  "limitations": [
    "No test message is sent and no mailbox login is attempted.",
    "Syntax and MX records do not show that a mailbox exists.",
    "A reputation verdict is unavailable unless a public unauthenticated source provides one.",
    "Private, loopback, and link-local addresses are not contacted.",
    "Registration data comes from the public RDAP redirect for the domain."
  ]
}

cURL

curl -i -X POST "https://brainiac.software/api/v1/email-domain/domain-registration-lookup" \
  -H 'content-type: application/json' \
  -H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
  --data-binary @- <<'JSON'
{
  "domain": "gmail.com"
}
JSON
POSThttps://brainiac.software/api/v1/email-domain/domain-tls-inspect$0.05 USDC

Inspect domain TLS

Connect to port 443 of a public address for the domain and read the certificate. Certificate transparency names come from public crt.sh results. No other port is contacted.

Body

FieldRequiredNotes
domainYesstring

Request exampleJSON

{
  "domain": "gmail.com"
}

Response exampleJSON

{
  "checkedAt": "2026-11-02T19:00:00.000Z",
  "sendsMail": false,
  "mailboxChecked": false,
  "domain": "gmail.com",
  "status": "present",
  "protocol": "TLSv1.3",
  "issuer": "WE2",
  "subject": "gmail.com",
  "validFrom": "Oct  7 19:09:06 2026 GMT",
  "validTo": "Dec 30 19:09:05 2026 GMT",
  "hostnameMatches": true,
  "names": [
    "gmail.com",
    "*.gmail.com"
  ],
  "findings": [],
  "ctStatus": "unavailable",
  "certificates": [],
  "limitations": [
    "No test message is sent and no mailbox login is attempted.",
    "Syntax and MX records do not show that a mailbox exists.",
    "A reputation verdict is unavailable unless a public unauthenticated source provides one.",
    "Private, loopback, and link-local addresses are not contacted.",
    "Certificate transparency data is read from crt.sh without authentication. A failed transparency lookup does not change the live certificate result."
  ]
}

cURL

curl -i -X POST "https://brainiac.software/api/v1/email-domain/domain-tls-inspect" \
  -H 'content-type: application/json' \
  -H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
  --data-binary @- <<'JSON'
{
  "domain": "gmail.com"
}
JSON
POSThttps://brainiac.software/api/v1/email-domain/email-deliverability-report$0.12 USDC

Report email deliverability checks

Combine syntax, MX, SPF, DKIM, DMARC, RDAP, and TLS checks. No message is sent, the mailbox is not checked, and a clear report does not promise delivery.

Body

FieldRequiredNotes
emailNostring
domainNostring
selectorsNoarray; Array

Request exampleJSON

{
  "email": "user@outlook.com",
  "selectors": [
    "selector1"
  ]
}

Response exampleJSON

{
  "checkedAt": "2026-11-02T19:00:00.000Z",
  "sendsMail": false,
  "mailboxChecked": false,
  "assessment": "incomplete",
  "summary": "A mail record is missing, a lookup did not finish, or a published policy is only partial. No message was sent, and the mailbox was not checked.",
  "email": "user@outlook.com",
  "domain": "outlook.com",
  "sections": [
    {
      "name": "syntax",
      "status": "present"
    },
    {
      "name": "mx",
      "status": "present"
    },
    {
      "name": "spf",
      "status": "present"
    },
    {
      "name": "dkim",
      "status": "present"
    },
    {
      "name": "dmarc",
      "status": "present"
    },
    {
      "name": "registration",
      "status": "present"
    },
    {
      "name": "tls",
      "status": "present"
    },
    {
      "name": "reputation",
      "status": "unavailable"
    }
  ],
  "counts": {
    "misconfigured": 0,
    "lookup_failed": 0,
    "missing": 0,
    "warning": 1
  },
  "findings": [
    {
      "kind": "present",
      "code": "email_syntax_valid",
      "detail": "The address matches the bare email syntax check. This does not show that the mailbox exists."
    },
    {
      "kind": "warning",
      "code": "dmarc_none",
      "detail": "DMARC is published with p=none, so failing mail is not quarantined or rejected by this policy."
    }
  ],
  "limitations": [
    "No test message is sent and no mailbox login is attempted.",
    "Syntax and MX records do not show that a mailbox exists.",
    "A reputation verdict is unavailable unless a public unauthenticated source provides one.",
    "Private, loopback, and link-local addresses are not contacted.",
    "The report does not send mail and does not assign a reputation score."
  ]
}

cURL

curl -i -X POST "https://brainiac.software/api/v1/email-domain/email-deliverability-report" \
  -H 'content-type: application/json' \
  -H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
  --data-binary @- <<'JSON'
{
  "email": "user@outlook.com",
  "selectors": [
    "selector1"
  ]
}
JSON