Verifigator API Documentation

API Documentation version 1.3 for API reference version v1. Last Updated: 15 August 2018.

OVERVIEW

Verifigator API is a RESTful API which allows you to use all of Verifigator’s features, including validation of leads and all the features of the List Manager.

You will need an API key to be able to use the API. All of the API endpoints require the API key input. If you are an already registered user, you will find your API key from My Account. If you don’t have an account yet, you can sign up for free. To use the API, you can either study this page and directly call the API functions from your own code, or you can use our ready made integration libraries or our ready made plugins.

There are two kinds of API keys: Public API keys and Secret API keys. The Public API key is something you can use in any application the end-user can have access to reading the key. For example, you can use the Public API key within JavaScript code. The Public API key will give you only a limited access – with a Public API key you can only validate data (and add data to your leads list using the POST /leads/validate), but it will not give you access to edit, list or export any data from Verifigator. For example, a Public API key cannot be used for accessing your leads in your leads list, such as exporting our data. To fully access all features of Verifigator and fully access your data, you must use your Secret API key. As the Secret API key will give you a full access to all your data, it should be treated with same care as your account’s password and not shared with any unauthorized parties.

The API has been designed with three design goals:

1) Easy to use. By this we mean that we wanted to make API which makes sense. For example, if the API server notices that you are trying to use an API endpoint which does not exist, it will tell you which endpoints do exist. And we made the implementation of any API using software or wrapper easier, by supporting both REST and parameter style calling. That is, if you want to delete something via our API, you can either do it REST style by calling the API with the HTTP DELETE method, or by simply providing an input parameter method=”DELETE”.

2) Self documenting. If you call the API with no data, it will tell you all of the currently available endpoints, a short description of each and how to use them. Do you want to know the Change Log of the API? The API can tell you that (GET /changelog!). Do you want to know the names of required parameters of an API call? The API tells you that too! The purpose of this API documentation is only to provide in-depth information of specific parameters and other technical details.

3) Idempotent. The API is idempotent, meaning you can make the same API call more than one time, and it always does the same operation and under no circumstance duplicate data is generated. For example, even if you by accident call the API twice to add an email address to your lead list, it is only added once (and your API Calls Remaining counter will be reduced only by one!)

The base format of the API URI is:
https://api.verifigator.com/{version}/{endpoint}/({verb})
For example:
https://api.verifigator.com/v1/leads
And:
https://api.verifigator.com/v1/leads/validate

Endpoints

The following is the current list of supported and documented API endpoints. Please click the endpoint link for more information.

Endpoint Description
GET Leads/validate Validates a lead or an email address, as well as performs the geo location and gender detection from the lead’s name and email address data.
POST Leads/validate Validates a lead or an email address, as well as performs the geo location and gender detection from the lead’s name and email address data, AND adds the lead to user’s lead list.
POST Leads Adds a single lead to your leads list, OR starts a leads import operation of multiple leads.
GET Leads Lists all your currently stored leads, or lists leads matching with a search phrase, tags, and/or quality rating.
GET Leads/{lead_id} Reads a lead’s data from the user’s lead list via the lead_id.
PUT Leads/{lead_id} Edits the data of a lead, such as updates a lead’s name or email address.
GET Status/import/{import_id} Returns information about a lead import operation by lead_id, including operation’s current progress and estimated time remaining.
GET Status/import/0 Returns information about the currently active lead import operation. If none are active, returns information about the most recent import operation.
DELETE Leads/import/{import_id} Aborts an ongoing lead import operation.
GET Leads/export Exports leads to a file. Either all leads or a selection based on a search phrase, tags and/or quality rating.
DELETE Leads/export/{export_id} Aborts an ongoing lead export operation.
GET Status/leads/export Returns the list of supported export file formats.
GET Status/export/{export_id} Returns information about a lead export operation, such as its current progress and estimated time remaining.
GET Status/export/0 Returns information about the currently active lead export operation. If none are active, returns information about the most recent export operation.
GET Summary Returns a summary of user’s current leads list, including the number of leads, the number of leads by quality rating, by tags and the list’s estimated delivery rate and estimated bounce rate.
GET Status Returns information about the current state of the API server.
GET Changelog Returns the ChangeLog of the API back-end.
GET Help Returns a list of all of the currently supported API endpoints from the API back-end, as well as other information how to use the API.

HTTP methods

Per the REST paradigm, HTTP methods are used to determine the action of an API call. The API uses the following HTTP methods:

HTTP method Description
GET Reads data from API. Does not ever change the state of any data in server.
POST Adds data to the server. For example, adding of new lead to user’s list is always done by a HTTP POST method. The Verifigator API is idempotent, which means it is always safe to call the API multiple times and it always returns the same result and does not cause duplicate data. For example, calling the POST method to add the same lead multiple times does not add the same lead more than once.
PUT Updates data on the server. For example, updating a lead’s name is done with HTTP PUT method.
DELETE Deletes data from the server. For example, deleting a lead, that is, removing a lead from user’s leads list is done with HTTP DELETE.
For example:
GET https://api.verifigator.com/v1/leads/12345

The API call returns the lead’s (lead_id = 12345) data.

And for example:
DELETE https://api.verifigator.com/v1/leads/12345

The API call deletes the lead from the user’s list. (Note: The two above examples are not complete API calls, as they do not include the API key.)

Errors

In case of an error, the API will return an error code both within the HTTP header as well as in the returned JSON content. The JSON content contains fields error_code and error_message where the code field contains the HTTP error code, an the message field contains a more detailed description of the error. A summary of the possible error codes:

HTTP status code Description
401 Unauthorized API call. For example, the API call did not contain a valid API key.
402 Payment required. The monthly usage limit of the provided API key has been used and the user must upgrade their account level (i.e. get a higher monthly usage limit) in order to make new API calls.
403 Forbidden. The user is attempting to access data they do not have access to. For example, if user attempts to read data of another Verifigator user.
404 Not found. The data user is asking to access does not exist. For example, if user attempts to read the data of a lead but the provided lead_id does not exist in the system.
405 Method not allowed. The user is attempting to use an API method that is not supported or allowed by the server. For example, if user attempts to use any other HTTP method than GET/POST/PUT/DELETE.
406 Not acceptable. The user is attempting to add or modify invalid data. For example, if user attempts to create a new lead without an email address.
409 Conflict. The user is attempting to edit a lead’s email address in a way it results in a conflict. For example, let’s say you have two leads: john.smith@gmail.com and james.smith@gmail.com added to your leads list. If you would attempt to edit the lead “james.smith@gmail.com” email address to “john.smith@gmail.com”, that would return a 409 error and the edit would fail, as a lead list cannot ever contain duplicate email addresses.
500 Internal server error. An internal error within the API server occurred during the processing of this API call. The user is recommended to report the problem to us, wait and try again later.
501 Not implemented. The API call is attempting to use a feature from the API server that has not been implemented yet. The user is recommended to report the problem to us, wait and try again later.

In the case of an API call failing for any reason (i.e. due to incorrect user input or due to internal error in the API server), the API response will include an incident_id parameter. If you are reporting a problem with the API, please include any incident_id’s and we can investigate the matter from our API logs with the incident_id(s).

To test the Verifigator API, this should be your first API call. Simply run this in your terminal:
The response of the above API call would be something like this:

