---
title: "Single Email — Validate instantly"
method: POST
path: "/validate_email"
tags: ["Quick Verification"]
---

# Single Email — Validate instantly

`POST /validate_email`

## Request

- Base URL: `https://api.scrubby.io`
- URL: `https://api.scrubby.io/validate_email`
- Auth: API key in header `x-api-key`

Send one email, get the result back immediately. No polling.

Server timeout is 100 seconds. If it times out, you get a 408, and the credit is deducted. within 24 hours of the initial request, resending the same request is free and returns the same verification.

## Request body

- SingleEmailRequest
  - `email` string, email, required: The email address to validate.

## Response `200`

Validation complete. Read the `result` field.

- SingleEmailResponse
  - `email` string: The email that was validated.
  - `result` 'Valid' | 'Invalid' | 'Risky' | 'Unknown': `Valid` = safe to send. `Invalid` = do not send. `Risky` = deliverable but risky. `Unknown` = could not be determined.
  - `status` string: Detailed status code (e.g. OK, HARD_BOUNCE, SOFT_BOUNCE).
  - `quick_status` 'OK' | 'HARD_BOUNCE' | 'SOFT_BOUNCE' | 'UNKNOWN': `OK` = safe. `HARD_BOUNCE` = invalid. `SOFT_BOUNCE` = temporarily undeliverable. `UNKNOWN` = undetermined.
  - `credits_used` integer: Credits consumed by this request.
  - `remaining_credits` integer: Credits left in your account.
  - `retry_after_seconds` integer: Seconds to wait before retrying. `0` means no retry needed.

## Other responses

- `400`: Bad request — invalid email format or insufficient credits.
- `408`: Timed out after 100 seconds.
- `429`: Rate limit hit (25 requests/second). Wait a moment and retry.

---

[API](https://skmtc.dev/scrubby/apis/scrubby-email-validation-api.md) - [All operations](https://skmtc.dev/scrubby/apis/scrubby-email-validation-api/llms.txt) - [OpenAPI document](https://skmtc.dev/scrubby/apis/scrubby-email-validation-api/revisions/506f3f7eee4c?raw)
