CustomerOS Email Verification API

The Email Verification API from CustomerOS — 4 operation(s) for email verification.

Operations 4

GET /verify/v1/email Verify single email address #
POST /verify/v1/email/bulk Upload emails for bulk verification #
GET /verify/v1/email/bulk/results/{requestId} Get bulk verification results #
GET /verify/v1/email/bulk/results/{requestId}/download Download bulk verification results #

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/customeros-email-verification-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

customeros-email-verification-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: CustomerOS API for multiple services (Verify, Enrich, Orgs)
  title: CustomerOS Email Verification API
  contact: {}
  version: '1.0'
servers:
- url: https://api.customeros.ai/
tags:
- name: Email Verification
paths:
  /verify/v1/email:
    get:
      security:
      - ApiKeyAuth: []
      description: Performs comprehensive validation of a single email address
      tags:
      - Email Verification
      summary: Verify single email address
      parameters:
      - description: Email address to verify
        name: address
        in: query
        required: true
        schema:
          type: string
          format: email
      - description: Verify catch-all domain
        name: verifyCatchAll
        in: query
        schema:
          type: boolean
          default: true
      responses:
        '200':
          description: Email verification results
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/restverify.EmailVerificationResponse'
        '400':
          description: Invalid email format or missing parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rest.ErrorResponse'
        '401':
          description: Unauthorized - Missing or invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rest.ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rest.ErrorResponse'
      operationId: getVerifyV1Email
      x-operation-id-source: derived
  /verify/v1/email/bulk:
    post:
      security:
      - ApiKeyAuth: []
      description: Initiates bulk verification process for emails from CSV file
      tags:
      - Email Verification
      summary: Upload emails for bulk verification
      responses:
        '200':
          description: Bulk verification initiated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/restverify.BulkUploadResponse'
        '400':
          description: Invalid file format or missing parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rest.ErrorResponse'
        '401':
          description: Unauthorized - Missing or invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rest.ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rest.ErrorResponse'
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  description: CSV file containing email addresses
                  format: binary
                emailColumn:
                  type: string
                  default: first column
                  description: CSV column containing emails
                verifyCatchAll:
                  type: boolean
                  default: true
                  description: Verify catch-all domains
              required:
              - file
      operationId: postVerifyV1EmailBulk
      x-operation-id-source: derived
  /verify/v1/email/bulk/results/{requestId}:
    get:
      security:
      - ApiKeyAuth: []
      description: Retrieves results or status of bulk verification job
      tags:
      - Email Verification
      summary: Get bulk verification results
      parameters:
      - description: Bulk verification job ID
        name: requestId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Verification results or status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/restverify.BulkResultsResponse'
        '400':
          description: Invalid job ID
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rest.ErrorResponse'
        '401':
          description: Unauthorized - Missing or invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rest.ErrorResponse'
        '404':
          description: Job not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rest.ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rest.ErrorResponse'
      operationId: getVerifyV1EmailBulkResultsByRequestId
      x-operation-id-source: derived
  /verify/v1/email/bulk/results/{requestId}/download:
    get:
      security:
      - ApiKeyAuth: []
      description: Downloads CSV file containing detailed verification results
      tags:
      - Email Verification
      summary: Download bulk verification results
      parameters:
      - description: Bulk verification job ID
        name: requestId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: CSV file containing verification results
          content:
            text/csv:
              schema:
                type: string
                format: binary
        '400':
          description: Invalid job ID
          content:
            text/csv:
              schema:
                $ref: '#/components/schemas/rest.ErrorResponse'
        '401':
          description: Unauthorized - Missing or invalid API key
          content:
            text/csv:
              schema:
                $ref: '#/components/schemas/rest.ErrorResponse'
        '404':
          description: Results not found
          content:
            text/csv:
              schema:
                $ref: '#/components/schemas/rest.ErrorResponse'
        '500':
          description: Internal server error
          content:
            text/csv:
              schema:
                $ref: '#/components/schemas/rest.ErrorResponse'
      operationId: getVerifyV1EmailBulkResultsByRequestIdDownload
      x-operation-id-source: derived