{ 

	"intro": "Welcome to Verifigator API! Verifigator is a service to validate email addresses and leads, segment your leads and manage lead lists such as email newsletter subscription lists. For technical details about this API, please consider reading the API Docs at: https:\/\/verifigator.com\/api-docs\/ This API is REST based API which uses HTTP Methods of GET, POST, PUT and DELETE.",
	"endpoints_array": [
		"GET https:\/\/api.verifigator.com\/v1\/ping",
		"POST https:\/\/api.verifigator.com\/v1\/ping",
		"PUT https:\/\/api.verifigator.com\/v1\/ping",
		"DELETE https:\/\/api.verifigator.com\/v1\/ping",
		"GET https:\/\/api.verifigator.com\/v1\/leads\/validate",
		"POST https:\/\/api.verifigator.com\/v1\/leads\/validate",
		"GET https:\/\/api.verifigator.com\/v1\/leads",
		"POST https:\/\/api.verifigator.com\/v1\/leads",
		"GET https:\/\/api.verifigator.com\/v1\/leads\/{lead_id}",
		"PUT https:\/\/api.verifigator.com\/v1\/leads\/{lead_id}",
		"DELETE https:\/\/api.verifigator.com\/v1\/leads\/{lead_id}",
		"DELETE https:\/\/api.verifigator.com\/v1\/leads\/all",
		"GET https:\/\/api.verifigator.com\/v1\/leads\/export",
		"DELETE https:\/\/api.verifigator.com\/v1\/leads\/import\/{import_id}",
		"DELETE https:\/\/api.verifigator.com\/v1\/leads\/export\/{export_id}",
		"GET https:\/\/api.verifigator.com\/v1\/status",
		"GET https:\/\/api.verifigator.com\/v1\/status\/apikey",
		"GET https:\/\/api.verifigator.com\/v1\/status\/import\/{import_id}",
		"GET https:\/\/api.verifigator.com\/v1\/status\/export\/{export_id}",
		"GET https:\/\/api.verifigator.com\/v1\/status\/integration",
		"GET https:\/\/api.verifigator.com\/v1\/tags",
		"GET https:\/\/api.verifigator.com\/v1\/tags\/{user_id}",
		"GET https:\/\/api.verifigator.com\/v1\/summary",
		"GET https:\/\/api.verifigator.com\/v1\/settings",
		"PUT https:\/\/api.verifigator.com\/v1\/settings",
		"GET https:\/\/api.verifigator.com\/v1\/integration",
		"POST https:\/\/api.verifigator.com\/v1\/integration",
		"PUT https:\/\/api.verifigator.com\/v1\/integration",
		"DELETE https:\/\/api.verifigator.com\/v1\/integration",
		"GET https:\/\/api.verifigator.com\/v1\/integration\/test",
		"GET https:\/\/api.verifigator.com\/v1\/integration\/run",
		"GET https:\/\/api.verifigator.com\/v1\/syntax\/integration",
		"GET https:\/\/api.verifigator.com\/v1\/help",
		"POST https:\/\/api.verifigator.com\/v1\/help",
		"PUT https:\/\/api.verifigator.com\/v1\/help",
		"DELETE https:\/\/api.verifigator.com\/v1\/help",
		"GET https:\/\/api.verifigator.com\/v1\/changelog",
		"GET https:\/\/api.verifigator.com\/v1\/changelog\/api",
		"GET https:\/\/api.verifigator.com\/v1\/changelog\/integrator_php",
		"POST https:\/\/api.verifigator.com\/v1\/internal\/apikeys",
		"GET https:\/\/api.verifigator.com\/v1\/internal\/apikeys\/{xuser_id}",
		"PUT https:\/\/api.verifigator.com\/v1\/internal\/apikeys\/{xuser_id}",
		"GET https:\/\/api.verifigator.com\/v1\/internal\/settings\/{xuser_id}",
		"PUT https:\/\/api.verifigator.com\/v1\/internal\/settings\/{xuser_id}",
		"GET https:\/\/api.verifigator.com\/v1\/internal\/id\/{id}",
		"GET https:\/\/api.verifigator.com\/v1\/internal\/arrays",
		"GET https:\/\/api.verifigator.com\/v1\/internal\/unit_test",
		"POST https:\/\/api.verifigator.com\/v1\/internal\/unit_test",
		"DELETE https:\/\/api.verifigator.com\/v1\/internal\/unit_test",
		"POST https:\/\/api.verifigator.com\/v1\/internal\/statistics\/{xuser_id}",
		"GET https:\/\/api.verifigator.com\/v1\/internal\/log",
		"POST https:\/\/api.verifigator.com\/v1\/internal\/log",
		"GET https:\/\/api.verifigator.com\/v1\/internal\/status",
		"POST https:\/\/api.verifigator.com\/v1\/internal\/quick_test",
		"GET https:\/\/api.verifigator.com\/v1\/internal\/corrections\/{id}",
		"DELETE https:\/\/api.verifigator.com\/v1\/internal\/corrections\/{id}",
		"GET https:\/\/api.verifigator.com\/v1\/internal\/corrections",
		"POST https:\/\/api.verifigator.com\/v1\/internal\/corrections",
		"GET https:\/\/api.verifigator.com\/v1\/internal\/thai_corrections\/{id}",
		"DELETE https:\/\/api.verifigator.com\/v1\/internal\/thai_corrections\/{id}",
		"GET https:\/\/api.verifigator.com\/v1\/internal\/thai_corrections",
		"POST https:\/\/api.verifigator.com\/v1\/internal\/thai_corrections",
		"GET https:\/\/api.verifigator.com\/v1\/internal\/domain_corrections\/{id}",
		"DELETE https:\/\/api.verifigator.com\/v1\/internal\/domain_corrections\/{id}",
		"GET https:\/\/api.verifigator.com\/v1\/internal\/domain_corrections",
		"POST https:\/\/api.verifigator.com\/v1\/internal\/domain_corrections",
		"GET https:\/\/api.verifigator.com\/v1\/internal\/split_corrections\/{id}",
		"DELETE https:\/\/api.verifigator.com\/v1\/internal\/split_corrections\/{id}",
		"GET https:\/\/api.verifigator.com\/v1\/internal\/split_corrections",
		"POST https:\/\/api.verifigator.com\/v1\/internal\/split_corrections",
		"GET https:\/\/api.verifigator.com\/v1\/internal\/neg_corrections\/{id}",
		"DELETE https:\/\/api.verifigator.com\/v1\/internal\/neg_corrections\/{id}",
		"GET https:\/\/api.verifigator.com\/v1\/internal\/neg_corrections",
		"POST https:\/\/api.verifigator.com\/v1\/internal\/neg_corrections",
		"GET https:\/\/api.verifigator.com\/v1\/internal\/geo_gender_corrections\/{id}",
		"DELETE https:\/\/api.verifigator.com\/v1\/internal\/geo_gender_corrections\/{id}",
		"GET https:\/\/api.verifigator.com\/v1\/internal\/geo_gender_corrections",
		"POST https:\/\/api.verifigator.com\/v1\/internal\/geo_gender_corrections",
		"POST https:\/\/api.verifigator.com\/v1\/internal\/reset",
		"POST https:\/\/api.verifigator.com\/v1\/internal\/resetbyid\/{id}",
		"POST https:\/\/api.verifigator.com\/v1\/internal\/resetlogs",
		"GET https:\/\/api.verifigator.com\/v1\/define\/get-ping",
		"GET https:\/\/api.verifigator.com\/v1\/define\/post-define-get-ping",
		"GET https:\/\/api.verifigator.com\/v1\/define\/put-define-post-define-get-ping",
		"GET https:\/\/api.verifigator.com\/v1\/define\/delete-define-put-define-post-define-get-ping",
		"GET https:\/\/api.verifigator.com\/v1\/define\/get-leads-validate",
		"GET https:\/\/api.verifigator.com\/v1\/define\/post-define-get-leads-validate",
		"GET https:\/\/api.verifigator.com\/v1\/define\/get-leads",
		"GET https:\/\/api.verifigator.com\/v1\/define\/post-define-get-leads",
		"GET https:\/\/api.verifigator.com\/v1\/define\/get-leads-",
		"GET https:\/\/api.verifigator.com\/v1\/define\/put-define-get-leads-",
		"GET https:\/\/api.verifigator.com\/v1\/define\/delete-define-put-define-get-leads-",
		"GET https:\/\/api.verifigator.com\/v1\/define\/delete-leads-all",
		"GET https:\/\/api.verifigator.com\/v1\/define\/get-leads-export",
		"GET https:\/\/api.verifigator.com\/v1\/define\/delete-leads-import-",
		"GET https:\/\/api.verifigator.com\/v1\/define\/delete-leads-export-",
		"GET https:\/\/api.verifigator.com\/v1\/define\/get-status",
		"GET https:\/\/api.verifigator.com\/v1\/define\/get-status-apikey",
		"GET https:\/\/api.verifigator.com\/v1\/define\/get-status-import-",
		"GET https:\/\/api.verifigator.com\/v1\/define\/get-status-export-",
		"GET https:\/\/api.verifigator.com\/v1\/define\/get-status-integration",
		"GET https:\/\/api.verifigator.com\/v1\/define\/get-tags",
		"GET https:\/\/api.verifigator.com\/v1\/define\/get-tags-",
		"GET https:\/\/api.verifigator.com\/v1\/define\/get-summary",
		"GET https:\/\/api.verifigator.com\/v1\/define\/get-settings",
		"GET https:\/\/api.verifigator.com\/v1\/define\/put-define-get-settings",
		"GET https:\/\/api.verifigator.com\/v1\/define\/get-integration",
		"GET https:\/\/api.verifigator.com\/v1\/define\/post-define-get-integration",
		"GET https:\/\/api.verifigator.com\/v1\/define\/put-define-post-define-get-integration",
		"GET https:\/\/api.verifigator.com\/v1\/define\/delete-define-put-define-post-define-get-integration",
		"GET https:\/\/api.verifigator.com\/v1\/define\/get-integration-test",
		"GET https:\/\/api.verifigator.com\/v1\/define\/get-integration-run",
		"GET https:\/\/api.verifigator.com\/v1\/define\/get-syntax-integration",
		"GET https:\/\/api.verifigator.com\/v1\/define\/get-help",
		"GET https:\/\/api.verifigator.com\/v1\/define\/post-define-get-help",
		"GET https:\/\/api.verifigator.com\/v1\/define\/put-define-post-define-get-help",
		"GET https:\/\/api.verifigator.com\/v1\/define\/delete-define-put-define-post-define-get-help",
		"GET https:\/\/api.verifigator.com\/v1\/define\/get-changelog",
		"GET https:\/\/api.verifigator.com\/v1\/define\/get-changelog-api",
		"GET https:\/\/api.verifigator.com\/v1\/define\/get-changelog-integrator_php",
		"GET https:\/\/api.verifigator.com\/v1\/define\/get",
		"GET https:\/\/api.verifigator.com\/v1\/define\/post",
		"GET https:\/\/api.verifigator.com\/v1\/define\/put",
		"GET https:\/\/api.verifigator.com\/v1\/define\/delete"
	],
	"endpoints_info_array": {
		"ping": "Allows you to send test messages (pings) to the API server to ensure you can communicate with the server properly.",
		"leads\/validate": "Validates a lead or email address, with geo location, language and gender detection as well as lead quality evaluation.",
		"leads": "Reads or writes lead data in your lead list.",
		"leads\/{lead_id}": "Read, edit or delete a lead from your leads list.",
		"leads\/all": "Deletes all leads from your leads list.",
		"leads\/export": "Exports leads from your leads list to a file.",
		"leads\/import\/{import_id}": "Aborts an ongoing lead import operation.",
		"leads\/export\/{export_id}": "Aborts an ongoing lead export operation.",
		"status": "Retrieves information about the current state of the API server.",
		"status\/apikey": "Retrieves information about your current API key.",
		"status\/import\/{import_id}": "Returns the status of a given lead import operation.",
		"status\/export\/{export_id}": "Returns the status of a given lead export operation.",
		"status\/integration": "Returns the log of your most recent integrations related actions.",
		"tags": "Returns the list of the most popular tags from the system.",
		"tags\/{user_id}": "Returns the list of most popular tags in your leads.",
		"summary": "Returns the summary of your account data.",
		"settings": "Reads or writes your settings data.",
		"integration": "Reads, writes, edits or deletes an integration method.",
		"integration\/test": "Performs a non data modifying test of the given integration method to test whether it seems to be working.",
		"integration\/run": "Executes the given integration method.",
		"syntax\/integration": "Returns information of the supported integration types.",
		"help": "Returns information on how to use the API.",
		"changelog": "Returns all of the ChangeLogs",
		"changelog\/api": "Returns the ChangeLog of the API.",
		"changelog\/integrator_php": "Returns the ChangeLog of the Verifigator PHP Integrator class.",
		"define\/get-ping": "Returns the definition of the GET define\/get-ping call.",
		"define\/post-define-get-ping": "Returns the definition of the POST define\/post-define-get-ping call.",
		"define\/put-define-post-define-get-ping": "Returns the definition of the PUT define\/put-define-post-define-get-ping call.",
		"define\/delete-define-put-define-post-define-get-ping": "Returns the definition of the DELETE define\/delete-define-put-define-post-define-get-ping call.",
		"define\/get-leads-validate": "Returns the definition of the GET define\/get-leads-validate call.",
		"define\/post-define-get-leads-validate": "Returns the definition of the POST define\/post-define-get-leads-validate call.",
		"define\/get-leads": "Returns the definition of the GET define\/get-leads call.",
		"define\/post-define-get-leads": "Returns the definition of the POST define\/post-define-get-leads call.",
		"define\/get-leads-": "Returns the definition of the GET define\/get-leads- call.",
		"define\/put-define-get-leads-": "Returns the definition of the PUT define\/put-define-get-leads- call.",
		"define\/delete-define-put-define-get-leads-": "Returns the definition of the DELETE define\/delete-define-put-define-get-leads- call.",
		"define\/delete-leads-all": "Returns the definition of the DELETE define\/delete-leads-all call.",
		"define\/get-leads-export": "Returns the definition of the GET define\/get-leads-export call.",
		"define\/delete-leads-import-": "Returns the definition of the DELETE define\/delete-leads-import- call.",
		"define\/delete-leads-export-": "Returns the definition of the DELETE define\/delete-leads-export- call.",
		"define\/get-status": "Returns the definition of the GET define\/get-status call.",
		"define\/get-status-apikey": "Returns the definition of the GET define\/get-status-apikey call.",
		"define\/get-status-import-": "Returns the definition of the GET define\/get-status-import- call.",
		"define\/get-status-export-": "Returns the definition of the GET define\/get-status-export- call.",
		"define\/get-status-integration": "Returns the definition of the GET define\/get-status-integration call.",
		"define\/get-tags": "Returns the definition of the GET define\/get-tags call.",
		"define\/get-tags-": "Returns the definition of the GET define\/get-tags- call.",
		"define\/get-summary": "Returns the definition of the GET define\/get-summary call.",
		"define\/get-settings": "Returns the definition of the GET define\/get-settings call.",
		"define\/put-define-get-settings": "Returns the definition of the PUT define\/put-define-get-settings call.",
		"define\/get-integration": "Returns the definition of the GET define\/get-integration call.",
		"define\/post-define-get-integration": "Returns the definition of the POST define\/post-define-get-integration call.",
		"define\/put-define-post-define-get-integration": "Returns the definition of the PUT define\/put-define-post-define-get-integration call.",
		"define\/delete-define-put-define-post-define-get-integration": "Returns the definition of the DELETE define\/delete-define-put-define-post-define-get-integration call.",
		"define\/get-integration-test": "Returns the definition of the GET define\/get-integration-test call.",
		"define\/get-integration-run": "Returns the definition of the GET define\/get-integration-run call.",
		"define\/get-syntax-integration": "Returns the definition of the GET define\/get-syntax-integration call.",
		"define\/get-help": "Returns the definition of the GET define\/get-help call.",
		"define\/post-define-get-help": "Returns the definition of the POST define\/post-define-get-help call.",
		"define\/put-define-post-define-get-help": "Returns the definition of the PUT define\/put-define-post-define-get-help call.",
		"define\/delete-define-put-define-post-define-get-help": "Returns the definition of the DELETE define\/delete-define-put-define-post-define-get-help call.",
		"define\/get-changelog": "Returns the definition of the GET define\/get-changelog call.",
		"define\/get-changelog-api": "Returns the definition of the GET define\/get-changelog-api call.",
		"define\/get-changelog-integrator_php": "Returns the definition of the GET define\/get-changelog-integrator_php call.",
		"define\/get": "Returns the definition of the given API endpoint.",
		"define\/post": "Returns the definition of the given API endpoint.",
		"define\/put": "Returns the definition of the given API endpoint.",
		"define\/delete": "Returns the definition of the given API endpoint."
	},
	"http_method_info": "You made this API call using HTTP method POST. Normally HTTP POST is used for writing data to the API server. Verifigator API supports HTTP methods: GET, POST, PUT, DELETE.Protip: You can actually make all the API calls using HTTP POST and by giving the desired HTTP method as a POST parameter, e.g. any call with method=\"PUT\" would be treated as a HTTP PUT call.",
	"api_key_info": "You made this API call without any API key! You should include your API key to every call by including \"api_key\" POST parameter with your personal API key. Please see the API Docs for more details.",
	"success": 1,
	"api_reference": "v1",
	"api_server": "production",
	"api_version": "1.1.8.6",
	"api_call_id": "c391ddf2d46249a1288c2093aa61db774bcdcdb8f",
	"warning": "No API key provided! This is normally a fatal error, but certain API endpoints can be accessed without providing an API key.",
	"response_time": 0.02751


}

Every error message returned by the API will contain the incident_id. If you are having problems with our API, you can contact us and mention the specific incident_id and we can better assist you to find out why your API call did not work.

Tip: To receive the full HTTP headers with a curl call, you can use the -i parameter.

For example, run this in your terminal:
The response of the above API call would be something like this:

HTTP/1.1 401 Unauthorized Date: Wed, 04 Apr 2018 00:19:56 
GMT Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips mod_fcgid/2.3.9 PHP/5.6.34 
Expires: Thu, 19 Nov 1981 08:52:00 GMT 
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 
Pragma: no-cache 
Access-Control-Allow-Origin: * 
Access-Control-Allow-Methods: * 
Content-Length: 370 
Content-Type: application/json { 
	"incident_id": "i2942705223799c49f5863a8df41536737a0b6f1d", 
	"success": 0, 
	"error_code": 401, 
	"error_message": "Invalid API key", 
	"error_suggestion": "Please read the API documentation at https://verifigator.com/api-docs/", 
	"api_reference": "v1", 
	"api_server": "production", 
	"api_version": "1.1.6.8", 
	"api_calls_remaining": 0, 
	"response_time": "0.13558"
}

