openapi: 3.2.0
info:
title: Aperture REST Email Validation API
version: v2
servers:
- url: https://api.experianaperture.io/
tags:
- name: Email Validation
paths:
/email/validation/v1:
post:
tags:
- Email Validation
summary: Submits an email address to the service to be validated and returns the result…
parameters:
- name: Reference-Id
in: header
description: Optional identifier that will be returned in the response to help you track the request.
schema:
maxLength: 256
minLength: 0
pattern: ^[\w\-\/\:\.\,\(\) ]+$
type: string
requestBody:
description: The request body.
content:
application/json:
schema:
$ref: '#/components/schemas/EmailValidationV1Request'
example:
email: support@experian.com
timeout: 5
application/xml:
schema:
$ref: '#/components/schemas/EmailValidationV1Request'
example: "\n support@experian.com\n 5\n"
application/x-msgpack:
schema:
$ref: '#/components/schemas/EmailValidationV1Request'
example:
email: support@experian.com
timeout: 5
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/EmailValidationV1Response'
example:
transaction_id: 00000000-0000-0000-0000-000000000000
result:
email: support@experian.com
confidence: illegitimate
verbose: roleAccount
application/xml:
schema:
$ref: '#/components/schemas/EmailValidationV1Response'
example: "\n \n support@experian.com\n illegitimate\n roleAccount\n \n 00000000-0000-0000-0000-000000000000\n"
application/x-msgpack:
schema:
$ref: '#/components/schemas/EmailValidationV1Response'
example:
transaction_id: 00000000-0000-0000-0000-000000000000
result:
email: support@experian.com
confidence: illegitimate
verbose: roleAccount
'400':
description: Bad Request
'401':
description: Unauthorized
'403':
description: Forbidden
'404':
description: Not Found
'406':
description: Not Acceptable
'408':
description: Request Timeout
'415':
description: Unsupported Media Type
'429':
description: Too Many Requests
'500':
description: Internal Server Error
'503':
description: Service Unavailable
security:
- OAuth2: []
- Auth-Token: []
operationId: postEmailValidationV1
x-operation-id-source: derived
/email/validate/v2:
post:
tags:
- Email Validation
summary: Submits an email address to the service to be validated and returns the result…
parameters:
- name: Reference-Id
in: header
description: Optional identifier that will be returned in the response to help you track the request. The Reference-Id header value can only contain alphanumeric, '-', '/', '_', ':', ' ', '.', ',', '(' and ')' characters and the value must be less than 256 characters.
schema:
maxLength: 256
minLength: 0
pattern: ^[a-zA-Z0-9:\-/_.,() ]*$
type:
- string
- 'null'
- name: Timeout-Seconds
in: header
description: Optional identifier that can specifies the timeout value. The Timeout-Seconds header value must be between 3 and 15.
schema:
maximum: 15
minimum: 3
type:
- integer
- 'null'
default: 15
- name: Add-Metadata
in: header
description: Optional identifier that specify whether the response should return all fields and values, in addition to the main core information.
schema:
type:
- boolean
- 'null'
default: 'true'
requestBody:
description: The request body.
content:
application/json:
schema:
$ref: '#/components/schemas/EmailValidationV2Request'
example:
email: support@experian.com
required: true
responses:
'200':
description: You've submitted a successful request and a valid response was returned. Your request may contain confidence level or corrections. This is the only chargeable response code.
headers:
Transaction-Id:
$ref: '#/components/headers/Transaction-Id'
Reference-Id:
$ref: '#/components/headers/Reference-Id'
content:
application/json:
schema:
$ref: '#/components/schemas/EmailValidationV2Response'
example:
result:
confidence: illegitimate
did_you_mean:
- support@experian.com
verbose_output: roleAccount
email: support@experian.cim
metadata:
domain_detail:
type: business
normalized_email: support@experian.cim
'400':
description: "Bad Request\n * You've submitted an invalid email field. Try submitting another request and make sure this field is formatted correctly.\n * You've specified an unsupported timeout value. Try submitting another call and make sure you specify a timeout value that is between 3 and 15.\n * You didn't provide an authentication token. Try submitting another request and make sure you specify your token, which you can find by signing in to the Self Service Portal.\n * You've submitted a malformed request body. Try sending another call and make sure the request body contains all required fields and that they are formatted correctly.\n * You've submitted an empty request body. Try sending another call and make sure the request body contains all required fields.\n * You've submitted an invalid Reference-ID header. Try submitting another request and make sure this header is formatted correctly.\n * You've submitted an invalid Add-Metadata header. Try submitting another request and make sure this header is formatted correctly.\n"
headers:
Transaction-Id:
$ref: '#/components/headers/Transaction-Id'
Reference-Id:
$ref: '#/components/headers/Reference-Id'
'401':
description: 'Unauthorized
The authentication token you''ve provided is incorrect. Sign in to the Self Service Portal to find the right token.
'
headers:
Transaction-Id:
$ref: '#/components/headers/Transaction-Id'
Reference-Id:
$ref: '#/components/headers/Reference-Id'
'500':
description: 'Internal Server Error
An unexpected server error was encountered. Try submitting another request. If the issue persists, contact support.
'
headers:
Transaction-Id:
$ref: '#/components/headers/Transaction-Id'
Reference-Id:
$ref: '#/components/headers/Reference-Id'
'403':
description: "Forbidden \n * The authentication token you've provided is valid, but it's associated with another product or you have insufficient credits. Sign in to the Self Service Portal to check if you are using the right token and if you have credits. \n * The authentication token you've provided is disabled. Sign in to the Self Service Portal to activate the token. \n * The domain you've sent the request from does not have access to your integration. Sign in to the Self Service Portal to whitelist the domain.\n * The IP address you've sent the request from does not have access to your integration. Sign in to the Self Service Portal to whitelist the IP address.\n"
headers:
Transaction-Id:
$ref: '#/components/headers/Transaction-Id'
Reference-Id:
$ref: '#/components/headers/Reference-Id'
'404':
description: 'Not Found
The resource you''ve requested could not be found. Try submitting another call and make sure you''re using the correct endpoint URL. If the issue persists, contact support.
'
headers:
Transaction-Id:
$ref: '#/components/headers/Transaction-Id'
Reference-Id:
$ref: '#/components/headers/Reference-Id'
'415':
description: 'Unsupported Media Type
You''ve specified an invalid Content-Type header. Try submitting another call and make sure you specify a valid Content-Type value. Check out Supported data formats for details.
'
headers:
Transaction-Id:
$ref: '#/components/headers/Transaction-Id'
Reference-Id:
$ref: '#/components/headers/Reference-Id'
'503':
description: 'Service Unavailable
The service is currently unavailable. You can check the API''s uptime and downtime by going to the service status page.
'
headers:
Transaction-Id:
$ref: '#/components/headers/Transaction-Id'
Reference-Id:
$ref: '#/components/headers/Reference-Id'
'406':
description: 'Not Acceptable
You''ve specified an invalid Accept header. Try submitting another call and make sure you specify a valid Accept value. Check out Supported data formats for details.
'
headers:
Transaction-Id:
$ref: '#/components/headers/Transaction-Id'
Reference-Id:
$ref: '#/components/headers/Reference-Id'
'429':
description: 'Too Many Requests
You''ve submitted too many requests. To protect all customers, your account has been temporarily throttled. Check out Rate limiting for details.
'
headers:
Transaction-Id:
$ref: '#/components/headers/Transaction-Id'
Reference-Id:
$ref: '#/components/headers/Reference-Id'
'408':
description: 'Request Timeout
Your request has timed out (the web server failed to respond in the specified time frame). Try submitting another request.
'
headers:
Transaction-Id:
$ref: '#/components/headers/Transaction-Id'
Reference-Id:
$ref: '#/components/headers/Reference-Id'
content:
application/json:
schema:
$ref: '#/components/schemas/EmailValidationV2Response'
example:
result:
confidence: unknown
verbose_output: timeout
email: example@test.com
metadata:
normalized_email: example@test.com
security:
- OAuth2: []
- Auth-Token: []
operationId: postEmailValidateV2
x-operation-id-source: derived
components:
schemas:
EmailValidationV2VerboseOutput:
enum:
- verified
- mailboxDisabled
- mailboxDoesNotExist
- mailboxFull
- syntaxFailure
- internationalCharactersUnsupported
- unreachable
- illegitimate
- roleAccount
- typoDomain
- localPartSpamTrap
- Profanity
- disposable
- unknown
- timeout
- acceptAll
- relayDenied
- BLANK
type: string
description: "Verbose output field value:\n * verified - The mailbox exists, is reachable, and is not known to be illegitimate or disposable.\n * mailboxDisabled - The mailbox is disabled.\n * mailboxDoesNotExist - The mailbox does not exist.\n * mailboxFull - The mailbox is full.\n * syntaxFailure - The syntax of the specified email address is incorrect.\n * internationalCharactersUnsupported - The email provider does not support international characters.\n * unreachable - The domain is not responding to validation requests or does not have any active mail severs.\n * illegitimate - Seed, spamtrap, black hole, technical role account or inactive domain.\n * roleAccount - Role accounts such as support, sales, info etc.\n * typoDomain - The domain of the email address you've provided was close to a common domain and, although it exists, it is highly unlikely to be correct.\n * localPartSpamTrap - Known local portions of the email address that may indicate spam traps.\n * Profanity - The email address contains profanity.\n * disposable - The domain is administered by a disposable email provider (e.g. Mailinator).\n * unknown - We were unable to conclusively verify or invalidate the email address.\n * timeout - The request timed out due to the host domain not responding in time.\n * acceptAll - The domain is accept-all, so the email address cannot be validated.\n * relayDenied - The result was validated at the incorrect mail exchanger.\n * BLANK - You are submitting requests at a faster rate than allowed by the email service providers for the domains you are checking.\n"
ResponseError:
type: object
properties:
type:
type:
- string
- 'null'
description: A link to documentation that provides more details about the error you’ve encountered.
title:
type:
- string
- 'null'
description: The title of the error.
example: Bad Request
detail:
type:
- string
- 'null'
description: A description of the error.
example: The request body was malformed.
instance:
type:
- string
- 'null'
description: The endpoint that returned the error.
additionalProperties: false
description: Error model containing the error details.
EmailValidationV1Confidence:
enum:
- verified
- undeliverable
- unreachable
- illegitimate
- disposable
- unknown
type: string
description: The outcome (confidence level) of the validation.
EmailValidationV1Response:
type: object
properties:
reference_id:
type:
- string
- 'null'
description: If you chose to submit a "Reference-Id" in the response body, the value will be returned with the response.
transaction_id:
type:
- string
- 'null'
description: Unique Experian-assigned transaction identifier.
example: ab123ab1-abc1-1234-abcd-ab1a123a1a12
error:
$ref: '#/components/schemas/ResponseError'
result:
$ref: '#/components/schemas/EmailValidationV1Result'
additionalProperties: false
description: The response model.
xml:
name: response
EmailValidationV1Request:
required:
- email
type: object
properties:
email:
minLength: 1
type: string
description: The email address that is the subject of the validation.
example: support@experian.com
timeout:
type: integer
description: 'Maximum time you are prepared to wait for a response, expressed in seconds. Acceptable values: 3-15. If a timeout occurs, a confidence status of "unknown" and a verbose result of "timeout" will be returned.'
format: int32
additionalProperties: false
description: The request model.
xml:
name: request
EmailValidationV2Response:
type: object
properties:
result:
$ref: '#/components/schemas/EmailValidationV2Result'
metadata:
$ref: '#/components/schemas/EmailValidationV2Metadata'
error:
$ref: '#/components/schemas/ResponseError'
additionalProperties: false
description: The response model.
EmailValidationV2Result:
type: object
properties:
confidence:
$ref: '#/components/schemas/EmailValidationV2Confidence'
did_you_mean:
type:
- array
- 'null'
items:
type: string
description: A list of more likely email addresses. Suggestions include fixes to syntax errors in the provided email address, typos in domains etc.
verbose_output:
$ref: '#/components/schemas/EmailValidationV2VerboseOutput'
email:
type: string
description: The email address that is the subject of the validation.
example: support@experian.com
additionalProperties: false
description: Details about the result. Includes the validated data and its confidence level.
EmailValidationV2Request:
required:
- email
type: object
properties:
email:
maxLength: 320
type: string
description: The email address that is the subject of the validation.
Maximum local part length is 64 and maximum domain part length is 255
example: support@experian.com
additionalProperties: false
description: The request model.
EmailValidationV1Result:
type: object
properties:
email:
type:
- string
- 'null'
description: The email address that is the subject of the validation.
example: support@experian.com
confidence:
$ref: '#/components/schemas/EmailValidationV1Confidence'
verbose:
type:
- string
- 'null'
description: Additional information on the confidence level.
example: verified, mailboxFull, unreachable
corrections:
type:
- array
- 'null'
items:
type: string
xml:
name: correction
description: A list of more likely email addresses. Suggestions include fixes to syntax errors in the provided email address, typos in domains etc.
xml:
name: corrections
wrapped: true
additionalProperties: false
description: Details about the result. Includes the validated data and its confidence level.
EmailValidationV2Metadata:
type: object
properties:
domain_detail:
$ref: '#/components/schemas/EmailValidationV2DomainDetail'
normalized_email:
type:
- string
- 'null'
description: The normalized version of the request email.
example: support@experian.com
additionalProperties: false
description: Details about all properties that metadata includes.
EmailValidationV2DomainDetail:
type: object
properties:
type:
enum:
- consumer
- business
type: string
description: "Type field value:\n * consumer - returned for \"free\" domains\n * business - returned for \"business\" domains\n * Omit the field \"type\" when we are unable to provide a value (either through DB issues, not having the domain in our DB, or other)\n"
additionalProperties: false
description: Details about the domain.
EmailValidationV2Confidence:
enum:
- verified
- undeliverable
- unreachable
- illegitimate
- disposable
- unknown
type: string
description: The outcome (confidence level) of the validation.
headers:
Transaction-Id:
schema:
type: string
description: Unique Experian-assigned transaction identifier.
example: ab123ab1-abc1-1234-abcd-ab1a123a1a12
Reference-Id:
schema:
type:
- string
- 'null'
description: If you chose to submit a "Reference-Id" in the response body, the value will be returned with the response.
securitySchemes:
OAuth2:
type: http
description: "Token URL: https://sso.experianaperture.io/oauth2/aust0wkxjeKyT3HRO4x7/v1/token \n\n Flow: clientCredentials"
scheme: Bearer
bearerFormat: JWT
Auth-Token:
type: apiKey
description: Your unique key, called a token, that is required to submit an API request.
name: Auth-Token
in: header
x-app-key:
type: apiKey
description: Alternative Auth Token header.
name: x-app-key
in: header