Mailboxlayer Bulk Check API

The Bulk Check API from Mailboxlayer — 1 operation(s) for bulk check.

Operations 1

GET /bulk_check Bulk Validate #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/mailboxlayer-bulk-check-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

mailboxlayer-bulk-check-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Mailboxlayer Bulk Check API
  version: 1.0.0
  description: Mailboxlayer offers a simple REST-based JSON API enabling you to thoroughly check and verify email addresses right at the point of entry into your system.
servers:
- url: https://apilayer.net/api
security:
- AccessKeyQuery: []
tags:
- name: Bulk Check
paths:
  /bulk_check:
    get:
      summary: Bulk Validate
      description: Bulk validation accepts a comma-separated list of email addresses in the `emails` query parameter (e.g. `emails=a@x.com,b@y.com,…`).
      operationId: bulkCheckEmails
      parameters:
      - $ref: '#/components/parameters/access_key'
      - $ref: '#/components/parameters/emails'
      - $ref: '#/components/parameters/smtp'
      - $ref: '#/components/parameters/catch_all'
      - $ref: '#/components/parameters/format'
      - $ref: '#/components/parameters/callback'
      responses:
        '200':
          description: Array of validation results (one per requested email). Service-level errors (empty `emails`, plan/bulk restrictions, bulk size over the plan limit) are also returned here with HTTP 200 and a `success:false` ApiError body.
          content:
            application/json:
              schema:
                oneOf:
                - type: array
                  items:
                    $ref: '#/components/schemas/EmailValidationResponse'
                - $ref: '#/components/schemas/ApiError'
              examples:
                bulk:
                  value:
                  - email: user1@gmail.com
                    did_you_mean: ''
                    user: user1
                    domain: gmail.com
                    format_valid: true
                    mx_found: true
                    smtp_check: true
                    catch_all: null
                    role: false
                    disposable: false
                    free: true
                    score: 0.74
                  - email: nope@nonexistent-domain-xyz.com
                    did_you_mean: ''
                    user: nope
                    domain: nonexistent-domain-xyz.com
                    format_valid: true
                    mx_found: false
                    smtp_check: false
                    catch_all: null
                    role: false
                    disposable: false
                    free: false
                    score: 0.01
                bulk_limit_exceeded:
                  value:
                    success: false
                    error:
                      code: 231
                      type: bulk_limit_exceeded
                      info: You have supplied more email addresses than your plan allows in a single bulk request.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/BulkValidationError'
        '429':
          $ref: '#/components/responses/RateLimitReached'
        '500':
          $ref: '#/components/responses/InternalError'
        '503':
          $ref: '#/components/responses/Maintenance'
      tags:
      - Bulk Check