Note: It is also possible to use the API by using only the HTTP POST method by providing the desired method by parameter. This functionality is offered to support API calls from systems with firewalls or other restrictions which may prevent the use of certain HTTP methods, as well as to support easy implementation of any third party integration code. For reasons of simplicity, this document will use the mentioned method of using HTTP POST call and providing the desired HTTP METHOD as a post data parameter.

For example, instead of making a true HTTP GET request, we would use:

In here, we are doing a HTTP POST call of the API, but with the given method parameter we are telling the API Server to treat the call as a HTTP GET call.

Thus, the most simple PHP implementation of a function to call Verifigator API would be the following:


<?php 

$res 
call_verifigator_api(“GET”“ping”“”“apidemo_cde-67874f”);
print_r($res);
$res call_verifigator_api(“GET”“leads”“validate”“apidemo_cde-67874f”, array(“name” => “MrFake”“email” => “fake@notreal.com”));
print_r($res);
function 
call_verifigator_api($method$endpoint$verb$api_key$post_data_arr null)
{
      if (!function_exists(“curl_init”)) die(“curl required to run this code!);
      // Build the data payload:
      $post_arr = array(“api_key” => $api_key“method” => $method);
      if (isset($post_data_arr) and is_array($post_data_arr)) $post_arr array_merge($post_arr$post_data_arr);
      // Build the URL:
      $api_url “https//api.verifigator.com/v1/” . $endpoint;
      if (!empty($verb)) $api_url .= /” $verb;
      // Setup CURL:
      $ch curl_init();
      curl_setopt($chCURLOPT_URL $api_url);
      curl_setopt($chCURLOPT_POSTFIELDS http_build_query($post_arr));
      curl_setopt($chCURLOPT_RETURNTRANSFER 1);
      curl_setopt($chCURLOPT_CONNECTTIMEOUT 10);
      curl_setopt($chCURLOPT_SSL_VERIFYPEER 0);
      curl_setopt($chCURLOPT_POST 1);
      curl_setopt($chCURLOPT_FOLLOWLOCATION 1);
      curl_setopt($chCURLOPT_CUSTOMREQUEST “POST”);
      // And finally, execute CURL:
      $response curl_exec($ch);
      // If everything was good, the response should be JSON encoded array,
      // which you can decode by json_decode($response, true);
      // But let’s just return the JSON string
      return $response;
}
?>

Note: The PHP sample code above is just that, sample code. Please see our plugins page for the official PHP code for using the API.

Endpoint: GET Apikeys

GET Apikeys

[GET] apikeys – Validates the given API key and retrieves its information

Endpoint:
GET https://api.verifigator.com/v1/apikeys/
This endpoint has the following input parameters:

INPUT PARAMETER TYPE DESCRIPTION
xapikey String, optional The API key that should be analyzed. If not given, the API key used to make this call will be analyzed.
This endpoint has the following output parameters:
OUTPUT PARAMETER TYPE DESCRIPTION
valid_api_key Integer Contains 1 if the given API key is valid.
queries_left Integer Returns the number of available API calls that can be made with this API key. This is reset every month.
monthly_queries Integer Returns the number of available API provided by the current API plan. For example, the free API plan currently offers 2000 calls per month, and therefore for free API keys this value will be 2000.
membership_plan String Returns the name of the membership plan of this user.
membership_package String Returns the name of the most recently bought membership package of this user. A plan means a subscription plan, and a package means a one time purchase.

Notes: The API call will return an error 404 in the case the given API key does not exist. The response values “queries_left”, “monthly_queries”, “membership_plan” and “membership_package” will contain no data in the case you are checking the validity of the API key of someone else than yourself.

To test, simply run this in your terminal:
The response of the above API call would be something like this:

{
	"valid_api_key": 1,
	"queries_left": "1998411",
	"monthly_queries": "500000",
	"membership_plan": "special",
	"membership_package": "special",
	"success": 1,
	"api_reference": "v1",
	"api_server": "production",
	"api_version": "1.2.3.0",
	"api_call_id": "c29e2ffd1d5ab922e7924553a689f95ed2d1a7470",
	"api_calls_remaining": 1998411,
	"response_time": 0.1036

}

Endpoint: POST|GET Leads/Validate

[POST] leads/validate – Validates a lead and adds it to user’s lead list
[GET] leads/validate – Validates a lead without adding it to the lead list
Entrypoint:
POST https://api.verifigator.com/v1/leads/validate

And:

GET https://api.verifigator.com/v1/leads/validate
This endpoint has the following input parameters:

INPUT PARAMETER TYPE DESCRIPTION
email_address String The email address of your lead you wish to be analyzed.
full_name String, optional The full name of your lead.
first_name String, optional The first name (i.e. the given name) of your lead.
last_name String, optional The last name (i.e. the family name) of your lead.

If you are adding leads which are not persons but organizations, you should use the full_name parameter to input the organization’s name. To ensure Verifigator detects the lead type correctly as an organization, you should use the full and official name of the organization, for example “Foobar Corporation” or “Foobar, Inc.” instead of “Foobar”.

For personal leads, feel free to include titles and other gender prefixes to the name data, such as full_name = “Mr. John Smith, Sr.”

This endpoint has the following output parameters:
OUTPUT PARAMETER TYPE DESCRIPTION
validation_id String An unique identifier of this validation event. If you wish to ask us about a specific validation, for example why a name was analyzed the way it was, please contact us and include the the validation_id of that validation.
email_address String The lead’s email address.
domain String The domainpart of the lead’s email address. For example, of email address “john.smith@gmail.com” the domainpart of the email address is “gmail.com”.
localpart String The localpart of the lead’s email address. For example, of email address “john.smith@gmail.com” the localpart of the email address is “john.smith”.
tld String The TLD of the lead’s email address. For example, of email address “john.smith@gmail.com” the TLD part of the email address is “com”.
valid Integer Either 0 or 1 to indicate whether the given data is valid in its entirety.
The value will be 1 if and only if email_address was provided and it is valid and full_name was provided and it is valid or first_name and last_name were provided and they are valid.
valid_tld Integer Either 0 or 1 to indicate whether the tld part of the provided email_address is valid.
valid_domain Integer Either 0 or 1 to indicate whether the domainpart of the lead’s email address is valid, that is, it has valid DNS records and is capable of receiving email.
valid_syntax Integer Either 0 or 1 to indicate whether the lead’s email address has a valid and common email address syntax.
valid_syntax_rfc Integer Either 0 or 1 to indicate whether the lead’s email address has a valid syntax according to the RFC specifications.
In a nutshell, valid_syntax_rfc is less strict compared to valid_syntax. Unless you are expecting your data to contain very exotic looking email addresses, you should only read the valid_syntax.
quality_rating Integer A value between 0 and 10 to indicate the quality of the given lead where 10 would indicate a lead of the highest quality. For more information, please see Lead Quality Rating.
role_account Integer Either 0 or 1 to indicate whether the lead’s email address is a so called role based email account.
For example, info@domain.com and office.newyork@company.com are role accounts while john.smith@domain.com or j.smith@company.com are not.
free_account Integer Either 0 or 1 to indicate whether the lead’s email address is a free email address.
For example, john.smith@gmail.com and j.doe@hotmail.com are free accounts and john.smith@company.com or j.doe@company.com are not.
disposable Integer Either 0 or 1 to indicate whether the lead’s email address is a so called disposable email address, also known as a one time use email address or a throwaway email address. Disposable email addresses are temporary email addresses that are used when one does not wish to give their real email address.
spamtrap Integer Either 0 or 1 to indicate whether the lead’s email address is a so called spamtrap email address. Spamtrap email addresses are automatically generated email addresses used to catch spammers. Basically, a web crawler would enter automatically generated email addresses to any web forms it finds online and monitor whether these emails would start to receive email. If email is received, the system knows from which website email originates and the website is reported as a spammer.
gender String Either M, F or N to indicate whether the lead is male, female or not applicable. For example, if the lead is an organization or a company, this field will contain N to indicate not applicable.
gender_probability Integer A value between 0 and 100 to indicate the probability of or confidence of the returned gender analysis result. A value of 100 would indicate the system is 100% confident of the validity of the returned gender analysis result.
geo_location String The ISO 3166 Alpha 2 country code of the country Verifigator guesstimates the lead to be from.
geo_location_name String The name of the country Verifigator guesstimates the lead to be from.
geo_probability Integer A value between 0 and 100 to indicate the confidence of the returned geo_location value.
geo_location_array Array An array of ISO 3166 Alpha 2 country codes Verifigator guesstimates the lead could be from.
geo_location_name_array Array An array of country names Verifigator guesstimates the lead could be from.
language String The ISO 639-1 language code of the language Verifigator guesstimates the lead to speak.
language_name String The name of the language Verifigator guesstimates the user to speak.
language_array Array An array of ISO 639-1 language codes Verifigator guesstimates the lead to understand.
language_probability Integer A value between 0 and 100 to indicate the confidence of the returned language_name analysis result.
language_name_array Array An array of language names Verifigator guesstimates the lead to understand.
lead_organization Integer Either 0 or 1 to indicate whether the lead seems to be a person or an organization. A value of 1 would indicate that the lead is an organization (legal entity) and not a person.
lead_name String The full name of the lead. The lead’s name can be extracted from the given lead data or the data can also originate from Verifigator Data Share (if enabled).
lead_firstname String The first name of the lead. The first name can be extracted from the given lead data or if the lead data does not contain lead’s first name, the data can also originate from Verifigator Data Share (if enabled).
lead_middlename String The middle name(s) of the lead. The middle name can be extracted from the given lead data or if the lead data does not contain lead’s middle name, the data can also originate from Verifigator Data Share (if enabled).
lead_lastname String The last name of the lead. The last name can be extracted from the given lead data or if the lead data does not contain lead’s last name, the data can also originate from Verifigator Data Share (if enabled).
lead_nameprefix String The name prefix(es) of the lead.
For example, if lead’s full name would be “Mr. John Smith”, the lead_nameprefix would be “Mr.”
lead_namesuffix String The name suffix(es) of the lead.
For example, if lead’s full name would be “John Smith Sr.”, the lead_namesuffix would be “Sr.”
lead_name_ascii String The full name of the lead transliterated into Latin A to Z characters. For example, if the lead’s name is “François Bérubé”, the lead_name_ascii would contain “Francois Berube”. The transliteration engine supports most languages and encoding systems, such as Chinese, Japanese, Korean, Thai, Cyrillic, Greek, Hebrew and Arabic.
lead_firstname_ascii String The first name of the lead transliterated into Latin A to Z characters if the lead’s first name contains non A to Z characters.
lead_middlename_ascii String The middle name(s) of the lead transliterated into Latin A to Z characters if the lead’s middle name(s) contain non A to Z characters.
lead_lastname_ascii String The last name of the lead transliterated into Latin A to Z characters if the lead’s last name contains non A to Z characters.
data_share_enabled Integer A value of 0 or 1 to indicate whether Verifigator Data Share was enabled for this API call. The feature is disabled by default and can be enabled from the List Manager Settings. If enabled, the name data of leads are shared between other Verifigator users who also have the Data Share enabled.
auto_add_enabled Integer A value of 0 or 1 to indicate whether the lead was automatically added to user’s leads list. Using the HTTP POST method turns the auto_add_enabled on for the call and using HTTP GET method turns it off for the call.
reasoning String A comma separated list of reasoning tags relating to the validation of the lead.
lead_id Integer Contains the unique lead_id of this lead, in case it was added to the user’s lead list, otherwise returns 0.
auto_tags String A comma separated list of tags Verifigator automatically assigns to this lead.
api_reference String The API reference version used to process this call. Should be “v1” to indicate the first generation API.
api_server String The name of the API server that handled this request.
api_version String The version string of the API server that handled this request.
api_call_id String An unique ID of this API call. In the case you wish to discuss with us about the result of this API call, please cite this ID in your message and we can find the data from our logs.
api_calls_remaining Integer The number of API calls still available to be made with the used API key this month. You can also see the remaining API calls from My Account.
response_time Float The number of seconds Verifigator’s API took to process your request.
Note: An email address is considered valid if it has correct syntax per the RFC technical specification, its domain is valid and its domain is capable of receiving email. In other words, the API will return valid = 1 for email address such as “this.is.fake.email@gmail.com” as this email address is technically valid.
However, depending on your application, you most likely do not wish to accept such technically valid yet most likely invalid email addresses. To detect such probably invalid email addresses, please use the quality_rating output parameter.
To test, simply run this in your terminal:
The response of the above API call would be something like this:

