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

# Verify email

> Verifies single email in real-time synchronous manner.

You can use Bouncer’s Real-time Email Verification API to check email
addresses at the moment of entry, and implement it for your sign up forms.

It is a full email verification and email validation method – it not only
checks the syntax and domain of the address but also contacts underlying
SMTP servers to check deliverability of email addresses.

Bouncer will return the best possible results that it will be able to gather
within 10 seconds (maximum 30).

This method is recommended when speed of verification is of a value as
usually this method returns 5% more “unknown” results than full
integration using Batch Email Verification API.

**Rate Limiting**

Real-Time Email Verification API is limited to 1000 requests per minute
by default. Higher limit can be configured in special cases.

**Retry After**

In cases when we may provide results after greylisting additional
parameter "retryAfter" will be added.


## OpenAPI

````yaml get /v1.1/email/verify
openapi: 3.0.0
info:
  title: Bouncer
  description: >-
    Bouncer Email Verification API lets you validate email address and verify
    its deliverability, in the way you want.


    It’s easy to integrate, powerful, robust, secure, ultrafast and affordable.


    Let Bouncer handle verification and validation of your email addresses, with
    Real-Time (synchronous), Batch (asynchronous), and a hybrid of those two
    Batch Synchronous end-points.


    If at any time you would need extra support from our side, you can reach us
    by email at :
    [support@usebouncer.com](https://mailto:support@usebouncer.com)
  version: 1.0.0
servers:
  - url: https://api.usebouncer.com
security:
  - apikeyAuth: []
tags:
  - name: domain
    description: >-
      You can use Bouncer’s Domain Verification API to check domain information.


      It can be usefull to verify is domain has valid MX records and if it
      behaves as a "catch all" domain.
paths:
  /v1.1/email/verify:
    get:
      tags:
        - real-time
      summary: Verify email
      description: Verifies single email in real-time synchronous manner.
      operationId: verifySingleEmail
      parameters:
        - name: email
          in: query
          schema:
            type: string
          description: (Required) email
          example: hello@usebouncer.com
          required: true
        - name: timeout
          in: query
          schema:
            type: integer
            default: 10
          description: 'timeout for verification (default: 10)'
          example: '10'
      responses:
        '200':
          description: OK
          headers:
            Content-Type:
              schema:
                type: string
                example: application/json
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmailRecord'
              examples:
                example-0:
                  summary: OK
                  value:
                    email: john@usebouncer.com
                    status: deliverable
                    reason: accepted_email
                    domain:
                      name: usebouncer.com
                      acceptAll: 'no'
                      disposable: 'no'
                      free: 'no'
                    account:
                      role: 'no'
                      disabled: 'no'
                      fullMailbox: 'no'
                    dns:
                      type: MX
                      record: aspmx.l.google.com.
                    provider: google.com
                    score: 100
                    toxic: unknown
                    toxicity: 0
                example-1:
                  summary: OK (timeout)
                  value:
                    email: john@usebouncer.com
                    status: unknown
                    reason: timeout
                    domain:
                      name: usebouncer.com
                      acceptAll: unknown
                      disposable: 'no'
                      free: 'no'
                    account:
                      role: 'no'
                      disabled: unknown
                      fullMailbox: unknown
                    dns:
                      type: MX
                      record: aspmx.l.google.com.
                    provider: google.com
                    toxicity: 0
                example-2:
                  summary: OK (greylisting)
                  value:
                    email: john@usebouncer.com
                    status: unknown
                    reason: timeout
                    domain:
                      name: usebouncer.com
                      acceptAll: unknown
                      disposable: 'no'
                      free: 'no'
                    account:
                      role: 'no'
                      disabled: unknown
                      fullMailbox: unknown
                    dns:
                      type: MX
                      record: aspmx.l.google.com.
                    provider: google.com
                    retryAfter: '2022-11-24T09:55:09.029Z'
                example-3:
                  summary: OK (with didYouMean)
                  value:
                    email: john1234 @gnail.com.
                    status: undeliverable
                    reason: invalid_email
                    didYouMean: john1234@gmail.com
        '402':
          description: Payment Required
          headers:
            Content-Type:
              schema:
                type: string
                example: application/json
          content:
            application/json:
              schema:
                type: object
              example:
                status: '402'
                error: Payment Required
                message: 0 credits left
        '429':
          description: Too Many Requests
          headers:
            Content-Type:
              schema:
                type: string
                example: application/json
          content:
            application/json:
              schema:
                type: object
              example:
                status: 429
                error: Too Many Requests
                message: too many requests
components:
  schemas:
    EmailRecord:
      type: object
      additionalProperties: false
      required:
        - email
        - status
        - reason
      properties:
        email:
          type: string
        status:
          enum:
            - deliverable
            - risky
            - undeliverable
            - unknown
        reason:
          enum:
            - accepted_email
            - low_deliverability
            - low_quality
            - invalid_email
            - invalid_domain
            - rejected_email
            - dns_error
            - unavailable_smtp
            - unsupported
            - timeout
            - unknown
        domain:
          type: object
          additionalProperties: false
          required:
            - name
            - acceptAll
            - disposable
            - free
          properties:
            name:
              type: string
            acceptAll:
              enum:
                - 'yes'
                - 'no'
                - unknown
            disposable:
              enum:
                - 'yes'
                - 'no'
                - unknown
            free:
              enum:
                - 'yes'
                - 'no'
                - unknown
        account:
          type: object
          additionalProperties: false
          required:
            - role
            - disabled
            - fullMailbox
          properties:
            role:
              enum:
                - 'yes'
                - 'no'
                - unknown
            disabled:
              enum:
                - 'yes'
                - 'no'
                - unknown
            fullMailbox:
              enum:
                - 'yes'
                - 'no'
                - unknown
        dns:
          type: object
          additionalProperties: false
          required:
            - type
          properties:
            type:
              type: string
            record:
              type: string
        provider:
          type: string
        score:
          type: integer
          minimum: 0
          maximum: 100
        toxic:
          type: string
        toxicity:
          type: integer
          minimum: 0
          maximum: 5
        retryAfter:
          type: string
  securitySchemes:
    apikeyAuth:
      type: apiKey
      in: header
      name: x-api-key

````