components:
  parameters:
    format:
      name: format
      in: query
      required: false
      schema:
        type: integer
        enum:
        - 0
        - 1
      description: Set to 1 for human-prettified JSON output (useful for debugging; increases payload size).
      example: 0
    smtp:
      name: smtp
      in: query
      required: false
      schema:
        type: integer
        enum:
        - 0
        - 1
      description: Enable (1) or disable (0) the SMTP check. SMTP verification is active by default. Turning it off may speed up responses but disables the `smtp_check` verdict.
      example: 1
    access_key:
      name: access_key
      in: query
      required: true
      schema:
        type: string
      description: Mailboxlayer API Access Key (required for all requests).
      example: YOUR_ACCESS_KEY
    emails:
      name: emails
      in: query
      required: true
      schema:
        type: string
      description: Comma-separated list of email addresses for bulk validation (e.g. `a@example.com,b@x.com`). Bulk limits depend on plan (Pro+ up to 25, Enterprise+ up to 100).
      example: user1@example.com,user2@example.com
    callback:
      name: callback
      in: query
      required: false
      schema:
        type: string
      description: JSONP callback function name; wrapper will be returned if specified.
      example: myCallback
    catch_all:
      name: catch_all
      in: query
      required: false
      schema:
        type: integer
        enum:
        - 0
        - 1
      description: Enable catch-all mailbox detection by setting `catch_all=1`. Disabled by default because check is heavier and may increase response time. If not requested, the `catch_all` response value will typically be `null`. Some plans restrict catch-all detection.
      example: 0
  responses:
    RateLimitReached:
      description: Too Many Requests
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
          examples:
            usage_limit_reached:
              summary: usage_limit_reached
              value:
                success: false
                error:
                  code: 104
                  type: usage_limit_reached
                  info: Your monthly usage limit has been reached. Please upgrade your Subscription Plan.
            daily_usage_limit_reached:
              summary: daily_usage_limit_reached
              value:
                success: false
                error:
                  code: 104
                  type: daily_usage_limit_reached
                  info: Your daily usage limit has been reached. Please try again tomorrow or upgrade your subscription plan.
            fair_use_limit_reached:
              summary: fair_use_limit_reached
              value:
                success: false
                error:
                  code: 104
                  type: fair_use_limit_reached
                  info: 'Your fair use limit has been reached. [Please contact support: support@apilayer.com]'
            rate_limit_reached:
              summary: rate_limit_reached
              value:
                success: false
                error:
                  code: 106
                  type: rate_limit_reached
                  info: 'You have exceeded the maximum rate limitation allowed on your subscription plan. Please refer to the "Rate Limits" section of the API Documentation for details. '
    InternalError:
      description: Internal Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
          examples:
            internal_error:
              summary: internal_error
              value:
                success: false
                error:
                  code: 0
                  type: internal_error
                  info: 'An error has occured. [Technical Support: support@apilayer.com]'
    NotFound:
      description: Not Found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
          examples:
            invalid_api_function:
              summary: invalid_api_function
              value:
                success: false
                error:
                  code: 103
                  type: invalid_api_function
                  info: This API Function does not exist.
            404_not_found:
              summary: 404_not_found
              value:
                success: false
                error:
                  code: 404
                  type: 404_not_found
                  info: 404 - The requested resource could not be found. Please try again or contact support.
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
          examples:
            account_on_hold:
              summary: account_on_hold
              value:
                success: false
                error:
                  code: 107
                  type: account_on_hold
                  info: 'Your account currently has open invoices and API has been automatically disabled. Please settle your open balance or downgrade to the Free Plan to restore API access. [Support: support@apilayer.com]'
            invalid_access_key:
              summary: invalid_access_key
              value:
                success: false
                error:
                  code: 101
                  type: invalid_access_key
                  info: 'You have not supplied a valid API Access Key. [Technical Support: support@apilayer.com]'
            missing_access_key:
              summary: missing_access_key
              value:
                success: false
                error:
                  code: 101
                  type: missing_access_key
                  info: 'You have not supplied an API Access Key. [Required format: access_key=YOUR_ACCESS_KEY]'
            inactive_user:
              summary: inactive_user
              value:
                success: false
                error:
                  code: 102
                  type: inactive_user
                  info: Permission denied - User not active.
    BulkValidationError:
      description: Request-validation error — a required query parameter is missing or malformed (for example no `emails` supplied). Returned with HTTP 422 and FastAPI's validation body.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RequestValidationError'
          examples:
            missing_emails:
              value:
                detail:
                - loc:
                  - query
                  - emails
                  msg: field required
                  type: value_error.missing
    Maintenance:
      description: Service Unavailable
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
          examples:
            maintenance_mode:
              summary: maintenance_mode
              value:
                success: false
                error:
                  code: 503
                  type: maintenance_mode
                  info: ''
    Forbidden:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
          examples:
            https_access_restricted:
              summary: https_access_restricted
              value:
                success: false
                error:
                  code: 105
                  type: https_access_restricted
                  info: Access Restricted - Your current Subscription Plan does not support HTTPS Encryption.
            function_access_restricted:
              summary: function_access_restricted
              value:
                success: false
                error:
                  code: 105
                  type: function_access_restricted
                  info: Access Restricted - Your current Subscription Plan does not support this API Function.
            api_access_blocked:
              summary: api_access_blocked
              value:
                success: false
                error:
                  code: 104
                  type: api_access_blocked
                  info: Your API access has been temporarily disabled. Please upgrade your Subscription Plan or contact support.
  schemas:
    ApiError:
      type: object
      description: Standard error payload returned by Mailboxlayer when a request fails.
      properties:
        success:
          type: boolean
          description: Always false for error responses.
          example: false
        error:
          type: object
          properties:
            code:
              type: integer
              description: Numeric error code as defined in Mailboxlayer docs.
              example: 210
            type:
              type: string
              description: Short machine-readable error type.
              example: no_email_address_supplied
            info:
              type: string
              description: Human-readable info / suggestion for correcting the request.
              example: 'Please specify an email address. [Example: support@mailboxlayer.com]'
          required:
          - code
          - type
          - info
      required:
      - success
      - error
    EmailValidationResponse:
      type: object
      description: A single email validation result object. Fields may be `true`/`false` or `null` depending on whether a check was performed or supported by your plan.
      properties:
        email:
          type: string
          format: email
          description: Exact email address as checked.
          example: support@mailboxlayer.com
        did_you_mean:
          type:
          - string
          - 'null'
          description: Suggested correction if a domain-typo is detected; empty string if none.
          example: ''
        user:
          type:
          - string
          - 'null'
          description: Local part (before the @) of the email address.
          example: support
        domain:
          type:
          - string
          - 'null'
          description: Domain part (after the @) of the email address.
          example: mailboxlayer.com
        format_valid:
          type:
          - boolean
          - 'null'
          description: Returns true if the email address syntax is valid per RFC rules.
          example: true
        mx_found:
          type:
          - boolean
          - 'null'
          description: True if MX records for the domain were found.
          example: true
        smtp_check:
          type:
          - boolean
          - 'null'
          description: Result of SMTP verification (true = mailbox appears to exist).
          example: true
        catch_all:
          type:
          - boolean
          - 'null'
          description: True if the domain accepts all emails (catch-all). If catch-all detection was not requested or not permitted on plan, this value may be null.
          example: false
        role:
          type:
          - boolean
          - 'null'
          description: True if the email address is a role account (e.g., admin, support).
          example: false
        disposable:
          type:
          - boolean
          - 'null'
          description: True if the address belongs to a known disposable / temporary provider.
          example: false
        free:
          type:
          - boolean
          - 'null'
          description: True if the email uses a known free provider (e.g., gmail.com).
          example: true
        score:
          type:
          - number
          - 'null'
          format: double
          description: Aggregate quality/deliverability score between 0 (worst) and 1 (best).
          example: 0.92
      required:
      - email
    RequestValidationError:
      type: object
      description: FastAPI request-validation error body. Returned with HTTP 422 when a required query parameter is missing or malformed. This is a different shape from the ApiError envelope used for service-level errors (which are returned with HTTP 200).
      properties:
        detail:
          type: array
          items:
            type: object
            properties:
              loc:
                type: array
                items:
                  type: string
                example:
                - query
                - email
              msg:
                type: string
                example: field required
              type:
                type: string
                example: value_error.missing
  securitySchemes:
    AccessKeyQuery:
      type: apiKey
      in: query
      name: access_key
      description: Your Mailboxlayer API access key; pass as `access_key` query parameter.
externalDocs:
  description: Official Mailboxlayer documentation (reference)
  url: https://mailboxlayer.com/documentation