{
   "validation_id": "vb7a45b3a22bcc82ab6990f730444b6522e4d374f",
   "email": "fake@notreal.com",
   "domain": "notreal.com",
   "localpart": "fake",
   "tld": "com",
   "valid": 1,
   "valid_tld": 1,
   "valid_domain": 1,
   "valid_syntax": 1,
   "valid_syntax_rfc": 1,
   "quality_rating": 0,
   "role_account": 0,
   "free_account": 0,
   "disposable": 0,
   "spamtrap": 0,
   "gender": "M",
   "gender_probability": "80%",
   "language": "en",
   "language_name": "English",
   "language_array": {
   	"en": "93.72%",
   	"hi": "6.28%"
   },
   "language_name_array": {
   	"English": "93.72%",
   	"Hindi": "6.28%"
   },
   "language_probability": "93.72%",
   "geo_location": "US",
   "geo_location_name": "United States of America",
   "geo_location_array": {
   	"US": "93.14%",
   	"IN": "6.86%"
   },
   "geo_location_name_array": {
   	"United States of America": "93.14%",
   	"India": "6.86%"
   },
   "geo_probability": "93.14%",
   "lead_organization": 0,
   "lead_name": "Mr Fake",
   "lead_firstname": "Fake",
   "lead_middlename": "",
   "lead_lastname": "",
   "lead_nameprefix": "Mr",
   "lead_namesuffix": "",
   "lead_name_ascii": "Mr Fake",
   "lead_firstname_ascii": "Fake",
   "lead_middlename_ascii": "",
   "lead_lastname_ascii": "",
   "data_share_enabled": 0,
   "auto_add_enabled": 0,
   "reasoning": "NAME_UNCOMMON_FIRST_NAME, NAME_UNCOMMON, NAME_VERY_UNCOMMON, LEAD_SPECIAL_BAD_WORDS, LEAD_SPECIAL_UNLIKELY, SYNTAX_VALID, DOMAIN_VALID_TLD, DOMAIN_VALID, QUALITY_WORST, RESULT_VALID",
   "lead_id": 0,
   "auto_tags": "English, Invalid Lead, Male, Suspect Lead, USA",
   "success": 1,
   "api_reference": "v1",
   "api_server": "production",
   "api_version": "1.1.7.5",
   "api_call_id": "c86abcb753273cdc44551047458fbd75c964f2739",
   "api_calls_remaining": 1498813,
   "response_time": 0.10541
}

[POST] leads – Adds a new lead or leads to the list

Entrypoint:
POST https://api.verifigator.com/v1/leads
This endpoint has the following input parameters:

INPUT PARAMETER TYPE DESCRIPTION
data String The data of a lead you wish to add to the list. The data can be a single lead, multiple leads or an URI of a file for the API Server to download and parse.
This endpoint has the following output parameters:
OUTPUT PARAMETER TYPE DESCRIPTION
leads_array Array An array containing the lead_ids of the leads which were imported during this API call. Do notice that if you are importing a lot of data, this array will contain the leads which were imported during the time this response was sent to you. If the status field does not say “completed“, not all leads have yet been imported.
leads_count Integer The number of leads imported during this API call.
status String A status of the lead import operation. Can have values of either “downloading”, “analyzing”, “completed” or “error”. In the case of “completed” is returned, the returned leads_array is final, i.e. the import operation was completed during this API call. A status of “downloading” means the API server is still in the process of downloading the leads data you provided, e.g. by sending an URL of a file containing leads to import. A status of “analyzing” means the leads data has been received by the API server and it is currently parsing and analyzing the data.
progress Integer The progress of the import operation in per cent, from 0 to 100. A value of 100 means the operation has completed.
import_id String An unique ID that allows you to call the status/import/{import_id} endpoint to ask the server when this import operation has completed, in the case it did not yet complete (i.e. the returned status parameter says “working”).

The input data can be in any text-only format, such as “John Smith, johnsmith@example.com” or in case of multiple leads “John Smith, johnsmith@example.com; Jane Doe, janedoe@domain.com” and so forth. In the case you want the API Server to download a file and analyze its content, only pass the URL as the input data, such as “https://domain.com/data/leads.csv”. The data file can be in any text-only file format such as CSV, SQL, XML, YAML or JSON with the CSV data format with one lead per row recommended, or such file compressed by zip. If the data file is compressed, it must be indicated with a “.zip” file extension. You can only pass one URL as the input data at one time. The input data file should be encoded with UTF-8 encoding.

NOTE: If you are importing only one lead, you can assume the lead import has been completed by the time the API returns its response. However, if you are importing many leads, you must take into account a delay of the API Server analyzing and processing your data. The API call will return an import_id parameter in its result array, you can use this import_id with /status/import/{import_id} API call to see the status of the import operation.

/status/lead call is always idempotent, meaning you can make the same API call multiple times with the same data but duplicate data is never added to the server.

To test, simply run this in your terminal:
The response of the above API call would be something like this:

{
   "leads_array": [
   	"3114489"
   ],
   "leads_count": 1,
   "status": "completed",
   "progress": 100,
   "import_id": "x1bc1ebabe814a85132c642ca25367068f85f0151",
   "success": 1,
   "api_reference": "v1",
   "api_server": "production",
   "api_version": "1.1.7.5",
   "api_call_id": "c12684c2ccea526e17ab5b1c845c99d2e70d1a913",
   "api_calls_remaining": 1498812,
   "response_time": 0.19426
}
There are two noteworthy parameters in this response. Firstly, the [leads_array] contains the lead_id’s of every lead that was imported. In this case, only one lead was imported and its lead_id = 3114489. Secondly, as discussed earlier, the lead import operation can have a delay. In case the status returning any other value than “completed”, you can use the returned import_id parameters to ask the server the current status of the import operation. This is especially important when importing a lot of data using the URL import feature.

[GET] leads/{lead_id} – Retrieves data of the given lead_id or lead_ids

Endpoint:
GET https://api.verifigator.com/v1/leads/{lead_id}

Also:

GET https://api.verifigator.com/v1/leads/{lead_id1},{lead_id2},...
This endpoint has the following input parameters:

INPUT PARAMETER TYPE DESCRIPTION
lead_id Integer The unique lead_id of the lead whose data you wish to retrieve, OR a comma separated list of lead_id’s. Note: if the given lead_id = 0, the API returns information of the most recently added lead from the lead list.
This endpoint has the following output parameters:
OUTPUT PARAMETER TYPE DESCRIPTION
leads_array Array Contains the Standard Leads Data of each returned lead.
leads_count Integer The number of leads returned in the leads_array

The Standard Leads Data

All API calls which return an array of leads data from the user’s leads list, return the data in the form of leads_array which contains the following fields:

OUTPUT PARAMETER TYPE DESCRIPTION
lead_id Integer An unique id of the lead.
owner_id Integer An unique id of the lead’s owner.
email String Lead’s email address.
lead_quality Integer An integer between 0 to 10 which indicates the quality of this lead according to Verifigator’s analysis.
A value of 10 being the highest quality lead and 0 being the lowest quality. For more information please see Lead Quality Rating.
name String Lead’s full name.
firstname String Lead’s first name, if applicable.
lastname String Lead’s last name, if applicable.
type String Value of either M, F, C or N to indicate whether the lead is male, female, a legal entity (company or organization) or not applicable.
country_code String The ISO 3166 Alpha 2 country code of the country Verifigator guesstimates the lead to be from.
language_code String The ISO 639-1 language code of the language Verifigator guesstimates the lead to speak.
country String The name of the country Verifigator guesstimates the lead to be from.
language String The name of the country Verifigator guesstimates the lead to be from.
tags_array Array An array of tags assigned to this lead. The array is in format of tag_id => tag name.
tags_meta_array Array An array of tags containing more information of each of the tags relating to this lead.

Note: The endpoint also supports returning the data of multiple leads at the same time.

To test, please run this in your terminal:
The response of the above API call would be something like this:

{
   "leads_array": {
   	"3810724": {
   		"lead_id": 3810724,
   		"owner_id": 9,
   		"email": "john.jackson@gmail.com",
   		"lead_quality": 8,
   		"name": "John Jackson",
   		"firstname": "John",
   		"lastname": "Jackson",
   		"type": "M",
   		"country_code": "US",
   		"language_code": "en",
   		"name_ascii": "",
   		"country": "United States of America",
		"language": "English",
   		"tags_array": {
   			"16": "English",
   			"17": "Usa",
   			"22": "Male",
   			"37": "High Quality Lead",
   			"40": "Free Email Account",
				
   		},
		"tags_meta_array": {
   			"16": {
   				"tag_id": 16,
   				"tag_name": "English",
   				"builtin_tag": 1
   			},
   			"17": {
   				"tag_id": 17,
   				"tag_name": "Usa",
   				"builtin_tag": 1
   			},
   			"22": {
   				"tag_id": 22,
   				"tag_name": "Male",
   				"builtin_tag": 1
   			},
   			"37": {
   				"tag_id": 37,
   				"tag_name": "High Quality Lead",
   				"builtin_tag": 1
   			},
   			"40": {
   				"tag_id": 40,
   				"tag_name": "Free Email Account",
   				"builtin_tag": 1
   			},
   		}
   	}
   },
   "leads_count": 1,
   "success": 1,
   "api_reference": "v1",
   "api_server": "production",
   "api_version": "1.1.7.5",
   "api_call_id": "c50f284ec56f7624c0d4c728cfa4b8cacfdbd97f0",
   "api_calls_remaining": 1498799,
   "response_time": 0.03444
}

[DELETE] leads/{lead_id} – Deletes a lead by the given lead_id or deletes multiple leads by the given lead_ids

Endpoint:
DELETE https://api.verifigator.com/v1/leads/{lead_id}

And:

DELETE https://api.verifigator.com/v1/leads/{lead_id1},{lead_id2},...
This endpoint has the following input parameters:

INPUT PARAMETER TYPE DESCRIPTION
lead_id Integer The unique lead_id of the lead whose data you wish to delete from the user’s lead list.
This endpoint has the following output parameters:
OUTPUT PARAMETER TYPE DESCRIPTION
leads_array Array An array whose keys match the given lead_id(s) and the value matches a HTTP status code relating to the delete operation of the specific lead_id. For example, should the first row of the array be [12345] => 200, that means that the lead_id 12345’s delete operation returned status code 200, which means the operation was completed successfully.

The endpoint also supports deleting the data of multiple leads at the same time.

To test, simply run this in your terminal (NOTE: This sample call assumes you have a lead with lead id 12345. If you do not, it will return an error about the lead not found.):
The response of the above API call would be something like this:

{
   "leads_array": {
   	"12345": 200
   },
   "leads_count": 1,
   "success": 1,
   "api_reference": "v1",
   "api_server": "production",
   "api_version": "1.1.7.5",
   "api_call_id": "c1917f14e496a389a98a229eeed630b775bfeb782",
   "api_calls_remaining": 1498799,
   "response_time": 0.13248
}

The response’s lead_array contains the HTTP status code for each lead asked to be deleted during this delete operation. HTTP status code of 200 would mean the lead was deleted successfully, 404 would mean the lead was not found etc.

[GET] leads – Retrieves the data of matching leads

Endpoint:
GET https://api.verifigator.com/v1/leads/
This endpoint has the following input parameters:

INPUT PARAMETER TYPE DESCRIPTION
search String, optional A search phrase. If given, only the leads matching the search phrase are returned.
tags Array, optional An array containing the names of tags. If given, only the leads with these tags are returned.
full_data Boolean, optional Determines whether you wish to receive the full lead data as the result of the API call, or only an array of the matching lead_ids. By default, full lead data is returned.
quality String, optional If given, only the leads matching the given Quality Rating are returned. The quality parameter must be in format of ‘x-z’ where x is the minimum quality and z is the maximum quality. For example, if quality = ‘4-8’, only leads with a quality rating of 4, 5, 6, 7 or 8 are returned.
limit String, optional If given, defines the maximum number of leads returned. Similar to the LIMIT clause of MySQL. Thus, for example if limit = ’10’, a maximum of 10 leads will be returned. If limit = ’15, 20′ a maximum of 20 leads is returned, starting with offset 15.

In the case of no search parameter and no tags are given, the API call will return all leads from the user’s list. In the case of both input parameters are given, a lead must match both the search phrase and contain the specified tags in order to be returned.

This endpoint has the following output parameters:
OUTPUT PARAMETER TYPE DESCRIPTION
lead_id Integer An unique id of the lead.
owner_id Integer An unique id of the lead’s owner.
email String Lead’s email address.
lead_quality Integer An integer between 0 to 10 which indicates the quality of this lead according to Verifigator’s analysis.
A value of 10 being the highest quality lead and 0 being the lowest quality.
name String Lead’s full name.
firstname String Lead’s first name, if applicable.
name_ascii String If the lead’s name contains non A to Z characters, this field will contain the lead’s name transliterated to ASCII characters. If the name is in ASCII already, this field will be empty.
lastname String Lead’s last name, if applicable.
type String Value of either M, F, U, C, or N to indicate whether the lead is Male, Female, person with an unisex (gender neutral) name, Corporation / organization, or Not applicable.
country_code String The ISO 3166 Alpha 2 country code of the country Verifigator guesstimates the lead to be from.
language_code String The ISO 639-1 language code of the language Verifigator guesstimates the lead to speak.
country String The name of the country Verifigator guesstimates the lead to be from.
language String The name of the country Verifigator guesstimates the lead to be from.
tags_array Array An array of tags assigned to this lead.
tags_meta_array Array An array providing information of each tag assigned to this lead, such as whether each tag is a built-in tag (i.e. a tag automatically assigned to this lead by Verifigator), or a user specified tag.
leads_count Integer The number of leads returned by this call.
leads_count_query Integer The number of leads matching the search criteria. For example, if you use limit = 50 and 75 leads match the search criteria, leads_count would be 50 and leads_count_query would be 75.
leads_count_all Integer The total number of leads owned by this user.

