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

# Says whether an email address can receive mail.

> Says whether an email address can receive mail.



## OpenAPI

````yaml /openapi.json post /v1/email/validate
openapi: 3.0.3
info:
  title: Routr
  version: '1.0'
servers:
  - url: https://api.routr.to
security: []
paths:
  /v1/email/validate:
    post:
      tags:
        - v1
      summary: Says whether an email address can receive mail.
      description: Says whether an email address can receive mail.
      operationId: email.validate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmailValidate'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmailValidateResponse'
      security:
        - Bearer: []
components:
  schemas:
    EmailValidate:
      title: EmailValidate
      required:
        - email
      properties:
        email:
          type: string
        routing:
          $ref: '#/components/schemas/CapabilityRouting'
        max_credits:
          description: Stop the plan before a step that would exceed this many credits.
          type: integer
          format: int32
        timeout_ms:
          description: >-
            How long each vendor may take, in milliseconds. When the time is up,
            routr tries the next vendor and does not charge for that step. Omit
            it to use each vendor's own timeout. Example: 3000.
          type: integer
          format: int32
      description: Says whether an email address can receive mail.
      type: object
    EmailValidateResponse:
      title: EmailValidateResponse
      properties:
        id:
          description: >-
            Call ID. The same ID is returned when an Idempotency-Key is
            replayed.
          type: string
        result:
          $ref: '#/components/schemas/EmailValidateResult'
        resolved_by:
          description: Integration that produced a conclusive verdict. Null when none did.
          type: string
        steps:
          description: Steps that ran, in order.
          type: array
          items:
            $ref: '#/components/schemas/CapabilityStep'
        credits_charged:
          description: Credits charged for this call. A replay returns the original value.
          type: integer
          format: int32
        cached:
          description: >-
            True when the result was served from the cache. Always false in this
            version.
          type: boolean
        credits_remaining:
          description: >-
            Account balance right after this call settled. A replay returns the
            value from the first response.
          type: integer
          format: int32
        stop_reason:
          description: 'Why the call stopped: conclusive, plan_end, or max_credits.'
          type: string
        response_status:
          $ref: '#/components/schemas/ResponseStatus'
      description: EmailValidateResponse
      type: object
    CapabilityRouting:
      title: CapabilityRouting
      properties:
        mode:
          description: smart, cheapest, or pinned. Default smart.
          type: string
        integrations:
          description: Integration IDs. Required when mode is pinned.
          type: array
          items:
            type: string
            enum:
              - bouncer
              - neverbounce
              - zerobounce
        fallback:
          description: >-
            When pinned, continue with the other vendors in smart order after
            the caller's list.
          type: boolean
      description: CapabilityRouting
      type: object
    EmailValidateResult:
      title: EmailValidateResult
      properties:
        verdict:
          description: deliverable, undeliverable, catch_all, or unknown.
          type: string
        disposable:
          description: >-
            True when the address is disposable. Null when the vendor did not
            say.
          type: boolean
        role:
          description: >-
            True when the address is a role mailbox such as info@ or sales@.
            Null when the vendor did not say.
          type: boolean
      description: EmailValidateResult
      type: object
    CapabilityStep:
      title: CapabilityStep
      properties:
        integration:
          description: Integration that ran this step.
          type: string
        verdict:
          description: Verdict from this step, when it returned one.
          type: string
        credits:
          description: Credits charged for this step. Zero when the step errored.
          type: integer
          format: int32
        ms:
          description: How long this step took, in milliseconds.
          type: integer
          format: int32
        error:
          description: Step error code, when the vendor did not return a verdict.
          type: string
        reason:
          description: >-
            Why this step ran: first, previous_inconclusive, previous_failed, or
            fallback.
          type: string
      description: CapabilityStep
      type: object
    ResponseStatus:
      title: ResponseStatus
      properties:
        error_code:
          type: string
        message:
          type: string
        stack_trace:
          type: string
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ResponseError'
        meta:
          $ref: '#/components/schemas/Dictionary_String_String_'
      description: ResponseStatus
      type: object
    ResponseError:
      title: ResponseError
      properties:
        error_code:
          type: string
        field_name:
          type: string
        message:
          type: string
        meta:
          $ref: '#/components/schemas/Dictionary_String_String_'
      description: ResponseError
      type: object
    Dictionary_String_String_:
      title: Dictionary<String,String>
      additionalProperties:
        type: string
      description: Dictionary<String,String>
      type: object
  securitySchemes:
    Bearer:
      type: http
      scheme: bearer
      description: 'API key. Send Authorization: Bearer rtr_live_… or rtr_test_…'

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.