components:
  schemas:
    restverify.EmailVerificationResponse:
      description: Response for single email verification including detailed validation results
      type: object
      properties:
        email:
          description: 'Email verification details

            required: true'
          allOf:
          - $ref: '#/components/schemas/restverify.EmailVerificationRecord'
        requestId:
          type: string
          example: 1234567890abcdef
        status:
          description: Status indicates the result of the operation ("success" or "error")
          type: string
          example: success
    rest.ErrorResponse:
      type: object
      properties:
        message:
          type: string
        requestId:
          type: string
          example: 1234567890abcdef
        status:
          description: Status indicates the result of the operation ("success" or "error")
          type: string
          example: success
    restverify.EmailVerificationRecord:
      description: Detailed validation results for an email address
      type: object
      properties:
        alternateEmail:
          description: 'Alternative email address if available

            required: false

            format: email'
          type: string
          example: alternate@example.com
        deliverable:
          description: 'Deliverability status

            required: true

            enum: true,false,unknown'
          type: string
          example: 'true'
        emailAddress:
          description: 'Email address that was verified

            required: true

            format: email'
          type: string
          example: example@example.com
        isCatchAll:
          description: 'Indicates if domain is catch-all

            required: true'
          type: boolean
          example: false
        isRisky:
          description: 'Indicates if email is considered risky

            required: true'
          type: boolean
          example: false
        provider:
          description: 'Email service provider

            required: false'
          type: string
          example: gmail
        risk:
          description: 'Risk assessment details

            required: true'
          allOf:
          - $ref: '#/components/schemas/restverify.EmailVerificationRisk'
        secureGatewayProvider:
          description: 'Security gateway provider

            required: false'
          type: string
          example: Proofpoint
        syntax:
          description: 'Syntax validation details

            required: true'
          allOf:
          - $ref: '#/components/schemas/restverify.EmailVerificationSyntax'
    restverify.BulkResultsResponse:
      description: Response containing bulk verification results or status
      type: object
      properties:
        estimatedCompletionTs:
          description: 'Estimated completion timestamp

            required: true'
          type: integer
          example: 1694030400
        fileName:
          description: 'Original filename

            required: true'
          type: string
          example: emails.csv
        jobId:
          description: 'Unique job identifier

            required: true

            format: uuid'
          type: string
          example: 550e8400-e29b-41d4-a716-446655440000
        message:
          description: 'Progress message

            required: true'
          type: string
          example: Completed 1000 of 1000 emails
        results:
          description: 'Verification results if completed

            required: false'
          allOf:
          - $ref: '#/components/schemas/restverify.BulkResultsDetails'
        status:
          description: 'Processing status

            required: true

            enum: processing,completed'
          type: string
          example: completed
    restverify.EmailVerificationRisk:
      description: Risk factors associated with the email address
      type: object
      properties:
        isFirewalled:
          description: 'Indicates if email is behind a firewall

            required: true'
          type: boolean
          example: false
        isFreeProvider:
          description: 'Indicates if email uses a free provider

            required: true'
          type: boolean
          example: true
        isMailboxFull:
          description: 'Indicates if mailbox is full

            required: true'
          type: boolean
          example: false
        isPrimaryDomain:
          description: 'Indicates if domain is primary

            required: true'
          type: boolean
          example: true
        isRoleMailbox:
          description: 'Indicates if email is a role account

            required: true'
          type: boolean
          example: false
        isSystemGenerated:
          description: 'Indicates if email is system-generated

            required: true'
          type: boolean
          example: false
    restverify.BulkResultsDetails:
      description: Detailed statistics for bulk verification results
      type: object
      properties:
        deliverable:
          description: 'Number of deliverable emails

            required: true

            minimum: 0'
          type: integer
          example: 950
        downloadUrl:
          description: 'URL to download detailed results

            required: true

            format: uri'
          type: string
          example: https://api.customeros.ai/verify/v1/email/bulk/results/550e8400-e29b-41d4-a716-446655440000/download
        totalEmails:
          description: 'Total number of emails processed

            required: true

            minimum: 0'
          type: integer
          example: 1000
        undeliverable:
          description: 'Number of undeliverable emails

            required: true

            minimum: 0'
          type: integer
          example: 45
    restverify.EmailVerificationSyntax:
      description: Email syntax validation details
      type: object
      properties:
        domain:
          description: 'Domain part of email

            required: true'
          type: string
          example: example.com
        isValid:
          description: 'Indicates if email syntax is valid

            required: true'
          type: boolean
          example: true
        user:
          description: 'Local part of email

            required: true'
          type: string
          example: example
    restverify.BulkUploadResponse:
      description: Response after initiating bulk email verification
      type: object
      properties:
        estimatedCompletionTs:
          description: 'Estimated completion timestamp

            required: true'
          type: number
          example: 1694030400
        jobId:
          description: 'Unique job identifier

            required: true

            format: uuid'
          type: string
          example: 550e8400-e29b-41d4-a716-446655440000
        message:
          description: 'Status message

            required: true'
          type: string
          example: File uploaded successfully
        resultUrl:
          description: 'URL to check verification results

            required: true

            format: uri'
          type: string
          example: https://api.customeros.ai/verify/v1/email/bulk/results/550e8400-e29b-41d4-a716-446655440000
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      name: X-CUSTOMER-OS-API-KEY
      in: header