---
title: "Run SPF, DKIM, DMARC, and MX checks together with a confidence score"
method: POST
path: "/api/v1/dns/validate"
tags: ["DNS"]
---

# Run SPF, DKIM, DMARC, and MX checks together with a confidence score

`POST /api/v1/dns/validate`

## Request

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

Multi-check email-authentication validator: runs SPF/DKIM/DMARC/MX in parallel (or a subset via `checks`) and returns a combined confidence_score. Use this for a one-call deliverability audit instead of four separate dns/check calls. Rate limit: 10 requests/minute per IP.

## Request body

- object
  - `domain` string, required
  - `checks` string[]: Subset of checks to run. Defaults to all four.
  - `options` object
    - `dkimSelector` string: Optional DKIM selector override.

## Response `200`

Combined authentication validation result.

- DnsValidateResult
  - `domain` string, required
  - `spf` object
  - `dkim` object
  - `dmarc` object
  - `mx` object
  - `confidence_score` number
  - `metadata` object, required
    - `cached` boolean, required
    - `duration_ms` number, required

## Other responses

- `400`: Invalid request — bad input, missing field, or malformed value.
- `404`: Domain does not exist or has no DNS records.
- `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)
