---
title: "Score an email domain for disposable/temporary-mailbox risk"
method: POST
path: "/api/v1/email/disposable"
tags: ["Email"]
---

# Score an email domain for disposable/temporary-mailbox risk

`POST /api/v1/email/disposable`

## Request

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

Runs six weighted checks (known disposable database, domain age via RDAP, MX validity, reputation, naming pattern, MX cross-reference) and returns a 0-100 score plus a safe/suspicious/disposable/high_risk classification. Use this to filter throwaway addresses out of a lead list. Rate limit: 20 requests/minute per IP.

## Request body

- object
  - `email` string, email, required

## Response `200`

Disposable-risk assessment.

- DisposableCheckResult
  - `score` number, required
  - `classification` 'safe' | 'suspicious' | 'disposable' | 'high_risk', required
  - `checks` object[], required
    - `label` string, required
    - `status` 'pass' | 'warn' | 'fail', required
    - `detail` string, required
    - `weight` number, required
  - `details` object, required
    - `domain` string
    - `isDisposable` boolean
    - `domainAge` object, nullable
      - `registeredAt` string
      - `ageDays` number
    - `mxRecords` MxRecord[]
      - `exchange` string, required
      - `priority` number, required
    - `hasMx` boolean
    - `patternMatch` boolean
    - `databaseMatch` boolean

## 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)
