> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sendkit.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Validate an email address

> Validate an email address by checking syntax, DNS records, mailbox existence, and whether it is a disposable or role-based address.



## OpenAPI

````yaml POST /emails/validate
openapi: 3.1.0
info:
  title: SendKit API
  description: The SendKit API allows you to send transactional emails programmatically.
  version: 1.0.0
servers:
  - url: https://api.sendkit.dev
security:
  - bearerAuth: []
paths:
  /emails/validate:
    post:
      tags:
        - Emails
      summary: Validate an email address
      description: >-
        Validate an email address by checking syntax, DNS records, mailbox
        existence, and whether it is a disposable or role-based address.
      operationId: validateEmail
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ValidateEmailRequest'
      responses:
        '200':
          description: Validation result
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidateEmailResponse'
        '401':
          description: Unauthorized — missing or invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '402':
          description: Insufficient validation credits
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                message: Insufficient validation credits.
        '422':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Rate limit exceeded (60 requests per minute)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                name: rate_limit_exceeded
                message: Rate limit exceeded. Please retry after 30 seconds.
components:
  schemas:
    ValidateEmailRequest:
      type: object
      required:
        - email
      properties:
        email:
          type: string
          format: email
          description: The email address to validate.
          example: user@example.com
    ValidateEmailResponse:
      type: object
      properties:
        email:
          type: string
          format: email
          description: The email address that was validated.
        is_valid:
          type: boolean
          description: Whether the email address is considered valid.
        evaluations:
          type: object
          description: Detailed evaluation results.
          properties:
            has_valid_syntax:
              type: boolean
              description: Whether the email has valid syntax.
            has_valid_dns:
              type: boolean
              description: Whether the domain has valid DNS records.
            mailbox_exists:
              type: boolean
              description: Whether the mailbox exists on the server.
            is_role_address:
              type: boolean
              description: Whether this is a role-based address (e.g. info@, admin@).
            is_disposable:
              type: boolean
              description: Whether the domain is a disposable email provider.
            is_random_input:
              type: boolean
              description: Whether the local part appears to be randomly generated.
        should_block:
          type: boolean
          description: Whether this email should be blocked from receiving emails.
        block_reason:
          type:
            - string
            - 'null'
          description: The reason the email should be blocked, if applicable.
          enum:
            - invalid_syntax
            - invalid
            - disposable_email
            - null
        validated_at:
          type: string
          description: When the validation was performed.
          example: '2026-03-03 10:00:00'
    ErrorResponse:
      type: object
      properties:
        name:
          type: string
          description: Error type identifier.
          example: validation_error
        message:
          type: string
          description: Human-readable error message.
          example: The from address domain is not verified.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        API key from your SendKit dashboard. Pass it as a Bearer token in the
        Authorization header.

````