Check an email address

POST
/v1/risk/email/check

Email intelligence on its own: syntax, disposable domains, whether the domain can receive mail (DNS), role accounts, free providers, the canonical mailbox, typo suggestions and the domain's age (RDAP). Stateless: nothing is stored or counted, so it never flags an address for having been seen before (assessments do). Failed lookups are listed in degraded. Sandbox keys see the documented test domains (@disposable.test, @undeliverable.test, @new.test).

Authorization

bearerAuth
headerAuthorizationBearer <token>

A secret API key from the dashboard: coss_live_… for production environments, coss_test_… for sandbox environments.

Header Parameters

Coss-Version?"2026-10-10"

The API version (a date) to use for this request. Defaults to your organization's version, pinned to the latest one when it first used the API and upgraded from the dashboard. The SDK always sends the version it was built for.

Value in"2026-10-10"

Request Body

application/json
  1. body
email*string

The address to check, as given.

Length1 <= length <= 320

Response Body

What COSS knows about the address.

application/json
  1. response
object*"risk_email_check"
Value in"risk_email_check"
email*string
valid*boolean

Syntactically valid (the rest assumes it is).

domain*string|null
canonical*|

The mailbox with the provider's aliasing folded (dots and +tags at Gmail…): two addresses with the same canonical form reach one inbox.

disposable*boolean
deliverability*string

From DNS (MX, A, AAAA). unknown when the lookup failed or timed out.

Value in"deliverable""undeliverable""unknown"
role_account*boolean
free_provider*boolean
suggestion*|

The likely intended domain when this one looks like a typo of a popular one.

domain_age_days*|

Days since the domain was registered (RDAP); null when unknown or not looked up (free providers, disposable domains).

degraded*array<>

Lookups that failed or timed out (their fields are unknown/null).

import { Coss } from "coss";const coss = new Coss({  apiKey: process.env.COSS_API_KEY,  baseUrl: "https://api.coss.com",});const { data, error } = await coss.risk.checkEmail("ada@gnail.com");
{  "object": "risk_email_check",  "email": "ada@gnail.com",  "valid": true,  "domain": "gnail.com",  "canonical": "ada@gnail.com",  "disposable": false,  "deliverability": "deliverable",  "role_account": false,  "free_provider": false,  "suggestion": "gmail.com",  "domain_age_days": 7300,  "degraded": []}