---
title: "Validate an email address's deliverability"
method: POST
path: "/api/v1/email/validate"
tags: ["Email"]
---

# Validate an email address's deliverability

`POST /api/v1/email/validate`

## Request

- Base URL: `https://firstsales.io`
- URL: `https://firstsales.io/api/v1/email/validate`
- Auth: none required

Checks email format, then resolves the domain's DNS to confirm it exists and has MX records, and flags reserved/disposable/free-provider domains. Use this before sending outreach to filter out addresses that cannot receive mail. Rate limit: 20 requests/minute per IP.

## Request body

- object
  - `email` string, email, required

## Response `200`

Validation result (still 200 even when the email is invalid — check `valid`).

- EmailValidationResult
  - `valid` boolean, required
  - `domain` string, required
  - `domainExists` boolean, required
  - `hasMx` boolean, required
  - `isReserved` boolean, required
  - `isDisposable` boolean, required
  - `isFreeProvider` boolean, required
  - `mxRecords` MxRecord[]
    - `exchange` string, required
    - `priority` number, required
  - `error` string
  - `message` string

## Other responses

- `400`: Invalid request — bad input, missing field, or malformed value.
- `429`: Rate limit exceeded for this endpoint. Wait Retry-After seconds and retry.
- `500`: Unexpected server error.

---

[API](https://skmtc.dev/firstsales/apis/firstsales-public-api.md) · [All operations](https://skmtc.dev/firstsales/apis/firstsales-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/firstsales/apis/firstsales-public-api/revisions/3856191adf12?raw)