The endpoint can be used for listing leads from user’s lead list. All the input parameters of the endpoint are optional. If no input parameters are provided, the API call will return full data of all the leads in user’s list. If input parameter (i.e. search or tags) is provided, only leads matching the input parameters are returned.

To test, simply run this in your terminal:
The response of the above API call would be something like this:

{
    "leads_array": {
         12356: {
               "lead_id": 12356,
               "owner_id": 3,
               "email": "john.smith123@gmail.com",
               "lead_quality": 9,
               "name": "John Smith",
               "firstname": "John",
               "lastname": "Smith",
               "type": "M",
               "country_code": "US",
               "language_code": "en",
               "country": "United States of America",
               "language": "English",
               "tags_array": {
		   "1": "Excellent Quality Lead",
		   "5": "Male",
		   "9": "Free Email Account",
		   "16": "English",
		   "17": "Usa",
		   "550": "Imported On Mar\/2018 30th"
		},
                "tags_meta_array": {
		   "1": {
		   "tag_id": 1,
		   "tag_name": "Excellent Quality Lead",
		   "builtin_tag": 1
		},
		"5": {
		   "tag_id": 5,
		   "tag_name": "Male",
		   "builtin_tag": 1
		},
		"9": {
		   "tag_id": 9,
		   "tag_name": "Free Email Account",
		   "builtin_tag": 1
		},
		"16": {
		   "tag_id": 16,
		   "tag_name": "English",
		   "builtin_tag": 1
		},
		"17": {
		   "tag_id": 17,
		   "tag_name": "Usa",
		   "builtin_tag": 1
		},
		"550": {
		   "tag_id": 550,
		   "tag_name": "Imported On Mar\/2018 30th",
		   "builtin_tag": 1
		}
            }
        },

    "leads_count": 1,
    "leads_count_all": 290,
    "success": 1,
    "api_reference": "v1",
    "api_server": "production",
    "api_version": "1.1.7.5",
    "api_call_id": "ca95d035d1c8beefbe9fb1d25a031de5ee4209c23",
    "api_calls_remaining": 99865,
    "response_time": 0.22534
}

[PUT] leads/{lead_id} – Updates lead’s data

Endpoint:
PUT https://api.verifigator.com/v1/leads/{lead_id}
This endpoint has the following input parameters:

INPUT PARAMETER TYPE DESCRIPTION
lead_id Integer The unique lead_id of the lead whose data you wish to modify.
update_field String Name of the lead’s data field you wish to update. The possible values are: firstname, lastname, name, email, country, language, type, tags.
new_value String / Array The new value you wish to set for the field name. In the case the update_filed is “tags”, the new_value is the new tags data as an array.
This endpoint has the following output parameters:
OUTPUT PARAMETER TYPE DESCRIPTION
update_array Array An array containing the lead_id as they key and the result of the update operation as the values. A response code of 200 means the update operation was successful, any other value will be a relating HTTP error code.

Important notes

Updating lead’s data can lead to unintuitive results. Please read this section carefully if your application is going to update lead’s data.

User’s lead list cannot contain duplicate email address. Thus, if user attempts to change a lead’s email address and the new email address already exists in the user’s lead list, the API call will fail and an error is returned. Furthermore, there are basic validation checks performed of the new data and if the new data is invalid, the API call will fail and an error is returned. For example, the system requires each email address to contain the @ character, if you have a lead “John Smith, john.smith@gmail.com” and you attempt to update its email address to “john.smithgmail”, the update call fails and the API will return an error.

After a lead is updated, Verifigator will automatically re-analyze its data. For example, if you add a lead “John Smith, john.smith@gmail.com” to your lead list, it is added as a lead to your list with the specific properties as analyzed by Verifigator, such as having a gender of male etc. If you would later update this lead’s name to, say, “Jonathan Smith”, the lead would be re-analyzed and the lead’s tags are updated accordingly.

Verifigator will always obey the user made edits over any analysis results of its own. For example, let’s say you add a lead “John Smith, john.smith@gmail.com” to your lead list. It gets analyzed by Verifigator to be a male. Let’s say you then edit the lead by changing the lead’s gender from male to female. This would cause the lead’s tags to be updated – the male tag is removed and female tag is added. However, should you then edit the same lead again, this time changing the lead’s name from “John Smith” to “Jonathan Smith”, the lead would still remain as a female lead. This is because Verifigator remembers you originally edited this lead to have a gender of a female, thus, even if you later change the lead’s name, Verifigator sees that the name of the lead looks like a male’s name, yet as you previously said this is a female lead, Verifigator will treat this as a female lead.

To test, simply run this in your terminal:

Note: The above sample call assumes you have a lead with lead_id = 12345 in your list! Please update the lead_id to a valid lead_id before making the call.

The response of the above API call would be something like this:

{
   "update_array": {
   	"12345": 200
   },
   "success": 1,
   "api_reference": "v1",
   "api_server": "production",
   "api_version": "1.1.7.5",
   "api_call_id": "c54bc9991c877a08fb2be499c18cf1e2e77749de0",
   "api_calls_remaining": 7975093,
   "response_time": 0.22534,
}
To test updating of lead’s tags, simply run this in your terminal to add tags:

Note: The above sample call assumes you have a lead with lead_id = 12345 in your list! Please update the lead_id to a valid lead_id before making the call.

To test updating of lead’s tags, simply run this in your terminal to remove tags:

[GET] leads/export – Exports leads from the user’s lead list to a file

Endpoint:
GET https://api.verifigator.com/v1/leads/export
This endpoint has the following input parameters:

INPUT PARAMETER TYPE DESCRIPTION
search String, optional A search phrase. If given, only the leads matching the search phrase are exported.
tags Array, optional An array containing the names of tags. If given, only the leads with these tags are exported.
format String The desired file format of the exported data. Please call the API endpoint GET status/export/ for the list of currently supported data formats.
columns String, optional A list of the columns user wishes to export. If not specified, all the possible data columns will be exported. Please call the API endpoint GET status/export/ for the list of currently supported columns.
quality String, optional If given, only the leads matching the given Quality Rating are exported. The quality parameter must be in format of ‘x-z’ where x is the minimum quality and z is the maximum quality. For example, if quality = ‘4-8’, only leads with a quality rating of 4, 5, 6, 7 or 8 are returned.
limit String, optional If given, defines the maximum number of leads exported. Similar to the LIMIT clause of MySQL. Thus, for example if limit = ’10’, a maximum of 10 leads will be exported. If limit = ’15, 20′ a maximum of 15 leads is returned, starting with offset 20.

In the case of no search parameter and no tags are given, the API call will export all leads from the user’s list. In the case of both input parameters are given, a lead must match both the search phrase and contain the specified tags in order to be included to the export.

This endpoint has the following output parameters:
OUTPUT PARAMETER TYPE DESCRIPTION
export_id String An unique id of the created export operation. This export_id can be used with endpoint GET status/export/{export_id} to retrieve the current status of the export operation.
uri String An URL from where the exported data can be downloaded after the export operation has completed. Warning: Do not attempt to access the file before the export operation has completed.
lead_count Integer Contains the estimated number of leads which will be exported in this export operation.
To test, simply run this in your terminal:
The response of the above API call would be something like this:

{
    "export_id": "z14f99f7015ebba9914eae52e939b8a2ece797cbb",
    "uri": "https:\/\/api.verifigator.com\/list_manager\/export\/2018_20_4_z14f99f7015ebba9914eae52e939b8a2ece797cbb.csv",
    "success": 1,
    "api_reference": "v1",
    "api_server": "production",
    "api_version": "1.1.7.5",
    "api_call_id": "cad15c67b48c823254d4b901d51632c3772ff5dad",
    "api_calls_remaining": 99865,
    "response_time": 0.22534
}

Note: The return value does not indicate anything regarding the status of the export operation. When you receive the response, the export operation may have already completed or it may still be in processing. To query whether the export operation has been completed, please call GET /status/export/{export_id}

Note: In the case the export operation does not find any leads to export (i.e. user has zero leads in their list, OR a set of search terms or tags or other input criteria was given and no matching leads are found) the call will return error 404, with a message of “No leads found!”.

[GET] status – Retrieves information of the API Server

Endpoint:
GET https://api.verifigator.com/v1/status
This endpoint has the following input parameters:

INPUT PARAMETER TYPE DESCRIPTION
limit Integer, optional The maximum number of response times returned.
This endpoint has the following output parameters:
OUTPUT PARAMETER TYPE DESCRIPTION
response_times_array Array An array containing the average response times of the API. Each array element contains two fields, first the average response time in milliseconds and secondly the number of minutes passed from the moment the response time was measured. For example, a response of “[2] = 166, [12] = 210” would mean that the average response time of the server 2 minutes ago was 166 msec and 12 minutes ago the average response time was 210 msec.
server_message String Message from the server. In case our developers want to say hi to you or report any API related messages to you, such as scheduled downtime.
system_load Integer An integer value between 0 and 100 indicating the current load of the API Server, where 0 means the server is completely idle and 100 means extremely high traffic.
To test, simply run this in your terminal:
The response of the above API call would be something like this:

{
   "response_times_array": {
   	"9": 90,
   	"19": 60,
   	"29": 58,
   	"39": 59
   },
   "server_message": "",
   "system_load": 0,
   "pending_imports": 0,
   "pending_exports": 0,
   "pending_analysis": 0,
   "success": 1,
   "api_reference": "v1",
   "api_server": "production",
   "api_version": "1.1.7.5",
   "api_call_id": "c1d41229a12f01c24a0410ea5f59a6131323f24a0",
   "api_calls_remaining": 1498732,
   "response_time": 0.02456
}

[GET] summary – Retrieves information of the user account

Endpoint:
GET https://api.verifigator.com/v1/summary
This endpoint has the following input parameters:

INPUT PARAMETER TYPE DESCRIPTION
tags Array, optional An array of tags of the leads whose data you wish to receive. If none provided, the data relating to all of user’s leads is returned.
This endpoint has the following output parameters:
OUTPUT PARAMETER TYPE DESCRIPTION
lead_count Integer The number of leads in user’s leads list.
lead_quality_count_array Array An array which contains keys from 10 to 0, representing the Quality Rating values with the number of leads with that Quality Rating as the array value. That is, an array of [10] => 65 would mean that user’s lead list contains 65 leads with a Quality Rating of 10.
lead_ratings_count_array Array An array which contains the number of leads per each lead quality rating string. For example, a value of “high_quality_lead”: 7 would mean that the user’s lead list contains 7 leads with a “High Quality Lead” rating.
list_quality Float A floating point number from 0 to 100 with two decimals, containing the quality rating of the user’s lead list as a whole with a higher value meaning a higher quality list.
estimated_bounce_rate String (per cent) A per cent value of the estimated bounce rate of the lead list. That is, should you send an email to every lead of this lead list, how many of those emails would bounce.
estimated_delivery_rate String (per cent) A per cent value of the estimated delivery rate of the lead list. That is, should you send an email to every lead of this lead list, how many of those emails would be successfully delivered to the lead. Notice that the estimated_delivery_rate, estimated_bounce_rate and list_quality values can only be calculated if the user’s lead list contains enough data.
lead_tags_array Array An array containing all the tags assigned to the user’s leads.
lead_tags_count_array Array An array containing information of how many times each tag exists in the user’s lead list
tags_count Integer The number of different, unique tags in the user’s lead list.
tags_custom_count Integer The number of different, unique custom tags in the user’s lead list. A custom tag means a tag created by the user, not automatically created by Verifigator.
pending_lead_imports Integer The number of currently pending lead import operations of the user. That is, how many import operations are either currently being processed or waiting to be processed. Do notice that if you are importing a file with 1000 leads, that is still counted as only one import operation.
pending_lead_exports Integer The number of currently pending lead export operations of the user. That is, how many export operations are either currently being processed or waiting to be processed .Do notice that if you are exporting 1000 leads, that is still counted as only one export operation.
pending_import_id String The import_id of the currently pending lead import operation. A value of “n/a” is returned if no operation is pending. In the case of multiple pending operations, the id of the most recently created operation is returned.
pending_export_id String The export_id of the currently pending lead import operation. A value of “n/a” is returned if no operation is pending. In the case of multiple pending operations, the id of the most recently created operation is returned.
membership_plan String The name of your currently active membership plan.
membership_package String The name of your last purchased membership package. A plan means a monthly subscription which gives you a certain number of API calls you can use per month. A package means a one time purchase you can use to buy more API calls.
membership_plan_id Integer The numeric ID of your currently active membership plan type.
membership_package_id Integer The numeric ID of your last purchased membership package.
To test, simply run this in your terminal:
The response of the above API call would be something like this:

{
  "lead_count": 20,
  "lead_quality_count_array": {
  	"10": 0,
  	"9": 11,
  	"8": 6,
  	"7": 1,
  	"6": 0,
  	"5": 1,
  	"4": 0,
  	"3": 0,
  	"2": 0,
  	"1": 0,
  	"0": 1
  },
  "lead_ratings_count_array": {
  	"excellent_quality_lead": 11,
  	"high_quality_lead": 7,
  	"medium_quality_lead": 1,
  	"low_quality_lead": 0,
  	"invalid_lead": 1
  },
  "list_quality": 81.36,
  "estimated_bounce_rate": "4.75%",
  "estimated_delivery_rate": "95.25%",
  "lead_tags_array": [
  	"auto added",
  	"english",
  	"excellent quality lead",
  	"female",
  	"free email account",
  	"german",
  	"germany",
  	"high quality lead",
  	"imported on apr\/2018 15th",
  	"imported on apr\/2018 17th",
  	"imported on apr\/2018 18th",
  	"imported on apr\/2018 22nd",
  	"imported on apr\/2018 23rd",
  	"imported on apr\/2018 2nd",
  	"imported on apr\/2018 3rd",
  	"imported on apr\/2018 4th",
  	"imported on apr\/2018 5th",
  	"imported on mar\/2018 28th",
  	"imported on mar\/2018 29th",
  	"imported on mar\/2018 30th",
  	"invalid lead",
  	"male",
	"medium quality lead",
	"organization",
  	"partial lead name",
  	"poland",
  	"polish",
  	"role account",
  	"suspect lead",
  	"swaziland",
  	"sweden",
  	"swedish",
  	"thai",
  	"thailand",
  	"united kingdom",
  	"unknown lead type",
  	"usa"
  ],
  "lead_tags_count_array": {
  	"free email account": 17,
  	"english": 14,
  	"male": 13,
  	"usa": 12,
  	"excellent quality lead": 11,
  	"high quality lead": 7,
  	"female": 4,
  	"imported on apr\/2018 18th": 4,
  	"imported on mar\/2018 28th": 3,
  	"partial lead name": 3,
  	"imported on mar\/2018 30th": 2,
  	"auto added": 2,
  	"role account": 2,
  	"organization": 2,
  	"thai": 2,
  	"thailand": 2,
  	"imported on mar\/2018 29th": 2,
  	"germany": 2,
  	"german": 2,
  	"imported on apr\/2018 4th": 2,
  	"sweden": 1,
  	"swaziland": 1,
  	"swedish": 1,
  	"united kingdom": 1,
  	"unknown lead type": 1,
  	"suspect lead": 1,
  	"imported on apr\/2018 15th": 1,
  	"polish": 1,
  	"imported on apr\/2018 2nd": 1,
  	"invalid lead": 1,
  	"imported on apr\/2018 3rd": 1,
  	"medium quality lead": 1,
  	"imported on apr\/2018 23rd": 1,
  	"imported on apr\/2018 5th": 1,
  	"poland": 1,
  	"imported on apr\/2018 22nd": 1,
  	"imported on apr\/2018 17th": 1
  },
  "tags_count": 37,
  "pending_lead_imports": "0",
  "pending_lead_exports": "0",
  "pending_import_id": "n\/a",
  "pending_export_id": "n\/a",
  "membership_plan": "free",
  "membership_package": "none",
  "membership_plan_id": 1,
  "membership_package_id": 0,
  "success": 1,
  "api_reference": "v1",
  "api_server": "production",
  "api_version": "1.1.9.6",
  "api_call_id": "ccd7457351a02891f3763386c45b2121901c81676",
  "api_calls_remaining": 1498730,
  "response_time": 0.14623
}

[GET] status/export – Retrieves information of the available lead export options

Endpoint:

GET https://api.verifigator.com/v1/status/export

This endpoint has no input parameters.

This endpoint has the following output parameters:

OUTPUT PARAMETER TYPE DESCRIPTION
formats_array Array Contains an array of all the currently supported lead export data formats.
columns_array Array Contains an array of all the currently supported columns that user can choose to export.

To test, simply run this in your terminal:

The response of the above API call would be something like this:


{
   "formats_array": [
    "csv"
   ],
   "columns_array": [
    "fullname",
    "firstname",
    "lastname",
    "fullname_ascii",
    "firstname_ascii",
    "lastname_ascii",
    "email",
    "type",
    "quality",
    "country_code",
    "language_code",
    "tags"
   ],
   "success": 1,
   "api_reference": "v1",
   "api_server": "production",
   "api_version": "1.1.7.5",
   "api_call_id": "ce123a292c2008de7494a6bd77c270152fc27ffc0",
   "api_calls_remaining": 1498732,
   "response_time": 0.02156

}

[GET] status/export/{export_id} – Retrieves information of the given export operation

Endpoint:
GET https://api.verifigator.com/v1/status/export/{export_id}
And:
GET https://api.verifigator.com/v1/status/export/0
This endpoint has the following input parameters:

INPUT PARAMETER TYPE DESCRIPTION
export_id String The unique export_id of the export operation whose status you wish to retrieve. The export_id is returned by the API call used to start the export operation.

Tip: If you call this endpoint with an export_id of ‘0’, the API will return the information of the last (most recent) export operation.

This endpoint has the following output parameters:
OUTPUT PARAMETER TYPE DESCRIPTION
export_id String The unique export_id of the export operation.
user_id Integer The unique user_id of the owner of the export operation.
status String A string value of the current status of the operation. Possible values are: “working”, “completed”, “error” and “aborted”.
progress Float A floating point number between 0 and 100 indicating the current progress of the operation as a per cent. A value of 100 means the operation has been completed.
filename String An URL of the exported data file. Note: This parameter will be empty until the export operation has completed.
To test, simply run this in your terminal:
NOTE: The sample API call uses the special case of /status/export/0 where the API will return the information of the last (most recent) export operation. Normally you would want to call this by /status/export/{export_id}.
The response of the above API call would be something like this:

{
   "export_id": "abc123",
   "uri": "https:\/\/api.verifigator.com\/list_manager\/export\/2018_04_23_9_abc123.csv",
   "user_id": 3,
   "status": "completed",
   "progress": 100,
   "success": 1,
   "api_reference": "v1",
   "api_server": "production",
   "api_version": "1.1.7.5",
   "api_call_id": "cad15c67b48c823254d4b901d51632c3772ff5dad",
   "api_calls_remaining": 1498732,
   "response_time": 0.11829
}

[GET] status/import/{import_id} – Retrieves information of the given import operation

Endpoint:
GET https://api.verifigator.com/v1/status/import/{import_id}

And:

GET https://api.verifigator.com/v1/status/import/0
This endpoint has the following input parameters:

INPUT PARAMETER TYPE DESCRIPTION
import_id String The unique import_id of the export operation whose status you wish to retrieve. The import_id is returned by the API call used to start the import operation.

Tip: If you call this endpoint with an import_id of ‘0’, the API will return the information of the last (most recent) import operation.

This endpoint has the following output parameters:
OUTPUT PARAMETER TYPE DESCRIPTION
import_id String The unique import_id of the import operation.
user_id Integer The unique user_id of the owner of the import operation.
status String A string value of the current status of the operation. Possible values are: “waiting to download”, “downloading”, “analyzing”, “completed”, “error” and “aborted”.
progress Float A floating point number between 0 and 100 indicating the current progress of the operation as a per cent. A value of 100 means the operation has been completed.
leads_count Integer The number of leads imported. If the operation is still in progress
this parameter tells you how many leads have been imported so far. If the operation has completed, this parameter tells how many leads were imported in total.
leads_pending Integer The number of leads still pending analysis. If the operation is still in progress
this parameter tells you how many leads are still in queue, waiting to be analyzed.
download_time Integer The number of seconds it took for the API Server to download the data to be imported.
analysis_time Integer The number of seconds it took for the API Server to analyse the imported data.
To test, simply run this in your terminal:
NOTE: The sample API call uses the special case of /status/import/0 where the API will return the information of the last (most recent) import operation. Normally you would want to call this by /status/export/{import_id}.
The response of the above API call would be something like this:

{
   "import_id": "xafe08321afa541a07e328881c14b88fbc2e36151",
   "user_id": 9,
   "status": "completed",
   "progress": 100.00000,
   "leads_count": 1,
   "leads_pending": 0,
   "download_time": 0,
   "analysis_time": 122,
   "analysis_speed": "1 leads per minute",
   "analysis_time_remaining": "0 minutes",
   "import_message": "Imported 1 leads in 1 minutes!",
   "success": 1,
   "api_reference": "v1",
   "api_server": "production",
   "api_version": "1.1.7.5",
   "api_call_id": "c70a0e9fdbe74f04cdb079298d72d1e416b9d8d14",
   "api_calls_remaining": 1498732,
   "response_time": 0.05007
}

[DELETE] export/{export_id} – Aborts an ongoing lead export operation

Endpoint:
DELETE https://api.verifigator.com/v1/leads/export/{export_id}
This endpoint has the following input parameters:

INPUT PARAMETER TYPE DESCRIPTION
export_id String The unique export_id of the export operation whose status you wish to retrieve. The export_id is returned by the API call used to start the export operation.
This endpoint has the following output parameters:
OUTPUT PARAMETER TYPE DESCRIPTION
export_id Array The unique export_id of the export operation and the matching status code.
To test, simply run this in your terminal:
NOTE: The sample API call assumes you have an export operation with an export_id of abc123. If you run the sample API call without editing the export_id, it will return an error 404 of export operation not found!
The response of the above API call would be something like this:

{
  "export_ids_array": ["abc123": 200],
  "success": 1,
  "api_reference": "v1",
  "api_server": "production",
  "api_version": "1.1.7.5",
  "api_call_id": "cax15c67b48c823254d4b901d51632c3772ff5dad",
  "api_calls_remaining": 1498732,
  "response_time": 0.11829
}

[DELETE] import/{import_id} – Aborts an ongoing lead import operation

Endpoint:
DELETE https://api.verifigator.com/v1/leads/import/{import_id}
This endpoint has the following input parameters:

INPUT PARAMETER TYPE DESCRIPTION
import_id String The unique import_id of the import operation whose status you wish to retrieve. The import_id is returned by the API call used to start the import operation.
This endpoint has the following output parameters:
OUTPUT PARAMETER TYPE DESCRIPTION
import_id Array The unique import_id of the import operation and the matching status code.
To test, simply run this in your terminal:
NOTE: The sample API call assumes you have an import operation with an import_id of abc123. If you run the sample API call without editing the import_id, it will return an error 404 of import operation not found!
The response of the above API call would be something like this:

{
   "import_ids_array": ["abc123": 200],
   "success": 1,
   "api_reference": "v1",
   "api_server": "production",
   "api_version": "1.1.7.5",
   "api_call_id": "cax15c67b48c823254d4b901d51632c3772ff5dad",
   "api_calls_remaining": 1498732,
   "response_time": 0.11829
}

[GET|POST|PUT|DELETE] ping – Sends a test message to the API server

This endpoint can be used to send a dummy test message to the server, in order to receive a dummy test message response. This endpoint can be especially used to confirm your code is able to use different HTTP methods, which is why this endpoint supports GET, POST, PUT and DELETE methods. Calling this endpoint with any HTTP method will all cause the same outcome: a dummy test message response and nothing else.

Endpoint:
GET https://api.verifigator.com/v1/ping

And:

POST https://api.verifigator.com/v1/ping

And:

PUT https://api.verifigator.com/v1/ping

And:

DELETE https://api.verifigator.com/v1/ping

This endpoint has no input parameters.

This endpoint has the following output parameters:
OUTPUT PARAMETER TYPE DESCRIPTION
result String Contains the word “pong”.
http_method String Returns the name of the HTTP method used to make this call. That is, either GET, POST, PUT or DELETE.
To test, simply run this in your terminal:
The response of the above API call would be something like this:

{
	"result": "pong",
	"http_method": "GET",
	"success": 1,
	"api_reference": "v1",
	"api_server": "production",
	"api_version": "1.1.8.5",
	"api_call_id": "c22be671b53755aa94d979296f15dad0446b38242",
	"api_calls_remaining": 1998713,
	"response_time": 0.07847
}

[GET] define – Retrieves the endpoint definition

Endpoint:
GET https://api.verifigator.com/v1/define/{http_method-endpoint-verb}

This endpoint has no input parameters.

This endpoint has the following output parameters:
OUTPUT PARAMETER TYPE DESCRIPTION
endpoint_description String Contains a description of what this API endpoint is used for.
required_input_parameters_array Array An array containing the names of the input parameters which must be provided in order to use this API endpoint. If any of these input parameters are not provided when calling this endpoint, the API server will return an error response.
optional_input_parameters_array Array An array containing the names of the input parameters which are optional and can be provided in order to use this API endpoint. The optional input parameters are typically used to modify the way the API endpoint works or to filter its output.
To test, simply run this in your terminal:
The response of the above API call would be something like this:

{
  	"endpoint_description": "Returns the list of the most popular tags from the system.",
	"required_input_parameters_array": [],
	"optional_input_parameters_array": ["limit"],
	"success": 1,
	"api_reference": "v1",
	"api_server": "production",
	"api_version": "1.1.8.5",
	"api_call_id": "c23d4bf2649afc0977deb32c131cc01453dd590b7",
	"api_calls_remaining": 1998713,
	"response_time": 0.02289
}

[GET] changelog – Retrieves the ChangeLogs from the server

Endpoint:
GET https://api.verifigator.com/v1/changelog
This endpoint has the following input parameters:

INPUT PARAMETER TYPE DESCRIPTION
version String, optional If given, only the ChangeLog of this version is returned.
feature String, optional If given, only the ChangeLog of this feature/module/product is returned. For example, if feature = ‘API’, only the ChangeLog of the API server itself is returned.
This endpoint has the following output parameters:
OUTPUT PARAMETER TYPE DESCRIPTION
changelog_array Array Contains the ChangeLog from the API server.
To test, simply run this in your terminal:
The response of the above API call would be something like this:

{
	"api": {
		"1.1.8.7": [
			"New endpoint: GET changelog lists all of the available ChangeLogs from the system.",
			"Accuracy improvement: further reduced the probability of randomic LP being incorrectly analyzed to contain a name. E.g. \"9febdb.1def41@domain.com\" could be analyzed as user with name \"Febdb Def\" - clearly incorrect!"
		],
		"1.1.8.6": [
			"New feature: GET Tags now supports an optional input parameter \"limit\".",
			"New feature: Endpoints GET Help, GET Define and GET Ping can now be called without API key.",
			"Accuracy improvement: reduced the probability of randomic LP being incorrectly analyzed to contain a name."
		],
		"1.1.8.5": [
			"New feature: GET Leads\/Export now supports \"limit\" input parameter similar to GET Leads",
			"New endpoint: GET Help lists all the endpoints and their expected input parameters.",
			"New endpoint: GET Define\/xxx returns the required and optional inputs of a given API endpoint.",
			"Accuracy improvement: email such as \"steve4x@domain.com\" could cause \"Steve X.\" to be extracted as lead's name.",
			"Accuracy improvement: parsing of uploaded lead files can now handle generic data mixed in with the lead data."
		],
		"1.1.8.4": [
			"Bug fix: DELETE leads\/export did not always abort a lead export operation."
		],
		"1.1.8.3": [
			"New endpoint: GET changelog\/api - Returns the Change Log of the API.",
			"New endpoint: GET changelog\/integrator_php - Returns the Change Log of the Verifigator PHP Integrator class.",
			"Bug fix: Automated email address fixer fails to fix cases of user@yahoo.co.ukk => user@yahoo.co.uk",
			"New feature: Added leads_count_query output parameter to GET Leads endpoint."
		],
		"1.1.8.2": [
			"Output syntax change: To unify the naming convention of the output parameters, all array output parameters now end with \"_array\" suffix."
		]
	},
	"integrator_php": {
		"1.0.2.2": [
			"New functions: changelog() and changelog_api() to retrieve the change logs from the server."
		],
		"1.0.2.1": [
			"New functions: lead_import_delete() and lead_export_delete() to abort an ongoing lead import or export operation"
		],
		"1.0.2.0": [
			"New feature: Leads pagination via the $limit input parameter of lead_search() function"
		]
	},
	"success": 1,
	"api_reference": "v1",
	"api_server": "production",
	"api_version": "1.1.8.7",
	"api_call_id": "cca5563b3ef16525dea1b6d4ac672dad253f4dd10",
	"response_time": 0.11995
}

[GET|POST|PUT|DELETE] help – Provides information on how to use the API

Endpoint:
GET https://api.verifigator.com/v1/help

And:

POST https://api.verifigator.com/v1/help

And:

PUT https://api.verifigator.com/v1/help

And:

DELETE https://api.verifigator.com/v1/help

And:

This endpoint has no input parameters.

Similar to the GET|POST|PUT|DELETE Ping endpoint, this endpoint can also be used to confirm your code is able to use different HTTP methods, which is why this endpoint supports GET, POST, PUT and DELETE methods. Calling this endpoint with any HTTP method will all cause the same outcome: a printout of the help text.

This endpoint has the following output parameters:
OUTPUT PARAMETER TYPE DESCRIPTION
intro String Provides introduction on what Verifigator API is, what it does and how to use it.
endpoints_array Array An array which contains all of the currently available API endpoints.
endpoints_info_array Array An array which contains a short text description of all of the currently
available API endpoints.
http_method_info String A description of the HTTP method you used to make this API call and information on how that HTTP method is typically used with Verifigator API.
api_key_info String Information of the API key used with this call.
To test, simply run this in your terminal:
The response of the above API call would be something like this:

{
  "lead_count": 20,
  "lead_quality_count_array": {
  	"10": 0,
  	"9": 11,
  	"8": 6,
  	"7": 1,
  	"6": 0,
  	"5": 1,
  	"4": 0,
  	"3": 0,
  	"2": 0,
  	"1": 0,
  	"0": 1
  },
  "lead_ratings_count_array": {
  	"excellent_quality_lead": 11,
  	"high_quality_lead": 7,
  	"medium_quality_lead": 1,
  	"low_quality_lead": 0,
  	"invalid_lead": 1
  },
  "list_quality": 81.36,
  "estimated_bounce_rate": "4.75%",
  "estimated_delivery_rate": "95.25%",
  "lead_tags_array": [
  	"auto added",
  	"english",
  	"excellent quality lead",
  	"female",
  	"free email account",
  	"german",
  	"germany",
  	"high quality lead",
  	"imported on apr\/2018 15th",
  	"imported on apr\/2018 17th",
  	"imported on apr\/2018 18th",
  	"imported on apr\/2018 22nd",
  	"imported on apr\/2018 23rd",
  	"imported on apr\/2018 2nd",
  	"imported on apr\/2018 3rd",
  	"imported on apr\/2018 4th",
  	"imported on apr\/2018 5th",
  	"imported on mar\/2018 28th",
  	"imported on mar\/2018 29th",
  	"imported on mar\/2018 30th",
  	"invalid lead",
  	"male",
	"medium quality lead",
	"organization",
  	"partial lead name",
  	"poland",
  	"polish",
  	"role account",
  	"suspect lead",
  	"swaziland",
  	"sweden",
  	"swedish",
  	"thai",
  	"thailand",
  	"united kingdom",
  	"unknown lead type",
  	"usa"
  ],
  "lead_tags_count_array": {
  	"free email account": 17,
  	"english": 14,
  	"male": 13,
  	"usa": 12,
  	"excellent quality lead": 11,
  	"high quality lead": 7,
  	"female": 4,
  	"imported on apr\/2018 18th": 4,
  	"imported on mar\/2018 28th": 3,
  	"partial lead name": 3,
  	"imported on mar\/2018 30th": 2,
  	"auto added": 2,
  	"role account": 2,
  	"organization": 2,
  	"thai": 2,
  	"thailand": 2,
  	"imported on mar\/2018 29th": 2,
  	"germany": 2,
  	"german": 2,
  	"imported on apr\/2018 4th": 2,
  	"sweden": 1,
  	"swaziland": 1,
  	"swedish": 1,
  	"united kingdom": 1,
  	"unknown lead type": 1,
  	"suspect lead": 1,
  	"imported on apr\/2018 15th": 1,
  	"polish": 1,
  	"imported on apr\/2018 2nd": 1,
  	"invalid lead": 1,
  	"imported on apr\/2018 3rd": 1,
  	"medium quality lead": 1,
  	"imported on apr\/2018 23rd": 1,
  	"imported on apr\/2018 5th": 1,
  	"poland": 1,
  	"imported on apr\/2018 22nd": 1,
  	"imported on apr\/2018 17th": 1
  },
  "tags_count": 37,
  "pending_lead_imports": "0",
  "pending_lead_exports": "0",
  "pending_import_id": "n\/a",
  "pending_export_id": "n\/a",
  "success": 1,
  "api_reference": "v1",
  "api_server": "production",
  "api_version": "1.1.7.6",
  "api_call_id": "ccd7457351a02891f3763386c45b2121901c81676",
  "api_calls_remaining": 1498730,
  "response_time": 0.14623
}

POST|GET Emails/Validate

[POST] emails/validate – Validates an email and adds it to user’s lead list

[GET] emails/validate – Validates an email without adding it to the lead list

Entrypoint:
POST https://api.verifigator.com/v1/emails/validate

And:

GET https://api.verifigator.com/v1/emails/validate

This endpoint has the following input parameters:

INPUT PARAMETER TYPE DESCRIPTION
email_address String The email address of your lead you wish to be analyzed.
This endpoint has the following output parameters:
OUTPUT PARAMETER TYPE DESCRIPTION
validation_id String An unique identifier of this validation event. If you wish to ask us about a specific validation, for example why a name was analyzed the way it was, please contact us and include the the validation_id of that validation.
email_address String The lead’s email address.
domain String The domainpart of the lead’s email address. For example, of email address “john.smith@gmail.com” the domainpart of the email address is “gmail.com”.
localpart String The localpart of the lead’s email address. For example, of email address “john.smith@gmail.com” the localpart of the email address is “john.smith”.
tld String The TLD of the lead’s email address. For example, of email address “john.smith@gmail.com” the TLD part of the email address is “com”.
valid Integer Either 0 or 1 to indicate whether the given data is valid in its entirety.
The value will be 1 if and only if email_address was provided and it is valid and full_name was provided and it is valid or first_name and last_name were provided and they are valid.
valid_tld Integer Either 0 or 1 to indicate whether the tld part of the provided email_address is valid.
valid_domain Integer Either 0 or 1 to indicate whether the domainpart of the lead’s email address is valid, that is, it has valid DNS records and is capable of receiving email.
valid_syntax Integer Either 0 or 1 to indicate whether the lead’s email address has a valid and common email address syntax.
valid_syntax_rfc Integer Either 0 or 1 to indicate whether the lead’s email address has a valid syntax according to the RFC specifications.
In a nutshell, valid_syntax_rfc is less strict compared to valid_syntax. Unless you are expecting your data to contain very exotic looking email addresses, you should only read the valid_syntax.
quality_rating Integer A value between 0 and 10 to indicate the quality of the given lead where 10 would indicate a lead of the highest quality. For more information, please see Lead Quality Rating.
role_account Integer Either 0 or 1 to indicate whether the lead’s email address is a so called role based email account.
For example, info@domain.com and office.newyork@company.com are role accounts while john.smith@domain.com or j.smith@company.com are not.
free_account Integer Either 0 or 1 to indicate whether the lead’s email address is a free email address.
For example, john.smith@gmail.com and j.doe@hotmail.com are free accounts and john.smith@company.com or j.doe@company.com are not.
disposable Integer Either 0 or 1 to indicate whether the lead’s email address is a so called disposable email address, also known as a one time use email address or a throwaway email address. Disposable email addresses are temporary email addresses that are used when one does not wish to give their real email address.
spamtrap Integer Either 0 or 1 to indicate whether the lead’s email address is a so called spamtrap email address. Spamtrap email addresses are automatically generated email addresses used to catch spammers. Basically, a web crawler would enter automatically generated email addresses to any web forms it finds online and monitor whether these emails would start to receive email. If email is received, the system knows from which website email originates and the website is reported as a spammer.
gender String Either M, F or N to indicate whether the lead is male, female or not applicable. For example, if the lead is an organization or a company, this field will contain N to indicate not applicable.
gender_probability Integer A value between 0 and 100 to indicate the probability of or confidence of the returned gender analysis result. A value of 100 would indicate the system is 100% confident of the validity of the returned gender analysis result.
language String The ISO 639-1 language code of the language Verifigator guesstimates the lead to speak.
language_name String The name of the language Verifigator guesstimates the user to speak.
language_array Array An array of ISO 639-1 language codes Verifigator guesstimates the lead to understand.
language_name_array Array An array of language names Verifigator guesstimates the lead to understand.
language_probability Integer A value between 0 and 100 to indicate the confidence of the returned language_name analysis result.
geo_location String The ISO 3166 Alpha 2 country code of the country Verifigator guesstimates the lead to be from.
geo_location_name String The name of the country Verifigator guesstimates the lead to be from.
geo_location_array Array An array of ISO 3166 Alpha 2 country codes Verifigator guesstimates the lead could be from.
geo_location_name_array Array An array of country names Verifigator guesstimates the lead could be from.
geo_probability Integer A value between 0 and 100 to indicate the confidence of the returned geo_location value.
lead_organization Integer Either 0 or 1 to indicate whether the lead seems to be a person or an organization. A value of 1 would indicate that the lead is an organization (legal entity) and not a person.
lead_name String The full name of the lead. The lead’s name can be extracted from the given lead data or the data can also originate from Verifigator Data Share (if enabled).
lead_firstname String The first name of the lead. The first name can be extracted from the given lead data or if the lead data does not contain lead’s first name, the data can also originate from Verifigator Data Share (if enabled).
lead_middlename String The middle name(s) of the lead. The middle name can be extracted from the given lead data or if the lead data does not contain lead’s middle name, the data can also originate from Verifigator Data Share (if enabled).
lead_lastname String The last name of the lead. The last name can be extracted from the given lead data or if the lead data does not contain lead’s last name, the data can also originate from Verifigator Data Share (if enabled).
lead_nameprefix String The name prefix(es) of the lead.
For example, if lead’s full name would be “Mr. John Smith”, the lead_nameprefix would be “Mr.”
lead_namesuffix String The name suffix(es) of the lead.
For example, if lead’s full name would be “John Smith Sr.”, the lead_namesuffix would be “Sr.”
lead_name_ascii String The full name of the lead transliterated into Latin A to Z characters. For example, if the lead’s name is “François Bérubé”, the lead_name_ascii would contain “Francois Berube”. The transliteration engine supports most languages and encoding systems, such as Chinese, Japanese, Korean, Thai, Cyrillic, Greek, Hebrew and Arabic.
lead_firstname_ascii String The first name of the lead transliterated into Latin A to Z characters if the lead’s first name contains non A to Z characters.
lead_middlename_ascii String The middle name(s) of the lead transliterated into Latin A to Z characters if the lead’s middle name(s) contain non A to Z characters.
lead_lastname_ascii String The last name of the lead transliterated into Latin A to Z characters if the lead’s last name contains non A to Z characters.
data_share_enabled Integer A value of 0 or 1 to indicate whether Verifigator Data Share was enabled for this API call. The feature is disabled by default and can be enabled from the List Manager Settings. If enabled, the name data of leads are shared between other Verifigator users who also have the Data Share enabled.
auto_add_enabled Integer A value of 0 or 1 to indicate whether the lead was automatically added to user’s leads list. Using the HTTP POST method turns the auto_add_enabled on for the call and using HTTP GET method turns it off for the call.
reasoning String A comma separated list of reasoning tags relating to the validation of the lead.
lead_id Integer Contains the unique lead_id of this lead, in case it was added to the user’s lead list, otherwise returns 0.
auto_tags String A comma separated list of tags Verifigator automatically assigns to this lead.
api_reference String The API reference version used to process this call. Should be “v1” to indicate the first generation API.
api_server String The name of the API server that handled this request.
api_version String The version string of the API server that handled this request.
api_call_id String An unique ID of this API call. In the case you wish to discuss with us about the result of this API call, please cite this ID in your message and we can find the data from our logs.
api_calls_remaining Integer The number of API calls still available to be made with the used API key this month. You can also see the remaining API calls from My Account.
response_time Float The number of seconds Verifigator’s API took to process your request.
Note: An email address is considered valid if it has correct syntax per the RFC technical specification, its domain is valid and its domain is capable of receiving email. In other words, the API will return valid = 1 for email address such as “this.is.fake.email@gmail.com” as this email address is technically valid.
However, depending on your application, you most likely do not wish to accept such technically valid yet most likely invalid email addresses. To detect such probably invalid email addresses, please use the quality_rating output parameter.
To test, simply run this in your terminal:
The response of the above API call would be something like this:

{
   "validation_id": "vb7a45b3a22bcc82ab6990f730444b6522e4d374f",
   "email": "fake@notreal.com",
   "domain": "notreal.com",
   "localpart": "fake",
   "tld": "com",
   "valid": 1,
   "valid_tld": 1,
   "valid_domain": 1,
   "valid_syntax": 1,
   "valid_syntax_rfc": 1,
   "quality_rating": 0,
   "role_account": 0,
   "free_account": 0,
   "disposable": 0,
   "spamtrap": 0,
   "gender": "M",
   "gender_probability": "80%",
   "language": "en",
   "language_name": "English",
   "language_array": {
   	"en": "93.72%",
   	"hi": "6.28%"
   },
   "language_name_array": {
   	"English": "93.72%",
   	"Hindi": "6.28%"
   },
   "language_probability": "93.72%",
   "geo_location": "US",
   "geo_location_name": "United States of America",
   "geo_location_array": {
   	"US": "93.14%",
   	"IN": "6.86%"
   },
   "geo_location_name_array": {
   	"United States of America": "93.14%",
   	"India": "6.86%"
   },
   "geo_probability": "93.14%",
   "lead_organization": 0,
   "lead_name": "Mr Fake",
   "lead_firstname": "Fake",
   "lead_middlename": "",
   "lead_lastname": "",
   "lead_nameprefix": "Mr",
   "lead_namesuffix": "",
   "lead_name_ascii": "Mr Fake",
   "lead_firstname_ascii": "Fake",
   "lead_middlename_ascii": "",
   "lead_lastname_ascii": "",
   "data_share_enabled": 0,
   "auto_add_enabled": 0,
   "reasoning": "NAME_UNCOMMON_FIRST_NAME, NAME_UNCOMMON, NAME_VERY_UNCOMMON, LEAD_SPECIAL_BAD_WORDS, LEAD_SPECIAL_UNLIKELY, SYNTAX_VALID, DOMAIN_VALID_TLD, DOMAIN_VALID, QUALITY_WORST, RESULT_VALID",
   "lead_id": 0,
   "auto_tags": "English, Invalid Lead, Male, Suspect Lead, USA",
   "success": 1,
   "api_reference": "v1",
   "api_server": "production",
   "api_version": "1.1.7.5",
   "api_call_id": "c86abcb753273cdc44551047458fbd75c964f2739",
   "api_calls_remaining": 1498813,
   "response_time": 0.10541
}
    

GET Names/Validate

[GET] names/validate – Validates and analyzes a name

Entrypoint:
POST https://api.verifigator.com/v1/names/validate
This endpoint has the following input parameters:

INPUT PARAMETER TYPE DESCRIPTION
full_name String, optional The full name of a person or an organization
first_name String, optional The first name (i.e. the given name) of a person.
last_name String, optional The last name (i.e. the family name) of a person.
can_change Boolean, optional Defines whether Verifigator can change the order of the name elements. For example, if can_change = true and the user input is name “Jackson Jack”, Verifigator would determine that “Jackson” is the lead’s last name, even if given before the first name. If can_change = false, whatever name element comes first, is considered the first name of the lead, such as “Jackson” would be treated as a first name and “Jack” as the last name in this case. By default, can_change = true.
can_remove Boolean, optional Defines whether Verifigator can remove name elements. Enabled by default. For example, if can_remove = true and the user input is name “Jack ‘handsome boi’ Jackson”, Verifigator would determine that the element “handsome boi” is not a part of the lead’s real name and the part is removed and the lead’s full name is considered to be “Jack Jackson”. By default, can_remove = true.

Note: The input parameters full_name, first_name and last_name are all optional input parameters, however, you must provide at least one of these input parameters.

If you are analyzing names which are not persons but organizations, you should use the full_name parameter to input the organization’s name. To ensure Verifigator detects the lead type correctly as an organization, you should use the full and official name of the organization, for example “Foobar Corporation” or “Foobar, Inc.” instead of “Foobar”.

For personal leads, feel free to include titles and other gender prefixes to the name data, such as full_name = “Mr. John Smith, Sr.”

This endpoint has the following output parameters:
OUTPUT PARAMETER TYPE DESCRIPTION
validation_id String An unique identifier of this validation event. If you wish to ask us about a specific validation, for example why a name was analyzed the way it was, please contact us and include the the validation_id of that validation.
lead_name String The full name of the lead. In the case the input name data contains any name prefixes or suffixes, they are removed from this output parameter.
lead_firstname String The first name of the lead.
lead_middlename String The middle name(s) of the lead.
lead_lastname String The last name of the lead.
lead_nameprefix String The name prefix(es) of the lead.
For example, if lead’s full name would be “Mr. John Smith”, the lead_nameprefix would be “Mr.”
lead_namesuffix String The name suffix(es) of the lead.
For example, if lead’s full name would be “John Smith Sr.”, the lead_namesuffix would be “Sr.”
lead_name_ascii String The full name of the lead transliterated into Latin A to Z characters. For example, if the lead’s name is “François Bérubé”, the lead_name_ascii would contain “Francois Berube”. The transliteration engine supports most languages and encoding systems, such as Chinese, Japanese, Korean, Thai, Cyrillic, Greek, Hebrew and Arabic.
lead_firstname_ascii String The first name of the lead transliterated into Latin A to Z characters if the lead’s first name contains non A to Z characters.
lead_middlename_ascii String The middle name(s) of the lead transliterated into Latin A to Z characters if the lead’s middle name(s) contain non A to Z characters.
lead_lastname_ascii String The last name of the lead transliterated into Latin A to Z characters if the lead’s last name contains non A to Z characters.
lead_organization Integer Either 0 or 1 to indicate whether the lead seems to be a person or an organization. A value of 1 would indicate that the lead is an organization (legal entity) and not a person.
gender String Either M, F or N to indicate whether the lead is male, female or not applicable. For example, if the lead is an organization or a company, this field will contain N to indicate not applicable.
gender_probability Integer A value between 0 and 100 to indicate the probability of or confidence of the returned gender analysis result. A value of 100 would indicate the system is 100% confident of the validity of the returned gender analysis result.
geo_location String The ISO 3166 Alpha 2 country code of the country Verifigator guesstimates the lead to be from.
geo_location_name String The name of the country Verifigator guesstimates the lead to be from.
geo_location_array Array An array of ISO 3166 Alpha 2 country codes Verifigator guesstimates the lead could be from.
geo_location_name_array Array An array of country names Verifigator guesstimates the lead could be from.
geo_probability Integer A value between 0 and 100 to indicate the confidence of the returned geo_location value.
language String The ISO 639-1 language code of the language Verifigator guesstimates the lead to speak.
language_name String The name of the language Verifigator guesstimates the user to speak.
language_array Array An array of ISO 639-1 language codes Verifigator guesstimates the lead to understand.
language_name_array Array An array of language names Verifigator guesstimates the lead to understand.
language_probability Integer A value between 0 and 100 to indicate the confidence of the returned language_name analysis result.
reasoning String A comma separated list of reasoning tags relating to the validation of the lead.
api_reference String The API reference version used to process this call. Should be “v1” to indicate the first generation API.
api_server String The name of the API server that handled this request.
api_version String The version string of the API server that handled this request.
api_call_id String An unique ID of this API call. In the case you wish to discuss with us about the result of this API call, please cite this ID in your message and we can find the data from our logs.
api_calls_remaining Integer The number of API calls still available to be made with the used API key this month. You can also see the remaining API calls from My Account.
response_time Float The number of seconds Verifigator’s API took to process your request.
To test, simply run this in your terminal:
The response of the above API call would be something like this:

{
   "validation_id": "vb7a45b3a22bcc82ab6990f730444b6522e4d374f",
   "email": "fake@notreal.com",
   "domain": "notreal.com",
   "localpart": "fake",
   "tld": "com",
   "valid": 1,
   "valid_tld": 1,
   "valid_domain": 1,
   "valid_syntax": 1,
   "valid_syntax_rfc": 1,
   "quality_rating": 0,
   "role_account": 0,
   "free_account": 0,
   "disposable": 0,
   "spamtrap": 0,
   "gender": "M",
   "gender_probability": "80%",
   "language": "en",
   "language_name": "English",
   "language_array": {
   	"en": "93.72%",
   	"hi": "6.28%"
   },
   "language_name_array": {
   	"English": "93.72%",
   	"Hindi": "6.28%"
   },
   "language_probability": "93.72%",
   "geo_location": "US",
   "geo_location_name": "United States of America",
   "geo_location_array": {
   	"US": "93.14%",
   	"IN": "6.86%"
   },
   "geo_location_name_array": {
   	"United States of America": "93.14%",
   	"India": "6.86%"
   },
   "geo_probability": "93.14%",
   "lead_organization": 0,
   "lead_name": "Mr Fake",
   "lead_firstname": "Fake",
   "lead_middlename": "",
   "lead_lastname": "",
   "lead_nameprefix": "Mr",
   "lead_namesuffix": "",
   "lead_name_ascii": "Mr Fake",
   "lead_firstname_ascii": "Fake",
   "lead_middlename_ascii": "",
   "lead_lastname_ascii": "",
   "data_share_enabled": 0,
   "auto_add_enabled": 0,
   "reasoning": "NAME_UNCOMMON_FIRST_NAME, NAME_UNCOMMON, NAME_VERY_UNCOMMON, LEAD_SPECIAL_BAD_WORDS, LEAD_SPECIAL_UNLIKELY, SYNTAX_VALID, DOMAIN_VALID_TLD, DOMAIN_VALID, QUALITY_WORST, RESULT_VALID",
   "lead_id": 0,
   "auto_tags": "English, Invalid Lead, Male, Suspect Lead, USA",
   "success": 1,
   "api_reference": "v1",
   "api_server": "production",
   "api_version": "1.1.7.5",
   "api_call_id": "c86abcb753273cdc44551047458fbd75c964f2739",
   "api_calls_remaining": 1498813,
   "response_time": 0.10541
}