Before You Start

Pleased be sure to read our Terms of Use before using Next Caller®. Data from the Next Caller API can only be used to identify inbound callers. Using our data for any form of outbound solicitation is strictly prohibited and any accounts found violating our Terms of Use will be suspended without notice.

If you are ever uncertain about how you can use the data please contact us prior to proceeding.

Getting Started

Next Caller is designed to help your business identify unknown callers and detect fraudulent calls.

Our Advanced Caller ID® service can identify over 245 million US phone numbers, resulting in an average hit rate of 76 percent in the US. Next Caller can ID most Landline, Mobile, and VoIP numbers, but may have difficulty identifying callers using burner numbers. You can get started with the Caller ID API today by signing up for an account and then proceeding to the Getting Started section.

Next Caller Fraud API®™ can be used to detect suspicious calls, such as masked numbers. If you are interested in the Fraud API you will need to contact a Sales Engineer to get started.

Once you have an account we recommend that you sign in prior to proceeding. This will ensure that all of the example code uses your API username and password.

After signing in you can pick an API library for the language you are developing with. These libraries will make the integration process easier, and will allow you to copy and paste example code shown to the right of the docs. You can find language specific setup instructions by clicking the language of your choice below, or by using the links in the upper right corner of this page.

  • Python
  • PHP
  • Ruby
  • .NET (C#)
  • Java
  • Javascript
  • Node

If you ever require assistance or need a library in a language that we do not offer please email support@nextcaller.com.

A Python wrapper around the Nextcaller API. The library supports python versions 2.6, 2.7, 3.2, 3.3, 3.4.

Repository link: https://github.com/Nextcaller/nextcaller-python-api

Dependencies

  • requests

Installation

cloning from the GitHub repo:

$ git clone git://github.com/nextcaller/nextcaller-python-api.git
$ cd nextcaller-python-api
$ python setup.py test
$ python setup.py build
$ python setup.py install

use pip with the GitHub repo:

$ pip install -U --user git+git://github.com/nextcaller/nextcaller-python-api.git

use pip with pypi:

$ pip install -U --user pynextcaller

Copy-Paste Code Examples

You can copy and paste all examples. Your API username and password is automatically inserted in all code samples, if you are signed in.

A .NET wrapper around the Nextcaller API. The library supports .net versions ≥ 3.5.

Repository link: https://github.com/nextcaller/nextcaller-dotnet-api

Dependencies

  • Newtonsoft.Json (≥ 6.0.5)

Installation

You can clone the source code from the GitHub repo:

$ git clone git://github.com/nextcaller/nextcaller-dotnet-api.git

Install using Package Manager Console in Visual Studio:

PM> Install-Package NextCallerApi

Install using nuget.exe:

$ nuget install NextCallerApi

Copy-Paste Code Examples

You can copy and paste all examples. Your API username and password is automatically inserted in all code samples, if you are signed in.

A PHP wrapper around the Nextcaller API. The library supports PHP versions ≥ 5.3.

Repository link: https://github.com/Nextcaller/nextcaller-php-api

Requirements

Installation

You can install using composer or from source. Note that NextCaller is PSR-0 compliant:

Composer

If you don't have Composer install it:

$ curl -s https://getcomposer.org/installer | php

Require Nextcaller in your composer.json:

{
  "require": {
     "nextcaller/nextcaller-php-api": "dev-master"
  }
}

Refresh your dependencies:

$ php composer.phar update

Then make sure to require the autoloader and initialize all:

<?php
require(__DIR__ . '/vendor/autoload.php');

Copy-Paste Code Examples

You can copy and paste all examples. Your API username and password is automatically inserted in all code samples, if you are signed in.

A JS wrapper around the Nextcaller API using CORS.

Repository link: https://github.com/Nextcaller/nextcaller-js-api

Requirements

  • Chrome 3+
  • Firefox 3.5+
  • Opera 12+
  • Safari 4+
  • Internet Explorer 10+

Installation

You can clone from the GitHub repo:

$ git clone git://github.com/nextcaller/nextcaller-js-api.git

Include the script:

<script src="PATH_TO/nextcaller.js"></script>

Copy-Paste Code Examples

You can copy and paste all examples. Your API username and password is automatically inserted in all code samples, if you are signed in.

Java wrapper for the Nextcaller API. Supports java v6 and newer.

Repository link: https://github.com/Nextcaller/nextcaller-java-api

Dependencies

  • jackson-jaxrs
  • logback-classic
  • junit
  • mockito-all

Installation

in order to add lib, maven dependency should be added:

<dependency>
     <groupId>com.nextcaller.integration-java</groupId>
     <artifactId>integration-java</artifactId>
     <version>0.2.1</version>
</dependency>

Copy-Paste Code Examples

You can copy and paste all examples. Your API username and password is automatically inserted in all code samples, if you are signed in.

A NodeJS wrapper around the Nextcaller API.

Repository link: https://github.com/Nextcaller/nextcaller-nodejs-api

Installation

use npm:

$ npm install -g nextcaller-nodejs-api

Copy-Paste Code Examples

You can copy and paste all examples. Your API username and password is automatically inserted in all code samples, if you are signed in.

A Ruby wrapper around the Nextcaller API. The library supports ruby version 1.9.2+.

Repository link: https://github.com/Nextcaller/nextcaller-ruby-api

Installation

Add this line to your application's Gemfile:

gem 'nextcaller_client'

And then execute:

$ bundle

Or install it yourself as:

$ gem install nextcaller_client

 

Next Caller API is available and easy to try via cURL util.

Installation

If you don't have cURL installed, use http://curl.haxx.se/docs/ as an instruction.

Copy-Paste Code Examples

You can copy and paste all examples. Your API username and password is automatically inserted in all code samples, if you are signed in.

 

Authentication

The Next Caller API authenticates via Basic access authentication, but all of our libraries handle the details of authentication for you so you don’t need to understand how this works. If you need to write your own library for any reason please contact us if you need assistance with the authentication.

For examples on how to authenticate with each library, please select your language of preference in the top right corner and an example will be shown in the example section to the right. All of these examples will fill in your API username and password if you are signed in.

Example request

with authorization header:

curl -X GET \
-H "Authorization: Basic <base64 encoded api username:password string>" \
-H "Content-Type: application/json" \
"https://api.nextcaller.com/v2.1/records/?phone=2125558383&format=json"

or with --user (-u) curl argument:

curl -X GET \
-u "<api username>:<api password>" \
-H "Content-Type: application/json" \
"https://api.nextcaller.com/v2.1/records/?phone=2125558383&format=json"

Example response

{
    "records": [
        {
            "id": "97d949a413f4ea8b85e9586e1f2d9a",
            "first_name": "Jerry",
            "first_pronounced": "JER-ee",
            "middle_name": "Allen",
            "last_name": "Seinfeld",
            "name": "Jerry Allen Seinfeld",
            "phone": [
                {
                    "number": "2125558383",
                    "line_type": "Mobile",
                    "carrier": "Verizon Wireless",
                    "resource_uri": "/v2.1/records/2125558383/"
                }
            ],
            "address": [
                {
                    "city": "New York",
                    "extended_zip": "2344",
                    "country": "USA",
                    "line1": "129 West 81st Street",
                    "line2": "Apt 5A",
                    "state": "NY",
                    "zip_code": "10024"
                },
                {
                    "city": "New York",
                    "extended_zip": "2345",
                    "country": "USA",
                    "line1": "129 West 81st Street",
                    "line2": "Apt 5B",
                    "state": "NY",
                    "zip_code": "10024"
                }
            ],
            "relatives": [
                {
                    "id": "30400c6a0567b3a5168c9812ed617c",
                    "name": "Morty Seinfeld",
                    "resource_uri": "/v2.1/users/30400c6a0567b3a5168c9812ed617c/"
                },
                {
                    "id": "6d342b76b2b9b00c63324a0d0fcca8",
                    "name": "Helen Seinfeld",
                    "resource_uri": "/v2.1/users/6d342b76b2b9b00c63324a0d0fcca8/"
                }
            ],
            "email": "jerry@example.org",
            "linked_emails": [
                "jerry@example.org",
                "badman@example.org",
                "domainmaster@example.org",
                "hellooooooo@example.org",
                "jaseinfeld@example.org",
                "jerry_seinfeld@example.org",
                "puffyshirt@example.org",
                "seinfeld4@example.org"
            ],
            "social_links": [
                {
                    "type": "twitter",
                    "url": "https://twitter.com/jerryseinfeld",
                    "followers": 26700
                },
                {
                    "type": "facebook",
                    "url": "https://www.facebook.com/JerrySeinfeld",
                    "followers": 6584
                },
                {
                    "type": "linkedin",
                    "url": "https://www.linkedin.com/pub/jerry-seinfeld"
                }
            ],
            "age": "61",
            "education": "Completed College",
            "gender": "Male",
            "high_net_worth": "Yes",
            "home_owner_status": "Rent",
            "household_income": "50k-75k",
            "length_of_residence": "10 Years",
            "marital_status": "Single",
            "market_value": "500k-1mm",
            "occupation": "White Collar Worker",
            "presence_of_children": "No",
            "resource_uri": "/v2.1/users/97d949a413f4ea8b85e9586e1f2d9a/"
        }
    ]
}

Basic Authentication is implemented in this library and you don't have to bother about this. You need only to provide NextCallerClient constructor with your API username and password.

Constructor

client = NextCallerClient(username, password, sandbox=False)

Parameters

ParameterTypeDefaultDescription
username str   Your API username
password str   Your API password
sandbox bool False Use sandbox mode

How to use example

from pynextcaller.client import NextCallerClient

username = '<api username>'
password = '<api password>'

client = NextCallerClient(username, password)

Basic Authentication is implemented in this library and you don't have to bother about this. You need only to provide NextCallerClient constructor with your API username and password.

Constructor

client = NextcallerClient::NextCallerClient.new(apiUsername, apiPassword, sandbox=false)

Parameters

Parameter Type Description
apiUsername String api username
apiPassword String api password
sandbox Boolean Use sandbox mode. Default: false

How to use example

require 'nextcaller_client'
apiUsername = "<api username>"
apiPassword = "<api password>"
sandbox = false
client = NextcallerClient::NextCallerClient.new(apiUsername, apiPassword, sandbox)

Basic Authentication is implemented in this library and you don't have to bother about this. You need only to provide NextCallerClient constructor with your API username and password.

Constructor

NextCallerClient client = new NextCallerClient(apiUsername, apiPassword);

Parameters

Parameter Type Description
username String Your API username
password String Your API password

How to use example

import com.nextcaller.integration.client.NextCallerClient;

public class Example {
    String apiUsername = "<api username>";
    String apiPassword = "<api password>";

    NextCallerClient client = new NextCallerClient(apiUsername, apiPassword);
}

Basic Authentication is implemented in this library and you don't have to bother about this. You need only to provide NextCallerClient constructor with your API username and password.

Constructor

NextCallerClient client = new NextCallerClient(username, password, sandbox);

Parameters

Parameter Type Description
username string api username
password string api password
sandbox bool Use sandbox mode. Default: false

How to use example

string apiUsername = "<api username>";
string apiPassword = "<api password>";
bool sandbox = false;

NextCallerClient client = new NextCallerClient(apiUsername, apiPassword, sandbox);

Basic Authentication is implemented in this library and you don't have to bother about this. You need only to provide NextCallerClient constructor with your API username and password.

Constructor

$client = new NextCallerClient($apiUsername, $apiPassword, $sandbox);

Parameters

Parameter Type Description
$apiUsername string api username
$apiPassword string api password
$sandbox boolean Use sandbox mode. Default: false

How to use example

require(__DIR__ . '/vendor/autoload.php');

use NextCaller\NextCallerClient;

$apiUsername = '<api username>';
$apiPassword = '<api password>';
$sandbox = false;
$client = new NextCallerClient($apiUsername, $apiPassword, $sandbox);

Basic Authentication is implemented in this library and you don't have to bother about this. You need only to provide NextCallerClient constructor with your API username and password.

Constructor

var client = NextCallerClient(apiUsername, apiPassword, sandbox);

Parameters

Parameter Type Description
apiUsername string api username
apiPassword string api password
sandbox boolean Use sandbox mode. Default: false

How to use example

var apiUsername = "<api username>",
    apiPassword = "<api password>",
    sandbox = false,
    client = NextCallerClient(apiUsername, apiPassword, sandbox);

Basic Authentication is implemented in this library and you don't have to bother about this. You need only to provide NextCallerClient constructor with your API username and password.

Constructor

client = module.NextCallerClient(apiUsername, apiPassword, sandbox)

Parameters

Parameter Type Description
apiUsername string api username
apiPassword string api password
sandbox boolean Use sandbox mode. Default: false

How to use example

var module = require("nextcaller-nodejs-api"),
    apiUsername = "<api username>",
    apiPassword = "<api password>",
    sandbox = false,
    client = module.NextCallerClient(apiUsername, apiPassword, sandbox);

 

Quick Start Guide

This guide will walk you through looking up your first phone number with Next Caller, as well as how to update the profile when you find missing or inaccurate information. In this example we will use the Next Caller test API, and we will be looking up a fictional customer with the phone number (212) 555-8383.

Before You Start

To successfully complete this tutorial you will need to:

1. Sign up for a Next Caller account, or sign in to your existing account. Your API username and password will be loaded into the examples, allowing you to copy and paste the code as you follow along with the tutorial.
2. Install a Next Caller library in one of the following languages: Python, Ruby, PHP, Java, Node.js, or .NET (C#). If you do not want to install a client you can also follow along using Curl, but we recommend using a library when doing your actual integration.

Step 1: Initialize our Library

To start, lets go ahead and initialize our library. We want to use the library in test mode, so we are not billed for API calls, and so we get fake data to test with. To do this we simply set the sandbox attribute to true when initializing our client.

Note: If you are using cURL you can skip this step.

Step 1: Initialize our Library

Note:  If you are using curl you can skip this step.

require 'nextcaller_client'
username = "..."
password = "..."
test_mode = true
client = NextcallerClient::NextCallerClient.new(username, password, test_mode)

require 'nextcaller_client'
api_username = "<api username>"
api_password = "<api password>"
sandbox = true
client = NextcallerClient::NextCallerClient.new(api_username, api_password, sandbox)

require 'nextcaller_client'
api_username = "<api username>"
api_password = "<api password>"
sandbox = true
client = NextcallerClient::NextCallerClient.new(api_username, api_password, sandbox)

require(__DIR__ . '/vendor/autoload.php');
use NextCaller\NextCallerClient;
$apiUsername = '<api username>';
$apiPassword = '<api password>';
$sandbox = true
$client = new NextCallerClient($apiUsername, $apiPassword, $sandbox);

string apiUsername = "<api username>";
string apiPassword = "<api password>";
bool sandbox = true;
NextCallerClient client = new NextCallerClient(apiUsername, apiPassword, sandbox);

var apiUsername = "<api username>",
    apiPassword = "<api password>",
    sandbox = true,
    client = NextCallerClient(apiUsername, apiPassword, sandbox);

import com.nextcaller.integration.client.NextCallerClient;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class QuickStartGuide {
    String apiUsername = "<api username>";
    String apiPassword = "<api password>";
    boolean sandbox = true;

    NextCallerClient client = new NextCallerClient(apiUsername, apiPassword, sandbox);

    public void example() throws Exception {
        // please, see next two steps
    }

    // please, see step 4
}

var apiUsername = "<api username>",
    apiPassword = "<api password>",
    module = require("nextcaller-nodejs-api"),
    sandbox = true,
    client = module.NextCallerClient(apiUsername, apiPassword, sandbox);

Step 2: Look Up a Profile with a Phone Number

A profile will provide detailed caller information for a particular phone number, such as the caller’s name and address. The data returned will vary based on your billing plan. For more information about which data is returned with each plan please reference the Profiles section of our API documentation.

Now that we have a Next Caller client initialized we are going to look up a profile for our customer who called using the number (212) 555-8383. Next Caller requires that all phone numbers be 10 digits, with no format characters, so we will go ahead and strip out any extra characters before calling the API.

curl -X GET \
-u "<api username>:<api password>" \
-H "Content-Type: application/json" \
"https://api.nextcaller.com/v2.1/records/2125558383/?format=json"

from pynextcaller.client import NextCallerClient
api_username = "<api username>"
api_password = "<api password>"
phone_number = "2125558383"
sandbox = True
client = NextCallerClient(api_username, api_password, sandbox)
res = client.get_by_phone(phone_number)
print res

require 'nextcaller_client'
api_username = "<api username>"
api_password = "<api password>"
phone_number = "2125558383"
sandbox = true
client = NextcallerClient::NextCallerClient.new(api_username, api_password, sandbox)
res = client.get_by_phone(phone_number)
print res

<?php
$apiUsername = '<api username>';
$apiPassword = '<api password>';
$phoneNumber = '2125558383';
$sandbox = true;
$client = new NextCallerClient($apiUsername, $apiPassword, sandbox);
$records = $client->getByPhone($phoneNumber);
var_dump($records);

string apiUsername = "<api username>";
string apiPassword = "<api password>";
string phoneNumber = "2125558383";
bool sandbox = true;
NextCallerClient client = new NextCallerClient(apiUsername, apiPassword, sandbox);
IList<Profile> profiles = client.GetByPhone(phoneNumber);

successCallback - function called on a success result

function successCallback(data, statusCode) {
    console.log(data);
    console.log(statusCode);
}

errorCallback - function called on an error

function errorCallback(error, statusCode) {
    console.log(error);
    console.log(statusCode);
}
var apiUsername = "<api username>",
    apiPassword = "<api password>",
    phoneNumber = "2125558383",
    sandbox = true,
    client = NextCallerClient(apiUsername, apiPassword, sandbox);

client.getByPhone(phoneNumber, accountId, function (data, statusCode) {
    console.log(data);
    console.log(statusCode);
}, function (error, statusCode) {
    console.log(error);
    console.log(statusCode);
});

        String phone = "2125558383";
        Map<String, Object> response = client.getByPhone(phone);

successCallback - function called on a success result

function successCallback(data, statusCode) {
    console.log(data);
    console.log(statusCode);
}

errorCallback - function called on an error

function errorCallback(error, statusCode) {
    console.log(error);
    console.log(statusCode);
}
var module = require("nextcaller-nodejs-api"),
    apiUsername = "<api username>",
    apiPassword = "<api password>",
    phoneNumber = "2125558383",
    sandbox = true,
    client = module.NextCallerClient(apiUsername, apiPassword, sandbox);

client.getByPhone(phoneNumber, accountId, function (data, statusCode) {
    console.log(data);
    console.log(statusCode);
}, function (error, statusCode) {
    console.log(error);
    console.log(statusCode);
});

Step 3: Examine the Profile Data

Now that we have a response, lets look at the information that Next Caller provided for our phone number. We will focus on data available to all plans, but there may be additional data available depending on your plan.

{
    "records": [
        {
            "id": "97d949a413f4ea8b85e9586e1f2d9a",
            "first_name": "Jerry",
            "first_pronounced": "JER-ee",
            "middle_name": "Allen",
            "last_name": "Seinfeld",
            "name": "Jerry Allen Seinfeld",
            "phone": [
                {
                    "number": "2125558383",
                    "line_type": "Mobile",
                    "carrier": "Verizon Wireless",
                    "resource_uri": "/v2.1/records/2125558383/"
                }
            ],
            "address": [
                {
                    "city": "New York",
                    "extended_zip": "2344",
                    "country": "USA",
                    "line1": "129 West 81st Street",
                    "line2": "Apt 5A",
                    "state": "NY",
                    "zip_code": "10024"
                },
                {
                    "city": "New York",
                    "extended_zip": "2345",
                    "country": "USA",
                    "line1": "129 West 81st Street",
                    "line2": "Apt 5B",
                    "state": "NY",
                    "zip_code": "10024"
                }
            ],
            "relatives": [
                {
                    "id": "30400c6a0567b3a5168c9812ed617c",
                    "name": "Morty Seinfeld",
                    "resource_uri": "/v2.1/users/30400c6a0567b3a5168c9812ed617c/"
                },
                {
                    "id": "6d342b76b2b9b00c63324a0d0fcca8",
                    "name": "Helen Seinfeld",
                    "resource_uri": "/v2.1/users/6d342b76b2b9b00c63324a0d0fcca8/"
                }
            ],
            "email": "jerry@example.org",
            "linked_emails": [
                "jerry@example.org",
                "badman@example.org",
                "domainmaster@example.org",
                "hellooooooo@example.org",
                "jaseinfeld@example.org",
                "jerry_seinfeld@example.org",
                "puffyshirt@example.org",
                "seinfeld4@example.org"
            ],
            "social_links": [
                {
                    "type": "twitter",
                    "url": "https://twitter.com/jerryseinfeld",
                    "followers": 26700
                },
                {
                    "type": "facebook",
                    "url": "https://www.facebook.com/JerrySeinfeld",
                    "followers": 6584
                },
                {
                    "type": "linkedin",
                    "url": "https://www.linkedin.com/pub/jerry-seinfeld"
                }
            ],
            "age": "61",
            "education": "Completed College",
            "gender": "Male",
            "high_net_worth": "Yes",
            "home_owner_status": "Rent",
            "household_income": "50k-75k",
            "length_of_residence": "10 Years",
            "marital_status": "Single",
            "market_value": "500k-1mm",
            "occupation": "White Collar Worker",
            "presence_of_children": "No",
            "resource_uri": "/v2.1/users/97d949a413f4ea8b85e9586e1f2d9a/"
        }
    ]
}

profile_id = response[“records”][0][“id”]
# “97d949a413f4ea8b85e9586e1f2d9a”

first_name = response[“records”][0][“first_name”]
# “Jerry”

middle_name = response[“records”][0][“middle_name”]
# “Allen”

last_name = response[“records”][0][“last_name”]
# “Seinfeld”

addresses = response[“records”][0][“address”]
# [
#   {
#     "city":"New York",
#     "extended_zip": "2344",
#     "country": "USA",
#     "line1": "129 West 81st Street",
#     "line2": "Apt 5A",
#     "state": "NY",
#     "zip_code": "10024"
#   }
# ]
profile_id = response[“records”][0][“id”]
# “97d949a413f4ea8b85e9586e1f2d9a”

first_name = response[“records”][0][“first_name”]
# “Jerry”

middle_name = response[“records”][0][“middle_name”]
# “Allen”

last_name = response[“records”][0][“last_name”]
# “Seinfeld”

addresses = response[“records”][0][“address”]
# [
#   {
#     "city" => "New York",
#     "extended_zip" => "2344",
#     "country" => "USA",
#     "line1" => "129 West 81st Street",
#     "line2" => "Apt 5A",
#     "state" => "NY",
#     "zip_code" => "10024"
#   }
# ]
$profile_id = $response[“records”][0][“id”]
# “97d949a413f4ea8b85e9586e1f2d9a”

$first_name = $response[“records”][0][“first_name”]
# “Jerry”

$middle_name = $response[“records”][0][“middle_name”]
# “Allen”

$last_name = $response[“records”][0][“last_name”]
# “Seinfeld”

$addresses = $response[“records”][0][“address”]
# array(
#   array(
#     "city" =>"New York",
#     "extended_zip" => "2344",
#     "country" => "USA",
#     "line1" => "129 West 81st Street",
#     "line2" => "Apt 5A",
#     "state" => "NY",
#     "zip_code" => "10024"
#   )
# )
string profileId = response[“records”][0][“id”];
// “97d949a413f4ea8b85e9586e1f2d9a”

string firstName = response[“records”][0][“first_name”];
// “Jerry”

string middleName = response[“records”][0][“middle_name”];
// “Allen”

string lastName = response[“records”][0][“last_name”];
// “Seinfeld”

IList addresses = response[“records”][0][“address”];
// [
//   {
//     "city": "New York",
//     "extended_zip": "2344",
//     "country": "USA",
//     "line1": "129 West 81st Street",
//     "line2": "Apt 5A",
//     "state": "NY",
//     "zip_code": "10024"
//   }
// ]
profileId = response[“records”][0][“id”];
// “97d949a413f4ea8b85e9586e1f2d9a”

firstName = response[“records”][0][“first_name”];
// “Jerry”

middleName = response[“records”][0][“middle_name”];
// “Allen”

lastName = response[“records”][0][“last_name”];
// “Seinfeld”

addresses = response[“records”][0][“address”];
// [
//   {
//     "city": "New York",
//     "extended_zip": "2344",
//     "country": "USA",
//     "line1": "129 West 81st Street",
//     "line2": "Apt 5A",
//     "state": "NY",
//     "zip_code": "10024"
//   }
// ]

Map<String, Object> profile = (Map<String, Object>) ((List) response.get("records")).get(0);
Map<String, Object> address = (Map<String, Object>) ((List) profile.get("address")).get(0);

String profileId = (String) profile.get("id");
String firstName = (String) profile.get("first_name"); // "Jerry"
String middleName = (String) profile.get("middle_name"); // "Allen"
String lastName = (String) profile.get("last_name"); // "Seinfeld"
String city = (String) address.get("city"); // "New York"
String addressLine1 = (String) address.get("line1"); // "129 West 81st Street"
profileId = response[“records”][0][“id”];
// “97d949a413f4ea8b85e9586e1f2d9a”

firstName = response[“records”][0][“first_name”];
// “Jerry”

middleName = response[“records”][0][“middle_name”];
// “Allen”

lastName = response[“records”][0][“last_name”];
// “Seinfeld”

addresses = response[“records”][0][“address”];
// [
//   {
//     "city": "New York",
//     "extended_zip": "2344",
//     "country": "USA",
//     "line1": "129 West 81st Street",
//     "line2": "Apt 5A",
//     "state": "NY",
//     "zip_code": "10024"
//   }
// ]

Step 4: Updating the Profile

After talking with our customer we may realize that the data we received from Next Caller was outdated. This isn’t common, but does happens when a phone number is assigned to a new person. In cases like this we ask that you notify Next Caller of the updated information via our API, and we will refund your account for that profile lookup.

In this case it looks like Clark S. Kent has purchased a new phone plan and was assigned Jerry’s old number. Lets post an update to the Next Caller API.

And that’s it! You have successfully looked up a caller, gathered information from their profile, and updated the profile with more accurate information.

curl -X POST \
-H "Content-Type: application/json" \
-u "<api username>:<api password>" \
-d '{
    "first_name":"Clark",
    "middle_name":"S",
    "last_name":"Kent",
    "email":"clarkkent@supermail.com",
    "shipping_address1":{
        "line1":"223 Kryptonite Ave.",
        "line2":"",
        "city":"Smallville",
        "state":"KS",
        "zip_code":"66002"
    },
    "shipping_address2":{
        "line1":"224 Kryptonite Ave.",
        "line2":"",
        "city":"Smallville",
        "state":"KS",
        "zip_code":"66002"
    }
}' \
"https://api.nextcaller.com/v2.1/users/5ccdf85571e983002386ce6bca7054/?format=json"

from pynextcaller.client import NextCallerClient
api_username = "<api username>"
api_password = "<api password>"
profile_id = "97d949a413f4ea8b85e9586e1f2d9a"
data = {
    "first_name": "Clark",
    "last_name": "Kent"
}
sandbox = True
client = NextCallerClient(api_username, api_password, sandbox)
client.update_by_profile_id(profile_id, data)

 

require 'nextcaller_client'
api_username = "<api username>"
api_password = "<api password>"
profile_id = "97d949a413f4ea8b85e9586e1f2d9a"
data = {
    "first_name" => "Clark",
    "last_name" => "Kent"
}
sandbox = true
client = NextcallerClient::NextCallerClient.new(api_username, api_password, sandbox)
client.update_by_profile_id(profile_id, data)

<?php
$apiUsername = '<api username>';
$apiPassword = '<api password>';
$sandbox = true;
$client = new NextCallerClient($apiUsername, $apiPassword, $sandbox);

$id = '97d949a413f4ea8b85e9586e1f2d9a';
$data = array(
    'first_name' => 'FirstName',
    'last_name' => 'LastName'
)
$response = $client->updateByProfileId($id, $data);

string apiUsername = "<api username>";
string apiPassword = "<api password>";
string profileId = "97d949a413f4ea8b85e9586e1f2d9a";
ProfileToPost profile = new ProfileToPost
{
    FirstName = "Clark",
    LastName = "Kent"
};

bool sandbox = true;
NextCallerClient client = new NextCallerClient(apiUsername, apiPassword, sandbox);
client.UpdateByProfileId(profileId, profile);

successCallback - function called on a success result

function successCallback(data, statusCode) {
    console.log(data);
    console.log(statusCode);
}

errorCallback - function called on an error

function errorCallback(error, statusCode) {
    console.log(error);
    console.log(statusCode);
}
var apiUsername = "<api username>",
    apiPassword = "<api password>",
    profileId = "97d949a413f4ea8b85e9586e1f2d9a",
    sandbox = true,
    client = NextCallerClient(apiUsername, apiPassword, sandbox),
    data = {
        'first_name': 'FirstName',
        'last_name': 'LastName'
    };

client.updateByProfileId(profileId, data, function (data, statusCode) {
    console.log(data);
    console.log(statusCode);
}, function (error, statusCode) {
    console.log(error);
    console.log(statusCode);
});

    public void update() throws Exception {
        String profileId = "97d949a413f4ea8b85e9586e1f2d9a";
        Map<String, Object> profileData = new HashMap<String, Object>(){{
            put("first_name", "Clark");
            put("last_name", "Kent");
        }};

        boolean success = client.updateByProfileId(profileId, profileData);
    }

successCallback - function called on a success result

function successCallback(data, statusCode) {
    console.log(data);
    console.log(statusCode);
}

errorCallback - function called on an error

function errorCallback(error, statusCode) {
    console.log(error);
    console.log(statusCode);
}
var module = require("nextcaller-nodejs-api"),
    apiUsername = "<api username>",
    apiPassword = "<api password>",
    profileId = "97d949a413f4ea8b85e9586e1f2d9a",
    sandbox = true,
    client = module.NextCallerClient(apiUsername, apiPassword, sandbox),
    data = {
        'first_name': 'FirstName',
        'last_name': 'LastName'
    };

client.updateByProfileId(profileId, data, function (data, statusCode) {
    console.log(data);
    console.log(statusCode);
}, function (error, statusCode) {
    console.log(error);
    console.log(statusCode);
});

 

Sandbox Mode

Next Caller offers a test environment that will allow you to test your integration. The test environment supports the same resources, errors, and API username/password, but will return fake data, and calls to the API in test mode will not count towards your monthly API calls.

To get started with the test environment you will still need to use your API username and password, and you will need to set the test mode to true. All of our libraries support test mode, but test mode is disabled by default. Examples are shown to the right, and you can change the language by clicking the links at the top right of this page.

Sandbox Endpoint

All of our API libraries will automatically update the API endpoint when you set test mode to be true, but if you are using curl or writing your own client you will need to use the following URL:

https://api.sandbox.nextcaller.com/

Example sandbox request

curl -X GET \
-u "<api username>:<api password>" \
-H "Content-Type: application/json" \
"https://api.sandbox.nextcaller.com/v2.1/records/?phone=2125558383&format=json"

Example sandbox response

{
    "records": [
        {
            "id": "97d949a413f4ea8b85e9586e1f2d9a",
            "first_name": "Jerry",
            "first_pronounced": "JER-ee",
            "middle_name": "Allen",
            "last_name": "Seinfeld",
            "name": "Jerry Allen Seinfeld",
            "phone": [
                {
                    "number": "2125558383",
                    "line_type": "Mobile",
                    "carrier": "Verizon Wireless",
                    "resource_uri": "/v2.1/records/2125558383/"
                }
            ],
            "address": [
                {
                    "city": "New York",
                    "extended_zip": "2344",
                    "country": "USA",
                    "line1": "129 West 81st Street",
                    "line2": "Apt 5A",
                    "state": "NY",
                    "zip_code": "10024"
                },
                {
                    "city": "New York",
                    "extended_zip": "2345",
                    "country": "USA",
                    "line1": "129 West 81st Street",
                    "line2": "Apt 5B",
                    "state": "NY",
                    "zip_code": "10024"
                }
            ],
            "relatives": [
                {
                    "id": "30400c6a0567b3a5168c9812ed617c",
                    "name": "Morty Seinfeld",
                    "resource_uri": "/v2.1/users/30400c6a0567b3a5168c9812ed617c/"
                },
                {
                    "id": "6d342b76b2b9b00c63324a0d0fcca8",
                    "name": "Helen Seinfeld",
                    "resource_uri": "/v2.1/users/6d342b76b2b9b00c63324a0d0fcca8/"
                }
            ],
            "email": "jerry@example.org",
            "linked_emails": [
                "jerry@example.org",
                "badman@example.org",
                "domainmaster@example.org",
                "hellooooooo@example.org",
                "jaseinfeld@example.org",
                "jerry_seinfeld@example.org",
                "puffyshirt@example.org",
                "seinfeld4@example.org"
            ],
            "social_links": [
                {
                    "type": "twitter",
                    "url": "https://twitter.com/jerryseinfeld",
                    "followers": 26700
                },
                {
                    "type": "facebook",
                    "url": "https://www.facebook.com/JerrySeinfeld",
                    "followers": 6584
                },
                {
                    "type": "linkedin",
                    "url": "https://www.linkedin.com/pub/jerry-seinfeld"
                }
            ],
            "age": "61",
            "education": "Completed College",
            "gender": "Male",
            "high_net_worth": "Yes",
            "home_owner_status": "Rent",
            "household_income": "50k-75k",
            "length_of_residence": "10 Years",
            "marital_status": "Single",
            "market_value": "500k-1mm",
            "occupation": "White Collar Worker",
            "presence_of_children": "No",
            "resource_uri": "/v2.1/users/97d949a413f4ea8b85e9586e1f2d9a/"
        }
    ]
}

In order to turn on sandbox mode, you should pass boolean argument to NextCallerClient constructor with value in "true".

How to use example

from pynextcaller.client import NextCallerClient
api_username = "<api username>"
api_password = "<api password>"
sandbox = True
phone_number = "2125558383"
client = NextCallerClient(api_username, api_password, sandbox)
resp = client.get_by_phone(phone_number)
print resp

In order to turn on sandbox mode, you should pass boolean argument to NextCallerClient constructor with value in "true".

How to use example

require 'nextcaller_client'
username = "<api username>"
password = "<api password>"
phone_number = "2125558383"
sandbox = true
client = NextcallerClient::NextCallerClient.new(username, password, sandbox)
res = client.get_by_phone(phone_number)

In order to turn on sandbox mode, you should pass boolean argument to NextCallerClient constructor with value in "true".

How to use example

use NextCaller\NextCallerClient;
$apiUsername = '<api username>';
$apiPassword = '<api password>';
$phoneNumber = '2125558383';
$sandbox = true;
$client = new NextCallerClient($apiUsername, $apiPassword, $sandbox);
$profiles = $client->getByPhone($phoneNumber);

In order to turn on sandbox mode, you should pass a "sandbox" boolean argument to NextCallerClient constructor with value "true".

How to use example

string apiUsername = "<api username>";
string apiPassword = "<api password>";
string phoneNumber = "2125558383";
bool sandbox = true;

NextCallerClient client = new NextCallerClient(apiUsername, apiPassword, sandbox);

IList<Profile> profiles = client.GetByPhone(phoneNumber);

In order to turn on sandbox mode, you should pass boolean argument to NextCallerClient constructor with value in "true".

How to use example

var apiUsername = "<api username>",
    apiPassword = "<api password>",
    phoneNumber = "2125558383",
    sandbox = true,
    client = NextCallerClient(apiUsername, apiPassword, sandbox);

client.getPhone(phoneNumber, function (data, statusCode) {
    console.log(data);
    console.log(statusCode);
}, function (error, statusCode) {
    console.log(error);
    console.log(statusCode);
});

In order to turn on sandbox mode, you should provide additional boolean param into NextCallerClient constructor.

How to use example

import com.nextcaller.integration.client.NextCallerClient;
import java.util.Map;

public class SandboxExample {
    String apiUsername = "<api username>";
    String apiPassword = "<api password>";
    boolean sandbox = true;

    NextCallerClient client = new NextCallerClient(apiUsername, apiPassword, sandbox);

    public void example() throws Exception {
        String phone = "2125558383";

        Map<String, Object> response = client.getByPhone(phone); // using Sandbox
    }
}

In order to turn on sandbox mode, you should pass boolean argument to NextCallerClient constructor with value in "true".

How to use example

var module = require("nextcaller-nodejs-api"),
    username = "<api username>",
    password = "<api password>",
    phoneNumber = "2125558383",
    sandbox = true,
    client = module.NextCallerClient(username, password, sandbox);

client.getByPhone(phoneNumber, function (data, statusCode) {
    console.log(data);
    console.log(statusCode);
}, function (error, statusCode) {
    console.log(error);
    console.log(statusCode);
});

 

Profiles

Fields Specification

Profiles provide detailed caller information about a particular phone number. The data returned will vary based on your billing plan, and is marked accordingly below.

Attributes of a profile

FieldDefinition
"id"
string
The unique identifier used to reference a profile. You will need this if you are updating a profile.
"first_name"
string
The caller’s first name.
"first_pronounced"
string
The pronunciation of the caller’s first name.
"middle_name"
string
The caller’s middle name.
"last_name"
string
The caller’s last name.
"name"
string
The caller’s full name.
"phone"
array of hashes
The caller ’s known phone numbers.
Phone hash attributes: 
"number"
string
The phone number, in the format "XXXXXXXXXX" where X is a digit between 0-9
"resource_uri"
string
The path for this phone resource. This can generally be ignored.
"carrier"
string
The phone carrier associated with the phone number.
"line_type"
string
The type of phone line. For example, VoIP, Mobile, or Landline.
"address"
array of hashes
The caller’s known mailing addresses.
Address hash attributes:
"line1"
string
The first line of the address. This is typically the street name and building number.
Example: "129 West 81st Street"
"line2"
string
The second line of the address. Typically this is an apartment or unit number.
Example: "Apt 5A"
"city"
string
The city portion of the address.
"state"
string
The state portion of the address. This will be a two character state code.
Example: "NY" 
"zip_code"
string
The zip code portion of the address.
Example: "10024" for the the zip code "10024-2344"
"extended_zip"
string
The extended portion of the zip code.
Example: "2344" for the zip code "10024-2344"
"country"
string
The country portion of the address.
"email"
string
The primary email address associated with the caller.
NOTE: Using this information to send unsolicited emails is in direct violation of our Terms of Service and will result in your account being terminated.
"linked_emails"
array of strings
A list of alternate email addresses associated with the caller.
NOTE: Using this information to send unsolicited emails is in direct violation of our Terms of Service and will result in your account being terminated.
"relatives"
array of hashes
Alternate profiles linked with the requested phone number. These are typically relatives who share a phone number.
Relative hash attributes:
"id"
string
The id associated to this relative’s Next Caller profile .
"name"
string
The full name of the relative.
"resource_uri"
string
The path for this relative resource. This can generally be ignored.
"age"
string
The exact age of the caller. For example, "37".
"gender"
string
The gender of the caller.
All possible values: "Male", "Female"
"household_income"
string
The estimated household income of the caller.
All possible values: "0-15k", "15k-25k", "25k-35k", "35k-50k", "50k-75k", "75k-100k", "100k-125k", "125k-150k", "150k-175k", "175k-200k", "200k-250k", "250k+"
"marital_status"
string
The marital status of the caller.
All possible values: "Single", "Married"
"presence_of_children"
string
Whether or not the caller has children.
All possible values: "Yes", "No"
"home_owner_status"
string
The caller’s current home ownership status.
All possible values: "Own", "Rent"
"market_value"
string
The market value of the caller’s home. This is based on data from 2013.
All possible values: "1k-25k", "25k-50k", "50k-75k", "75k-100k", "100k-150k", "150k-200k", "200k-250k", "250k-300k", "300k-350k", "350k-500k", "500k-1mm", "1mm+"
"length_of_residence"
string
The amount of time the caller has lived at their current residence.
All possible values: "Less than 1 year", "1 year", "2 years", "3 years", "4 years", "5 years", "6 years", "7 years", "8 years", "9 years", "10 years", "11-15 years", "16-19 years", "20+ years"
"high_net_worth"
string
Field value is "Yes" if the caller has a net worth greater than $1M USD.
All possible values: "Yes", ""
"occupation"
string
The general occupation of the caller.
All possible values: "Blue Collar Worker", "Business Owner", "Civil Service", "Technology", "Executive/Upper Management", "Health Services", "Homemaker", "Middle Management", "Military Personnel", "Nurse", "Part Time", "Professional", "Retired", "Secretary", "Student", "Teacher", "White Collar Worker"
"education"
string
The highest level of education completed by the caller.
All possible values: "Completed High School", "Attended College", "Completed College", "Completed Graduate School", "Attended Vocational/Technical"
"social_links"
array of hashes
Social profiles associated with the caller. Sources can include Twitter, Facebook, and LinkedIn.
Social profile hash attributes
"type"
string
The type of social profile.All possible values: "twitter", "facebook", "linkedin"
"url"
string
The URL leading to the social profile.Example: "https://twitter.com/jerryseinfeld"
"followers"
int
The number of followers associated with the social profile.This value will not be included in the hash in some cases. For example, it is not included with LinkedIn profiles.

On occasion, you may find that the profile data we provide is partially complete or missing all information. These two cases are shown to the right, where full represents a full profile, partial represents a profile with some information missing, and unknown represents a profile with all information missing.

This typically happens when a phone number is re-assigned to a new individual, and our database has not caught up to the change. In this case, we ask that you update the profile to let us know about the corrected information, and Next Caller will credit the API call back to your account.

Raw Response Examples

  • JSON
  • XML
 
Full
Partial
Unknown
Profile Variability:
 
{
    "records": [
        {
            "id": "97d949a413f4ea8b85e9586e1f2d9a",
            "first_name": "Jerry",
            "first_pronounced": "JER-ee",
            "middle_name": "Allen",
            "last_name": "Seinfeld",
            "name": "Jerry Allen Seinfeld",
            "phone": [
                {
                    "number": "2125558383",
                    "line_type": "Mobile",
                    "carrier": "Verizon Wireless",
                    "resource_uri": "/v2.1/records/2125558383/"
                }
            ],
            "address": [
                {
                    "city": "New York",
                    "extended_zip": "2344",
                    "country": "USA",
                    "line1": "129 West 81st Street",
                    "line2": "Apt 5A",
                    "state": "NY",
                    "zip_code": "10024"
                },
                {
                    "city": "New York",
                    "extended_zip": "2345",
                    "country": "USA",
                    "line1": "129 West 81st Street",
                    "line2": "Apt 5B",
                    "state": "NY",
                    "zip_code": "10024"
                }
            ],
            "relatives": [
                {
                    "id": "30400c6a0567b3a5168c9812ed617c",
                    "name": "Morty Seinfeld",
                    "resource_uri": "/v2.1/users/30400c6a0567b3a5168c9812ed617c/"
                },
                {
                    "id": "6d342b76b2b9b00c63324a0d0fcca8",
                    "name": "Helen Seinfeld",
                    "resource_uri": "/v2.1/users/6d342b76b2b9b00c63324a0d0fcca8/"
                }
            ],
            "email": "jerry@example.org",
            "linked_emails": [
                "jerry@example.org",
                "badman@example.org",
                "domainmaster@example.org",
                "hellooooooo@example.org",
                "jaseinfeld@example.org",
                "jerry_seinfeld@example.org",
                "puffyshirt@example.org",
                "seinfeld4@example.org"
            ],
            "social_links": [
                {
                    "type": "twitter",
                    "url": "https://twitter.com/jerryseinfeld",
                    "followers": 26700
                },
                {
                    "type": "facebook",
                    "url": "https://www.facebook.com/JerrySeinfeld",
                    "followers": 6584
                },
                {
                    "type": "linkedin",
                    "url": "https://www.linkedin.com/pub/jerry-seinfeld"
                }
            ],
            "age": "61",
            "education": "Completed College",
            "gender": "Male",
            "high_net_worth": "Yes",
            "home_owner_status": "Rent",
            "household_income": "50k-75k",
            "length_of_residence": "10 Years",
            "marital_status": "Single",
            "market_value": "500k-1mm",
            "occupation": "White Collar Worker",
            "presence_of_children": "No",
            "resource_uri": "/v2.1/users/97d949a413f4ea8b85e9586e1f2d9a/"
        }
    ]
}
<records>
    <list-item>
        <id>97d949a413f4ea8b85e9586e1f2d9a</id>
        <first_name>Jerry</first_name>
        <first_pronounced>JER-ee</first_pronounced>
        <middle_name>Allen</middle_name>
        <last_name>Seinfeld</last_name>
        <name>Jerry Allen Seinfeld</name>
        <phone>
            <list-item>
                <number>2125558383</number>
                <line_type>Mobile</line_type>
                <carrier>Verizon Wireless</carrier>
                <resource_uri>/v2.1/records/2125558383/</resource_uri>
            </list-item>
        </phone>
        <address>
            <list-item>
                <city>New York</city>
                <extended_zip>2344</extended_zip>
                <country>USA</country>
                <line1>129 West 81st Street</line1>
                <line2>Apt 5A</line2>
                <state>NY</state>
                <zip_code>10024</zip_code>
            </list-item>
            <list-item>
                <city>New York</city>
                <extended_zip>2345</extended_zip>
                <country>USA</country>
                <line1>129 West 81st Street</line1>
                <line2>Apt 5B</line2>
                <state>NY</state>
                <zip_code>10024</zip_code>
            </list-item>
        </address>
        <relatives>
            <list-item>
                <id>30400c6a0567b3a5168c9812ed617c</id>
                <name>Morty Seinfeld</name>
                <resource_uri>/v2.1/users/30400c6a0567b3a5168c9812ed617c/</resource_uri>
            </list-item>
            <list-item>
                <id>6d342b76b2b9b00c63324a0d0fcca8</id>
                <name>Helen Seinfeld</name>
                <resource_uri>/v2.1/users/6d342b76b2b9b00c63324a0d0fcca8/</resource_uri>
            </list-item>
        </relatives>
        <email>jerry@example.org</email>
        <linked_emails>
            <list-item>jerry@example.org</list-item>
            <list-item>badman@example.org</list-item>
            <list-item>domainmaster@example.org</list-item>
            <list-item>hellooooooo@example.org</list-item>
            <list-item>jaseinfeld@example.org</list-item>
            <list-item>jerry_seinfeld@example.org</list-item>
            <list-item>puffyshirt@example.org</list-item>
            <list-item>seinfeld4@example.org</list-item>
        </linked_emails>
        <social_links>
            <list-item>
                <type>twitter</type>
                <url>https://twitter.com/jerryseinfeld</url>
                <followers>26700</followers>
            </list-item>
            <list-item>
                <type>facebook</type>
                <url>https://www.facebook.com/JerrySeinfeld</url>
                <followers>6584</followers>
            </list-item>
            <list-item>
                <type>linkedin</type>
                <url>https://www.linkedin.com/pub/jerry-seinfeld</url>
            </list-item>
        </social_links>
        <age>61</age>
        <education>Completed College</education>
        <gender>Male</gender>
        <high_net_worth>Yes</high_net_worth>
        <home_owner_status>Rent</home_owner_status>
        <household_income>50k-75k</household_income>
        <length_of_residence>10 Years</length_of_residence>
        <marital_status>Single</marital_status>
        <market_value>500k-1mm</market_value>
        <occupation>White Collar Worker</occupation>
        <presence_of_children>No</presence_of_children>
        <resource_uri>/v2.1/users/97d949a413f4ea8b85e9586e1f2d9a/</resource_uri>
    </list-item>
</records>

 

GET Profile via Phone

Phone ID™ retrieves a profile using the provided phone number. Using this endpoint will count towards your monthly quota if used outside of test mode.

Arguments

Field Definition
"phone"
REQUIRED
10 digits phone number (digits only, no extensions).
"format"
OPTIONAL
Format of the response. "json" and "xml" are available.

Returns

Returns a profile object if the phone number was valid and a profile was found.

If a profile can not be found for the provided phone number an empty profile is returned.

Otherwise an error will be returned if the phone number was not valid, or if there was an error on the server.

Method get_by_phone

res = client.get_by_phone(number)

Parameters

ParameterTypeDescription
number str 10 digit phone number
Returns dict Serialized response

How to use example

from pynextcaller.client import NextCallerClient

api_username = "<api username>"
api_password = "<api password>"
phone_number = "2125558383"
client = NextCallerClient(api_username, api_password)
resp = client.get_by_phone(phone_number)
print resp

Full Example

Full example of getting profile by phone see here.

Method GetByPhone

IList<Profile> profiles = client.GetByPhone(number);

Parameters

ParameterTypeDescription
number String 10 digit phone number
Returns IList<Profile> List of profiles, associated with a particular phone number

How to use example

string apiUsername = "<api username>";
string apiPassword = "<api password>";
string phoneNumber = "2125558383";

NextCallerClient client = new NextCallerClient(apiUsername, apiPassword);

IList<Profile> profiles = client.GetByPhone(phoneNumber);

Full Example

Full example of getting profile by phone see here.

Method getByPhone

<?php
$client->getByPhone($phoneNumber);

Parameters

ParameterTypeDescription
$phoneNumber String 10 digit phone number
Returns Object Serialized response

How to use example

<?php
$apiUsername = '<api username>';
$apiPassword = '<api password>';
$phoneNumber = '2125558383';
$client = new NextCallerClient($apiUsername, $apiPassword);
$profiles = $client->getByPhone($phoneNumber);
var_dump($profiles);

Full Example

Full example of getting profile by phone see here.

Metgod getByPhone

client.getByPhone(number, successCallback, errorCallback)

Parameters

ParameterTypeDescription
number String 10 digit phone number
successCallback Function Function called on a success result
errorCallback Function Function called on an error

Callbacks

successCallback - function called on a success result

function successCallback(data, statusCode) {
    console.log(data);
    console.log(statusCode);
}

errorCallback - function called on an error

function errorCallback(error, statusCode) {
    console.log(error);
    console.log(statusCode);
}

How to use example

var apiUsername = "<api username>",
    apiPassword = "<api password>",
    phoneNumber = "2125558383",
    client = NextcallerClient(apiUsername, apiPassword);

client.getByPhone(phoneNumber, function (data, statusCode) {
    console.log(data);
    console.log(statusCode);
}, function (error, statusCode) {
    console.log(error);
    console.log(statusCode);
});

Full Example

Full example of getting profile by phone see here.

Method getByPhone

Map<String, Object> response = client.getByPhone(phone);

Parameters

ParameterTypeDescription
phone String 10 digit phone number
Returns Map<String, Object> Profiles data as Map

How to use example

import com.nextcaller.integration.client.NextCallerClient;
import java.util.Map;

public class GetByPhoneExample {
    String apiUsername = "<api username>";
    String apiPassword = "<api password>";

    NextCallerClient client = new NextCallerClient(apiUsername, apiPassword);

    public void example() throws Exception {
        String phone = "2125558383";

        Map<String, Object> response = client.getByPhone(phone);
    }
}

Full Example

Full example of getting profile by phone see here.

Method getByPhone

client.getByPhone(number, successCallback, errorCallback)

Parameters

ParameterTypeDescription
number String 10 digit phone number
successCallback Function Function called on a success result
errorCallback Function Function called on an error

Callbacks

successCallback - function called on a success result


function successCallback(data, statusCode) {
    console.log(data);
    console.log(statusCode);
}

errorCallback - function called on an error


function errorCallback(error, statusCode) {
    console.log(error);
    console.log(statusCode);
}

How to use example

var module = require("nextcaller-nodejs-api"),
    apiUsername = "<api username>",
    apiPassword = "<api password>",
    phoneNumber = "2125558383",
    client = module.NextCallerClient(apiUsername, apiPassword);

client.getByPhone(phoneNumber, function (data, statusCode) {
    console.log(data);
    console.log(statusCode);
}, function (error, statusCode) {
    console.log(error);
    console.log(statusCode);
});

Full Example

Full example of getting profile by phone see here.

Method get_by_phone

res = client.get_by_phone(number)

Parameters

ParameterTypeDescription
number String 10 digit phone number
Returns Hash Serialized response as hash

How to use example

require 'nextcaller_client'
api_username = "<api username>"
api_password = "<api password>"
phone_number = "2125558383"
client = NextcallerClient::NextCallerClient.new(api_username, api_password)
res = client.get_by_phone(phone_number)
print resp

Full Example

Full example of getting profile by phone see here.

 

Definition

GET https://api.nextcaller.com/v2.1/records/<phone>/?format=<format>

or

GET https://api.nextcaller.com/v2.1/records/?phone=<phone>&format=<format>

Example request

curl -X GET \
-u "<api username>:<api password>" \
-H "Content-Type: application/json" \
"https://api.nextcaller.com/v2.1/records/?phone=2125558383&format=json"

Example response

{
    "records": [
        {
            "id": "97d949a413f4ea8b85e9586e1f2d9a",
            "first_name": "Jerry",
            "first_pronounced": "JER-ee",
            "middle_name": "Allen",
            "last_name": "Seinfeld",
            "name": "Jerry Allen Seinfeld",
            "phone": [
                {
                    "number": "2125558383",
                    "line_type": "Mobile",
                    "carrier": "Verizon Wireless",
                    "resource_uri": "/v2.1/records/2125558383/"
                }
            ],
            "address": [
                {
                    "city": "New York",
                    "extended_zip": "2344",
                    "country": "USA",
                    "line1": "129 West 81st Street",
                    "line2": "Apt 5A",
                    "state": "NY",
                    "zip_code": "10024"
                },
                {
                    "city": "New York",
                    "extended_zip": "2345",
                    "country": "USA",
                    "line1": "129 West 81st Street",
                    "line2": "Apt 5B",
                    "state": "NY",
                    "zip_code": "10024"
                }
            ],
            "relatives": [
                {
                    "id": "30400c6a0567b3a5168c9812ed617c",
                    "name": "Morty Seinfeld",
                    "resource_uri": "/v2.1/users/30400c6a0567b3a5168c9812ed617c/"
                },
                {
                    "id": "6d342b76b2b9b00c63324a0d0fcca8",
                    "name": "Helen Seinfeld",
                    "resource_uri": "/v2.1/users/6d342b76b2b9b00c63324a0d0fcca8/"
                }
            ],
            "email": "jerry@example.org",
            "linked_emails": [
                "jerry@example.org",
                "badman@example.org",
                "domainmaster@example.org",
                "hellooooooo@example.org",
                "jaseinfeld@example.org",
                "jerry_seinfeld@example.org",
                "puffyshirt@example.org",
                "seinfeld4@example.org"
            ],
            "social_links": [
                {
                    "type": "twitter",
                    "url": "https://twitter.com/jerryseinfeld",
                    "followers": 26700
                },
                {
                    "type": "facebook",
                    "url": "https://www.facebook.com/JerrySeinfeld",
                    "followers": 6584
                },
                {
                    "type": "linkedin",
                    "url": "https://www.linkedin.com/pub/jerry-seinfeld"
                }
            ],
            "age": "61",
            "education": "Completed College",
            "gender": "Male",
            "high_net_worth": "Yes",
            "home_owner_status": "Rent",
            "household_income": "50k-75k",
            "length_of_residence": "10 Years",
            "marital_status": "Single",
            "market_value": "500k-1mm",
            "occupation": "White Collar Worker",
            "presence_of_children": "No",
            "resource_uri": "/v2.1/users/97d949a413f4ea8b85e9586e1f2d9a/"
        }
    ]
}

 

GET Profile via Name & Address

Retrieves a profile using the provided full name and address. Using this endpoint will count towards your monthly quota if used outside of sandbox mode.

Arguments

Field Definition
“first_name“
REQUIRED
The complete first name of the person.
e.g. “Jerry”
“middle_name“
OPTIONAL
The first letter of middle name of the person.
e.g. “A”
“last_name“
REQUIRED
The complete last name of the person.
e.g. “Seinfeld”
“address“
REQUIRED
The first address line of the address. Do not include any address line 2 data such as apartment number or floor.
e.g. “129 West 81st Street”
“apt_suite“
OPTIONAL
The second address line of the address. Do not include any address line 1 data.
e.g. “Apt 5A”
“city“
REQUIRED
The city of the person.
e.g. “New York”
“state“
REQUIRED
The 2 letter state code of the person.
e.g. “NY”
“zip_code“
REQUIRED
The 5 digit zip code of the person.
e.g. “10024”
“extended_zip“
OPTIONAL
The 4 digit zip of the person.
e.g. “2344”
"format"
OPTIONAL
Format of the response. "json" and "xml" are available.

Notes

It is allowed to use only "zip_code" without "city" and "state" or only combination of "city" and "state" without "zip_code"

If you have no optional parameters (e.g. "middle_name', "apt_suite" or "extended_zip") or you use only combination of "city" and "state" without "zip_code", do not leave these parametrs with empty value in request url, just skip it (see example)

Examples

Example of request url with all parameters:

https://api.nextcaller.com/v2.1/records/?first_name=Jerry&middle_name=Allen&last_name=Seinfeld&address=129 West 81st Street&apt_suite=Apt 5A&city=New York&state=NY&zip_code=10024&extended_zip=2344&format=json

Example of request url without optional parameters:

https://api.nextcaller.com/v2.1/records/?first_name=Jerry&last_name=Seinfeld&address=129 West 81st Street&city=New York&state=NY&zip_code=10024&format=json

Example of request url with combination of "city" and "state" without "zip_code":

https://api.nextcaller.com/v2.1/records/?first_name=Jerry&middle_name=Allen&last_name=Seinfeld&address=129 West 81st Street&zip_code=10024&format=json

Returns

Returns a profile object if the name & address was valid and a profile was found.

If a profile cannot be found for the provided name & address, an empty list is returned with HTTP 404 Code.

Otherwise an error will be returned if the phone number was not valid, or if there was an error on the server.

 

Definition

GET https://api.nextcaller.com/v2.1/records/?first_name=<first_name>&middle_name=<middle_name>&last_name=<last_name>&address=<address>&apt_suite=<apt_suite>&city=<city>&state=<state>&zip_code=<zip_code>&extended_zip=<extended_zip>&format=<format>

Example request

curl -X GET \
-u "<api username>:<api password>" \
-H "Content-Type: application/json" \
"https://api.nextcaller.com/v2.1/records/?first_name=Jerry&middle_name=Allen&last_name=Seinfeld&address=129+West+81st+Street&city=New+York&state=NY&zip_code=10024&format=json"

Example response

{
    "records": [
        {
            "id": "97d949a413f4ea8b85e9586e1f2d9a",
            "first_name": "Jerry",
            "first_pronounced": "JER-ee",
            "middle_name": "Allen",
            "last_name": "Seinfeld",
            "name": "Jerry Allen Seinfeld",
            "phone": [
                {
                    "number": "2125558383",
                    "line_type": "Mobile",
                    "carrier": "Verizon Wireless",
                    "resource_uri": "/v2.1/records/2125558383/"
                }
            ],
            "address": [
                {
                    "city": "New York",
                    "extended_zip": "2344",
                    "country": "USA",
                    "line1": "129 West 81st Street",
                    "line2": "Apt 5A",
                    "state": "NY",
                    "zip_code": "10024"
                },
                {
                    "city": "New York",
                    "extended_zip": "2345",
                    "country": "USA",
                    "line1": "129 West 81st Street",
                    "line2": "Apt 5B",
                    "state": "NY",
                    "zip_code": "10024"
                }
            ],
            "relatives": [
                {
                    "id": "30400c6a0567b3a5168c9812ed617c",
                    "name": "Morty Seinfeld",
                    "resource_uri": "/v2.1/users/30400c6a0567b3a5168c9812ed617c/"
                },
                {
                    "id": "6d342b76b2b9b00c63324a0d0fcca8",
                    "name": "Helen Seinfeld",
                    "resource_uri": "/v2.1/users/6d342b76b2b9b00c63324a0d0fcca8/"
                }
            ],
            "email": "jerry@example.org",
            "linked_emails": [
                "jerry@example.org",
                "badman@example.org",
                "domainmaster@example.org",
                "hellooooooo@example.org",
                "jaseinfeld@example.org",
                "jerry_seinfeld@example.org",
                "puffyshirt@example.org",
                "seinfeld4@example.org"
            ],
            "social_links": [
                {
                    "type": "twitter",
                    "url": "https://twitter.com/jerryseinfeld",
                    "followers": 26700
                },
                {
                    "type": "facebook",
                    "url": "https://www.facebook.com/JerrySeinfeld",
                    "followers": 6584
                },
                {
                    "type": "linkedin",
                    "url": "https://www.linkedin.com/pub/jerry-seinfeld"
                }
            ],
            "age": "61",
            "education": "Completed College",
            "gender": "Male",
            "high_net_worth": "Yes",
            "home_owner_status": "Rent",
            "household_income": "50k-75k",
            "length_of_residence": "10 Years",
            "marital_status": "Single",
            "market_value": "500k-1mm",
            "occupation": "White Collar Worker",
            "presence_of_children": "No",
            "resource_uri": "/v2.1/users/97d949a413f4ea8b85e9586e1f2d9a/"
        }
    ]
}

Method get_by_name_address

res = client.get_by_name_address(name_address_data)

Parameters

ParameterTypeDescription
name_address_data dict Address data dictionary
Returns dict Serialized response

How to use example

from pynextcaller.client import NextCallerClient

api_username = "<api username>"
api_password = "<api password>"
name_address_data = {
    'first_name': 'Jerry',
    'last_name': 'Seinfeld',
    'address': '129 West 81st Street',
    'city': 'New York',
    'state': 'NY',
    'zip_code': '10024'
}
client = NextCallerClient(api_username, api_password)
resp = client.get_by_name_address(name_address_data)
print resp

Full Example

Full example of getting profile by name and address see here.

Metgod getByNameAddress

client.getByNameAddress(addressData, successCallback, errorCallback)

Parameters

ParameterTypeDescription
addressData Object Address data object
successCallback Function Function called on a success result
errorCallback Function Function called on an error

Callbacks

successCallback - function called on a success result


function successCallback(data, statusCode) {
    console.log(data);
    console.log(statusCode);
}

errorCallback - function called on an error


function errorCallback(error, statusCode) {
    console.log(error);
    console.log(statusCode);
}

How to use example

var module = require("nextcaller-nodejs-api"),
    apiUsername = "<api username>",
    apiPassword = "<api password>",
    addressData = {
        first_name: "Jerry",
        last_name: "Seinfeld",
        address: "129 West 81st Street",
        city: "New York",
        state: "NY",
        zip_code: "10024"
    },
    client = module.NextCallerClient(apiUsername, apiPassword);

client.getByNameAddress(addressData, function (data, statusCode) {
    console.log(data);
    console.log(statusCode);
}, function (error, statusCode) {
    console.log(error);
    console.log(statusCode);
});

Full Example

Full example of getting profile by name and address see here.

Metgod getByNameAddress

client.getByNameAddress(addressData, successCallback, errorCallback)

Parameters

ParameterTypeDescription
addressData Object Address data object
successCallback Function Function called on a success result
errorCallback Function Function called on an error

Callbacks

successCallback - function called on a success result

function successCallback(data, statusCode) {
    console.log(data);
    console.log(statusCode);
}

errorCallback - function called on an error

function errorCallback(error, statusCode) {
    console.log(error);
    console.log(statusCode);
}

How to use example

var apiUsername = "<api username>",
    apiPassword = "<api password>",
    addressData = {
         first_name: "Jerry",
         last_name: "Seinfeld",
         address: "129 West 81st Street",
         city: "New York",
         state: "NY",
         zip_code: "10024"
    },
    client = NextCallerClient(apiUsername, apiPassword);
client.getByNameAddress(addressData, function (data, statusCode) {
    console.log(data);
    console.log(statusCode);
}, function (error, statusCode) {
    console.log(error);
    console.log(statusCode);
});

Full Example

Full example of getting profile by name and address see here.

Method getByNameAddress

<?php
$client->getByNameAddress($nameAddressData);

Parameters

ParameterTypeDescription
$nameAddressData array Array with name and address data
Returns Object Serialized response

How to use example

<?php
$apiUsername = '<api username>';
$apiPassword = '<api password>';
$nameAddressData = array(
    'first_name' => 'Jerry',
    'last_name' => 'Seinfeld',
    'address' => '129 West 81st Street',
    'city' => 'New York',
    'state' => 'NY',
    'zip_code' => '10024'
);
$client = new NextCallerClient($apiUsername, $apiPassword);
$profiles = $client->getByNameAddress($nameAddressData);
var_dump($profiles);

Full Example

Full example of getting profile by name and address see here.

Method getByNameAddress

Map<String, Object> response = client.getByNameAddress(nameAddressData);

Parameters

ParameterTypeDescription
nameAddressData Map<String, String> Map of address and name data
Returns Map<String, Object> Profiles data as Map

How to use example

import com.nextcaller.integration.client.NextCallerClient;
import java.util.HashMap;
import java.util.Map;

public class getByNameAddressExample {
    String apiUsername = "<api username>";
    String apiPassword = "<api password>";

    NextCallerClient client = new NextCallerClient(apiUsername, apiPassword);

    public void example() throws Exception {
        Map<String, String> nameAddressData = new HashMap<String, String>(){{
            put("first_name", "Jerry");
            put("last_name", "Seinfeld");
            put("address", "129 West 81st Street");
            put("zip_code", "10024");
        }};

        Map<String, Object> response = client.getByNameAddress(nameAddressData);
    }
}

Full Example

Full example of getting profile by phone see here.

Method get_by_name_address

res = client.get_by_name_address(name_address_data)

Parameters

ParameterTypeDescription
name_address_data Hash Address data dictionary
Returns Hash Serialized response as hash

How to use example

require 'nextcaller_client'
api_username = "<api username>"
api_password = "<api password>"
name_address_data = {
    'first_name': 'Jerry',
    'last_name': 'Seinfeld',
    'address': '129 West 81st Street',
    'city': 'New York',
    'state': 'NY',
    'zip_code': '10024'
}
client = NextcallerClient::NextCallerClient.new(api_username, api_password)
res = client.get_by_name_address(name_address_data)
print resp

Full Example

Full example of getting profile by name and address see here.

Method GetByNameAddress

IList<Profile> profiles = client.GetByNameAddress(addressData);

Parameters

ParameterTypeDescription
addressData NameAddress Address data object
Returns IList<Profile> List of profiles, associated with a particular phone number

How to use example

string apiUsername = "<api username>";
string apiPassword = "<api password>";
NameAddress nameAddress = new NameAddress
{
    AddressLine = "129 West 81st Street",
    FirstName = "Jerry",
    LastName = "Seinfeld",
    City = "New York",
    State = "NY"
};

NextCallerClient client = new NextCallerClient(apiUsername, apiPassword);
IList<Profile> profiles = client.GetByNameAddress(nameAddress);

Full Example

Full example of getting profile by name and address see here.

 

GET Profile via Email

Retrieves a profile using the provided email. Using this endpoint will count towards your monthly quota if used outside of sandbox mode.

Arguments

Field Definition
"email"
REQUIRED
The complete email address you want to look up a profile for, e.g. jerry@exmaple.org
"format"
OPTIONAL
Format of the response. "json" and "xml" are available.

Returns

Returns a profile object if the email was valid and a profile was found.

If a profile can not be found for the provided email an empty profile is returned.

Otherwise an error will be returned if the email was not valid, or if there was an error on the server.

 

Definition

GET https://api.nextcaller.com/v2.1/records/<email>/?format=<format>

or

GET https://api.nextcaller.com/v2.1/records/?email=<email>&format=<format>

Example request

curl -X GET \
-u "<api username>:<api password>" \
-H "Content-Type: application/json" \
"https://api.nextcaller.com/v2.1/records/?email=email@exmaple.com&format=json"

Example response

{
    "records": [
        {
            "id": "97d949a413f4ea8b85e9586e1f2d9a",
            "first_name": "Jerry",
            "first_pronounced": "JER-ee",
            "middle_name": "Allen",
            "last_name": "Seinfeld",
            "name": "Jerry Allen Seinfeld",
            "phone": [
                {
                    "number": "2125558383",
                    "line_type": "Mobile",
                    "carrier": "Verizon Wireless",
                    "resource_uri": "/v2.1/records/2125558383/"
                }
            ],
            "address": [
                {
                    "city": "New York",
                    "extended_zip": "2344",
                    "country": "USA",
                    "line1": "129 West 81st Street",
                    "line2": "Apt 5A",
                    "state": "NY",
                    "zip_code": "10024"
                },
                {
                    "city": "New York",
                    "extended_zip": "2345",
                    "country": "USA",
                    "line1": "129 West 81st Street",
                    "line2": "Apt 5B",
                    "state": "NY",
                    "zip_code": "10024"
                }
            ],
            "relatives": [
                {
                    "id": "30400c6a0567b3a5168c9812ed617c",
                    "name": "Morty Seinfeld",
                    "resource_uri": "/v2.1/users/30400c6a0567b3a5168c9812ed617c/"
                },
                {
                    "id": "6d342b76b2b9b00c63324a0d0fcca8",
                    "name": "Helen Seinfeld",
                    "resource_uri": "/v2.1/users/6d342b76b2b9b00c63324a0d0fcca8/"
                }
            ],
            "email": "jerry@example.org",
            "linked_emails": [
                "jerry@example.org",
                "badman@example.org",
                "domainmaster@example.org",
                "hellooooooo@example.org",
                "jaseinfeld@example.org",
                "jerry_seinfeld@example.org",
                "puffyshirt@example.org",
                "seinfeld4@example.org"
            ],
            "social_links": [
                {
                    "type": "twitter",
                    "url": "https://twitter.com/jerryseinfeld",
                    "followers": 26700
                },
                {
                    "type": "facebook",
                    "url": "https://www.facebook.com/JerrySeinfeld",
                    "followers": 6584
                },
                {
                    "type": "linkedin",
                    "url": "https://www.linkedin.com/pub/jerry-seinfeld"
                }
            ],
            "age": "61",
            "education": "Completed College",
            "gender": "Male",
            "high_net_worth": "Yes",
            "home_owner_status": "Rent",
            "household_income": "50k-75k",
            "length_of_residence": "10 Years",
            "marital_status": "Single",
            "market_value": "500k-1mm",
            "occupation": "White Collar Worker",
            "presence_of_children": "No",
            "resource_uri": "/v2.1/users/97d949a413f4ea8b85e9586e1f2d9a/"
        }
    ]
}

Method get_by_email

res = client.get_by_email(email)

Parameters

ParameterTypeDescription
email str Valid email address
Returns dict Serialized response

How to use example

from pynextcaller.client import NextCallerClient

api_username = "<api username>"
api_password = "<api password>"
email = "email@exmaple.com"
client = NextCallerClient(api_username, api_password)
resp = client.get_by_email(email)
print resp

Full Example

Full example of getting profile by email see here.

Method GetByEmail

IList<Profile> profiles = client.GetByEmail(email);

Parameters

ParameterTypeDescription
email String Valid email address
Returns IList<Profile> List of profiles, associated with a particular phone number

How to use example

string apiUsername = "<api username>";
string apiPassword = "<api password>";
string email = "email@exmaple.com";
NextCallerClient client = new NextCallerClient(apiUsername, apiPassword);
IList<Profile> profiles = client.GetByEmail(email);

Full Example

Full example of getting profile by email see here.

Method getByEmail

<?php
$client->getByEmail($email);

Parameters

ParameterTypeDescription
$email String Valid email address
Returns Object Serialized response

How to use example

<?php
$apiUsername = '<api username>';
$apiPassword = '<api password>';
$email = 'email@exmaple.com';
$client = new NextCallerClient($apiUsername, $apiPassword);
$profiles = $client->getByEmail($email);
var_dump($profiles);

Full Example

Full example of getting profile by email see here.

Metgod getByEmail

client.getByEmail(email, successCallback, errorCallback)

Parameters

ParameterTypeDescription
email String Valid email address
successCallback Function Function called on a success result
errorCallback Function Function called on an error

Callbacks

successCallback - function called on a success result

function successCallback(data, statusCode) {
    console.log(data);
    console.log(statusCode);
}

errorCallback - function called on an error

function errorCallback(error, statusCode) {
    console.log(error);
    console.log(statusCode);
}

How to use example

var apiUsername = "<api username>",
    apiPassword = "<api password>",
    email = "email@exmaple.com",
    client = NextcallerClient(apiUsername, apiPassword);

client.getByEmail(email, function (data, statusCode) {
    console.log(data);
    console.log(statusCode);
}, function (error, statusCode) {
    console.log(error);
    console.log(statusCode);
});

Full Example

Full example of getting profile by email see here.

Method getByEmail

Map<String, Object> response = client.getByEmail(email);

Parameters

ParameterTypeDescription
email String Valid email address
Returns Map<String, Object> Profiles data as Map

How to use example

import com.nextcaller.integration.client.NextCallerClient;
import java.util.Map;

public class GetByEmailExample {
    String apiUsername = "<api username>";
    String apiPassword = "<api password>";

    NextCallerClient client = new NextCallerClient(apiUsername, apiPassword);

    public void example() throws Exception {
        String email = "email@exmaple.com";

        Map<String, Object> response = client.getByEmail(email);
    }
}

Full Example

Full example of getting profile by email see here.

Method getByEmail

client.getByEmail(email, successCallback, errorCallback)

Parameters

ParameterTypeDescription
email String Valid email address
successCallback Function Function called on a success result
errorCallback Function Function called on an error

Callbacks

successCallback - function called on a success result


function successCallback(data, statusCode) {
    console.log(data);
    console.log(statusCode);
}

errorCallback - function called on an error


function errorCallback(error, statusCode) {
    console.log(error);
    console.log(statusCode);
}

How to use example

var module = require("nextcaller-nodejs-api"),
    apiUsername = "<api username>",
    apiPassword = "<api password>",
    email = "email@exmaple.com",
    client = module.NextCallerClient(apiUsername, apiPassword);

client.getByEmail(email, function (data, statusCode) {
    console.log(data);
    console.log(statusCode);
}, function (error, statusCode) {
    console.log(error);
    console.log(statusCode);
});

Full Example

Full example of getting profile by email see here.

Method get_by_email

res = client.get_by_email(email)

Parameters

ParameterTypeDescription
email String Valid email address
Returns Hash Serialized response as hash

How to use example

require 'nextcaller_client'
api_username = "<api username>"
api_password = "<api password>"
email = "email@exmaple.com"
client = NextcallerClient::NextCallerClient.new(api_username, api_password)
res = client.get_by_email(email)
print resp

Full Example

Full example of getting profile by email see here.

 

GET Profile via UID

Retrieves a profile using the profile ID. Using this endpoint will count towards your monthly quota if used outside of test mode.

Arguments

Field Definition
"profile_id"
REQUIRED
The ID of the profile to be retrieved.
This can be determined by retrieving a profile by phone number.
"format"
OPTIONAL
Format of the response. "json" and "xml" are available.

Returns

Returns a profile object if a valid ID was provided. Otherwise an error will be returned.

Method get_by_profile_id

resp = client.get_by_profile_id(profile_id)

Parameters

ParameterTypeDescription
profile_id str ID of a profile from get by phone response
Returns dict Serialized response

How to use example

from pynextcaller.client import NextCallerClient

api_username = "<api username>"
api_password = "<api password>"
profile_id = "97d949a413f4ea8b85e9586e1f2d9a"
client = NextCallerClient(api_username, api_password)
resp = client.get_by_profile_id(profile_id)
print resp

Full Example

Full example of getting profile by id see here.

Method GetByProfileId

Profile profile = client.GetByProfileId(profileId);

Parameters

ParameterTypeDescription
profileId String ID of a profile from get by phone response
Returns Profile Profile with a specific id

How to use example

string apiUsername = "<api username>";
string apiPassword = "<api password>";
string profileId = "97d949a413f4ea8b85e9586e1f2d9a";

NextCallerClient client = new NextCallerClient(apiUsername, apiPassword);

Profile profile = client.GetByProfileId(profileId);

Full Example

Full example of getting profile by id see here.

Method getByProfileId

<?php
$client->getByProfileId($id);

Parameters

ParameterTypeDescription
$id String ID of a profile from get by phone response
Returns Object Serialized response

How to use example

<?php
$apiUsername = '<api username>';
$apiPassword = '<api password>';
$id = '97d949a413f4ea8b85e9586e1f2d9a';
$client = new NextCallerClient($apiUsername, $apiPassword);
$profile = $client->getByProfileId($id);
var_dump($profile);

Full Example

Full example of getting profile by id see here.

Metgod getByProfileId

client.getByProfileId(profileId, successCallback, errorCallback)

Parameters

ParameterTypeDescription
profileId String ID of a profile from get by phone response
successCallback Function Function called on a success result
errorCallback Function Function called on an error

Callbacks

successCallback - function called on a success result

function successCallback(data, statusCode) {
    console.log(data);
    console.log(statusCode);
}

errorCallback - function called on an error

function error_callback(error, statusCode) {
    console.log(error);
    console.log(statusCode);
}

How to use example

var apiUsername = "<api username>",
    apiPassword = "<api password>",
    profileId = "97d949a413f4ea8b85e9586e1f2d9a",
    client = NextcallerClient(apiUsername, apiPassword);

client.getByProfileId(profileId, function (data, statusCode) {
    console.log(data);
    console.log(statusCode);
}, function (error, statusCode) {
    console.log(error);
    console.log(statusCode);
});

Full Example

Full example of getting profile by id see here.

Method getByProfileId

Map<String,Object> profile = client.getByProfileId(profileId);

Parameters

ParameterTypeDescription
profileId String ID of a profile from get by phone response
Returns Map<String, Object> Profile data as Map

How to use example

import com.nextcaller.integration.client.NextCallerClient;
import java.util.Map;

public class GetByProfileId {
    String apiUsername = "<api username>";
    String apiPassword = "<api password>";

    NextCallerClient client = new NextCallerClient(apiUsername, apiPassword);

    public void example() throws Exception {
        String profileId = "97d949a413f4ea8b85e9586e1f2d9a";

        Map<String, Object> profile = client.getByProfileId(profileId);
    }
}

Full Example

Full example of getting profile by id see here.

Metgod getByProfileId

client.getByProfileId(profileId, successCallback, errorCallback)

Parameters

ParameterTypeDescription
profileId String ID of a profile from get by phone response
successCallback Function Function called on a success result
errorCallback Function Function called on an error

Callbacks

successCallback - function called on a success result

function successCallback(data, statusCode) {
    console.log(data);
    console.log(statusCode);
}

errorCallback - function called on an error


function errorCallback(error, statusCode) {
    console.log(error);
    console.log(statusCode);
}

How to use example

var module = require("nextcaller-nodejs-api"),
    apiUsername = "<api username>",
    apiPassword = "<api password>",
    profileId = "97d949a413f4ea8b85e9586e1f2d9a",
    client = module.NextCallerClient(apiUsername, apiPassword);

client.getByProfileId(profileId, function (data, statusCode) {
    console.log(data);
    console.log(statusCode);
}, function (error, statusCode) {
    console.log(error);
    console.log(statusCode);
});

Full Example

Full example of getting profile by id see here.

Method get_by_profile_id

res = client.get_by_profile_id(profile_id)

Parameters

ParameterTypeDescription
profile_id  String  ID of a profile from get by phone response
Returns  Hash  Serialized response as hash

How to use example

require 'nextcaller_client'
api_username = "<api username>"
api_password = "<api password>"
profile_id = "97d949a413f4ea8b85e9586e1f2d9a"
client = NextcallerClient::NextCallerClient.new(api_username, api_password)
res = client.get_by_profile_id(profile_id)
print resp

Full Example

Full example of getting profile by id see here.

 

Definition

GET https://api.nextcaller.com/v2.1/users/<profile_id>/?format=<format>

Example request

curl -X GET \
-u "<api username>:<api password>" \
-H "Content-Type: application/json" \
"https://api.nextcaller.com/v2.1/users/97d949a413f4ea8b85e9586e1f2d9a/?format=json"

Example response

{
            "id": "97d949a413f4ea8b85e9586e1f2d9a",
            "first_name": "Jerry",
            "first_pronounced": "JER-ee",
            "middle_name": "Allen",
            "last_name": "Seinfeld",
            "name": "Jerry Allen Seinfeld",
            "phone": [
                {
                    "number": "2125558383",
                    "line_type": "Mobile",
                    "carrier": "Verizon Wireless",
                    "resource_uri": "/v2.1/records/2125558383/"
                }
            ],
            "address": [
                {
                    "city": "New York",
                    "extended_zip": "2344",
                    "country": "USA",
                    "line1": "129 West 81st Street",
                    "line2": "Apt 5A",
                    "state": "NY",
                    "zip_code": "10024"
                },
                {
                    "city": "New York",
                    "extended_zip": "2345",
                    "country": "USA",
                    "line1": "129 West 81st Street",
                    "line2": "Apt 5B",
                    "state": "NY",
                    "zip_code": "10024"
                }
            ],
            "relatives": [
                {
                    "id": "30400c6a0567b3a5168c9812ed617c",
                    "name": "Morty Seinfeld",
                    "resource_uri": "/v2.1/users/30400c6a0567b3a5168c9812ed617c/"
                },
                {
                    "id": "6d342b76b2b9b00c63324a0d0fcca8",
                    "name": "Helen Seinfeld",
                    "resource_uri": "/v2.1/users/6d342b76b2b9b00c63324a0d0fcca8/"
                }
            ],
            "email": "jerry@example.org",
            "linked_emails": [
                "jerry@example.org",
                "badman@example.org",
                "domainmaster@example.org",
                "hellooooooo@example.org",
                "jaseinfeld@example.org",
                "jerry_seinfeld@example.org",
                "puffyshirt@example.org",
                "seinfeld4@example.org"
            ],
            "social_links": [
                {
                    "type": "twitter",
                    "url": "https://twitter.com/jerryseinfeld",
                    "followers": 26700
                },
                {
                    "type": "facebook",
                    "url": "https://www.facebook.com/JerrySeinfeld",
                    "followers": 6584
                },
                {
                    "type": "linkedin",
                    "url": "https://www.linkedin.com/pub/jerry-seinfeld"
                }
            ],
            "age": "61",
            "education": "Completed College",
            "gender": "Male",
            "high_net_worth": "Yes",
            "home_owner_status": "Rent",
            "household_income": "50k-75k",
            "length_of_residence": "10 Years",
            "marital_status": "Single",
            "market_value": "500k-1mm",
            "occupation": "White Collar Worker",
            "presence_of_children": "No",
            "resource_uri": "/v2.1/users/97d949a413f4ea8b85e9586e1f2d9a/"
        }

 

Update a Profile

On occasion, you may find that the profile data we provide is incorrect or missing. This typically happens when a phone number is re-assigned to a new individual and our database has not caught up to the change. In this case, we ask that you update the profile with accurate information, and we will credit an API call back to your account.

Arguments

Field Definition
"first_name"
OPTIONAL
Caller’s first name.
"middle_name"
OPTIONAL
Caller’s middle name.
"last_name"
OPTIONAL
Caller’s last name.
"email"
OPTIONAL
The email address associated with the user_id for verification purposes. Using this information to send unsolicited "spam" emails is in violation of our Terms of Service and will result in your account being terminated.
"shipping_address1", "shipping_address2"
OPTIONAL
Caller’s mailing address(es).

Returns

Successful response has 200 (OK) HTTP status with "Update Received." body.

If you have incorrect request, response will like below.

Method update_by_profile_id

res = client.update_by_profile_id(profile_id, data)

Parameters

ParameterTypeDescription
profile_id str ID of a profile from get by phone response
data dict Request data to update

How to use example

from pynextcaller.client import NextCallerClient
api_username = "<api username>"
api_password = "<api password>"
profile_id = "97d949a413f4ea8b85e9586e1f2d9a"
data = {
    "first_name": "Clark",
    "last_name": "Kent"
}
client = NextCallerClient(api_username, api_password)
client.update_by_profile_id(profile_id, data)

Full Example

Full example of updating a profile see here.

Method UpdateByProfileId

client.UpdateByProfileId(profileId, postProfile);

Parameters

ParameterTypeDescription
postProfile ProfilePostRequest Object with data to request
profileId String ID of a profile from get by phone response

How to use example

string apiUsername = "<api username>";
string apiPassword = "<api password>";
string profileId = "97d949a413f4ea8b85e9586e1f2d9a";
ProfileToPost profile = new ProfileToPost
{
    FirstName = "Clark",
    LastName = "Kent"
};

NextCallerClient client = new NextCallerClient(apiUsername, apiPassword);

client.UpdateByProfileId(profileId, profile);

Full Example

Full example of updating a profile see here.

Method updateByProfileId

<?php
$client->updateByProfileId($id, $data);

Parameters

ParameterTypeDescription
$id String ID of a profile from get by phone response
$data Object Object for serialize as request

How to use example

<?php
$apiUsername = '<api username>';
$apiPassword = '<api password>';
$id = '97d949a413f4ea8b85e9586e1f2d9a';
$client = new NextCallerClient($apiUsername, $apiPassword);
$data = array(
    'first_name' => 'FirstName',
    'last_name' => 'LastName'
)
$client->updateByProfileId($id, $data);

Full Example

Full example of updating a profile see here.

Metgod updateByProfileId

client.updateByProfileId(profileId, data, successCallback, errorCallback)

Parameters

ParameterTypeDescription
profileId String ID of a profile from get by phone response
data Object Object for serialize as request
successCallback Function Function called on a success result
errorCallback Function Function called on an error

Callbacks

successCallback - function called on a success result

function successCallback(data, statusCode) {
    console.log(data);
    console.log(statusCode);
}

errorCallback - function called on an error

function error_callback(error, statusCode) {
    console.log(error);
    console.log(statusCode);
}

How to use example

var apiUsername = "<api username>",
    apiPassword = "<api password>",
    profileId = "97d949a413f4ea8b85e9586e1f2d9a",
    client = NextcallerClient(apiUsername, apiPassword),
    data = {
        'first_name': 'FirstName',
        'last_name': 'LastName'
    };

client.updateByProfileId(profileId, data, function (data, statusCode) {
    console.log(data);
    console.log(statusCode);
}, function (error, statusCode) {
    console.log(error);
    console.log(statusCode);
});

Full Example

Full example of updating a profile see here.

Method updateByProfileId

client.updateByProfileId(profileId, profileData);

Parameters

ParameterTypeDescription
profileId String ID of a profile from get by phone response
profileData Map<String, Object> Map for serializing as request
Returns boolean true if succeeded update, else false

How to use example

import com.nextcaller.integration.client.NextCallerClient;
import java.util.HashMap;
import java.util.Map;

public class UpdateByProfileIdExample {
    String apiUsername = "<api username>";
    String apiPassword = "<api password>";

    NextCallerClient client = new NextCallerClient(apiUsername, apiPassword);

    public void example() throws Exception {
        String profileId = "97d949a413f4ea8b85e9586e1f2d9a";
        Map<String, Object> profileData = new HashMap<String, Object>(){{
            put("first_name", "Clark");
            put("last_name", "Kent");
        }};
        String accountId = "tom@nextcaller.com";

        boolean success = client.updateByProfileId(profileId, profileData);
    }
}

Full Example

Full example of updating a profile see here.

Metgod updateByProfileId

client.updateByProfileId(profileId, data, successCallback, errorCallback)

Parameters

ParameterTypeDescription
profileId String ID of a profile from get by phone response
data Object Object for serialize as request
successCallback Function Function called on a success result
errorCallback Function Function called on an error

Callbacks

successCallback - function called on a success result


function successCallback(data, statusCode) {
    console.log(data);
    console.log(statusCode);
}

errorCallback - function called on an error


function errorCallback(error, statusCode) {
    console.log(error);
    console.log(statusCode);
}

How to use example

var module = require("nextcaller-nodejs-api"),
    apiUsername = "<api username>",
    apiPassword = "<api password>",
    profileId = "97d949a413f4ea8b85e9586e1f2d9a",
    client = module.Client(apiUsername, apiPassword),
    data = {
        'first_name': 'Clark',
        'last_name': 'Kent'
    };

client.updateByProfileId(profileId, data, function (data, statusCode) {
    console.log(data);
    console.log(statusCode);
}, function (error, statusCode) {
    console.log(error);
    console.log(statusCode);
});

Full Example

Full example of updating a profile see here.

Method update_by_profile_id

client.update_by_profile_id(profile_id, data)

Parameters

ParameterTypeDescription
profile_id  String  ID of a profile from get by phone response
data  Hash  Request data to update

How to use example

require 'nextcaller_client'
api_username = "<api username>"
api_password = "<api password>"
profile_id = "97d949a413f4ea8b85e9586e1f2d9a"
data = {
    "first_name" => "Clark",
    "last_name" => "Kent"
}
client = NextcallerClient::NextCallerClient.new(api_username, api_password)
client.update_by_profile_id(profile_id, data)

Full Example

Full example of updating a profile see here.

 

Definition

POST https://api.nextcaller.com/v2.1/users/<profile_id>/

Example request

curl -X POST \
-H "Content-Type: application/json" \
-u "<api username>:<api password>" \
-d '{
    "first_name":"Clark",
    "middle_name":"S",
    "last_name":"Kent",
    "email":"clarkkent@supermail.com",
    "shipping_address1":{
        "line1":"223 Kryptonite Ave.",
        "line2":"",
        "city":"Smallville",
        "state":"KS",
        "zip_code":"66002"
    },
    "shipping_address2":{
        "line1":"224 Kryptonite Ave.",
        "line2":"",
        "city":"Smallville",
        "state":"KS",
        "zip_code":"66002"
    }
}' \
"https://api.nextcaller.com/v2.1/users/5ccdf85571e983002386ce6bca7054/?format=json"

Example response

Successful response has 200 (OK) HTTP status with "Update Received." body.

 

Fraud API

Our fraud detection platform flags suspicious callers with 3 easy-to-read fraud levels (Low, Medium, and High). We detect all forms of call spoofing, and provide an accurate analysis within milliseconds of the call; this allows your business to route high-risk callers appropriately, before they speak to one of your agents.

If a caller is certified with a “Low” threat level, your business should follow normal authentication protocols. If a caller is flagged as “Medium” or “High” threat level, we recommend asking additional security questions and routing that caller to agents better trained to handle fraudsters and social engineering. Typically, Less than 2% of callers will be flagged as “High” as this generally happens when a caller is intentionally masking their true identity. Not all callers masking their identities are fraudsters, but the vast majority of phone fraud does occur via spoofing.

Custom integration is required to use our Fraud API, so please contact your Next Caller account representative for more information. The integration process typically takes one business day, and there are no setup fees, software, or clunky hardware to install.

Fraud Levels

Our fraud detection platform flags suspicious callers with 3 easy-to-read fraud levels (Low, Medium, and High). We detect all forms of call spoofing, and provide an accurate analysis within a few hundred milliseconds of an inbound call. Our warnings allow agents to handle all callers appropriately, based on their fraud threat.

Attributes of a response

Field Definition
"spoofed"
string
Whether or not the phone number appears to be spoofed.
All possible values: "true", "false", "unknown"
"fraud_risk" string The risk that the call is fraudulent.
All possible values: "low", "medium", "high"
"ani"
string
The phone number with the country code prefix of 1.
Example: "12125551212"
"cid"
string
The phone number with the country code prefix of 1, or unknown.
"cid_blocked"
string
possible values are yes, no
"created"
int
The timestamp of when the fraud level object was created.
Example: 1422037492
"created_iso"
string
The timestamp of when the fraud level object was created in ISO format.
Example: "2015-01-23T13:24:52.158746+00:00"

 

Fraud Documentation

To ensure security, we do not publicly publish documentation for our Fraud API, as fraudsters are aware of Google. Please contact your Next Caller representative to learn how to integrate our Fraud API.

Example response

{
    "spoofed": "true",
    "fraud_risk": "high",
    "ani": "12125551212",
    "cid": "12125551212",
    "cid_blocked": "no",
    "created": 1422037492,
    "created_iso": "2015-01-23T13:24:52.158746+00:00"
}

 

GET Fraud Level via Phone

Returns

Returns a fraud level object if the phone number was valid and a the call was matched in our system.

If a phone number can not be matched to a call in our system the following will be returned:

{
    "spoofed": "unknown",
    "fraud_risk": "medium",
    "ani": "1<phone>",
    "cid": "unknown",
    "cid_blocked": "no",
    "created": "1422037492",
    "created_iso": "2015-01-23T13:24:52.158746+00:00"
} 

Otherwise an error will be returned if the phone number was not valid, or if there was an error on the server.

 

Errors

If you provide invalid parameters to the Next Caller API you may receive an error. Our API libraries can raise exceptions when this happens, and we recommend that you gracefully handle these exceptions.

Fields Specification

Each error looks like hashed list with "error" field, that includes one more hashed list with error data.

FieldDefinition
"message"
string
REQUIRED
An error message designed to be understandable for a human.
This field is always present in an error.
"code"
string
OPTIONAL
This field is not always present in an error.
"type"
string
OPTIONAL
This field is not always present in an error.
"description"
hash
OPTIONAL
Additional information about the error.
Keys of the hash correspond to arguments of the request, and the value for each key is an array of errors specific to that argument. An example is shown to the right.
This field is not always present in an error.

Error Responses

Error CodeHTTP Status CodeTypeDefinition
400 400 Bad Request Media type error
401 401 Authentication Basic or OAuth Authorization Required
404 404 Bad Request Resource hasn't been found
415 415 Bad Request Content type you have requested is not supported
416 400 Bad Request Malformed request
422 400 Unprocessable Entity Validation Error
500 500 Internal Error Sorry, all extensions are busy
555 400 Bad Request The number you have entered is invalid
556 400 Bad Request You didn't provide a phone number for fraud info
558 400 Bad Request The profile id you have entered is invalid
559 400 Bad Request Invalid pagination parameter
560 400 Bad Request The email address you have entered is invalid
1046 401 Authentication Your consumer key is invalid
1047 401 Authentication Your credentials are no longer valid
1049 401 Authentication Your consumer key has expired
1052 405 Authentication This HTTP method is not allowed
1053 405 Authentication This operation is not allowed
1054 400 Validation There are validation errors
1055 403 Authentication This resource is available for platform accounts only
1056 429 Authentication Free billing plan API call limit is exceeded
1060 403 Authentication Your account does not have an active plan
1061 429 Too Many Requests API calls per second limit is exceeded
1062 403 Authentication Your subscription has been locked
8643 402 Authentication Your trial has expired
8644 402 Authentication We're unable to charge your account

Exceptions List

Our library can throw the following exceptions:

ExceptionDefinition
ArgumentError Thrown when an invalid phone number or profile id is provided.
RateLimitException Throw in case of API calls per second limit is exceeded.
NextcallerClient::HttpException This exception is raised when the Next Caller API returns an HTTP status code >= 400.

Error Handling

Full example of error handling see here.

Exceptions List

Our library can throw the following exceptions:

ExceptionDefinition
FormatException Thrown in case of incorrect phone number or profile id.
RateLimitException Throw in case of API calls per second limit is exceeded.
BadResponseException Thrown if the library gets a response with the http code 4xx or 5xx.
PaginationException Thrown in case of incorrect page number for GetPlatformStatistics request.

Error Handling

Full example of error handling see here.

Exceptions List

Our library can throw the following exceptions:

ExceptionDefinition
ValidationException Throw in case of incorrect phone number or profile id.
AuthenticationException In case of wrong username or password a AuthenticationException exception will be thrown.
RateLimitException In case of API calls per second limit is exceeded.
HttpException In case of the library gets a response with the http code more or equal 400 and 500.
java.io.IOException In case of the library cannot parse response and a request times out.

RateLimitException

On this exception you can also use method getRateLimit() to retrive you requests per seconds limit value and getResetTime() to retrive UTC epoch seconds when limit will be reseted.

Error Handling

Full example of error handling see here.

Example error request

curl -X GET \
-u "<api username>:<api password>" \
-H "Content-Type: application/json" \
"https://api.nextcaller.com/v2.1/records/?phone=2125&format=json"

Example error response

{
    "error": {
        "message": "The number you have entered is invalid. Please ensure your number contains 10 digits.",
        "code": "555",
        "type": "Bad Request"
    }
}

Exceptions List

Our library can throw the following exceptions:

ExceptionDefinition
ValueError Thrown when an invalid phone number or profile id is provided.
RateLimitException Throw in case of API calls per second limit is exceeded.
HTTPError* This exception is raised when the Next Caller API returns an HTTP status code >= 400.
ConnectionError* Thrown in the event of a network problem (e.g. DNS failure, refused connection, etc).
Timeout* Thrown if a request times out.
TooManyRedirects* Thrown if the request exceeds the maximum number of redirects. If this happens please contact us.

* These exceptions are from requests library and inherit from the requests.exceptions.RequestException class. 

Example error response with description

{
    "error": {
        "message": "There are validation errors:",
        "code": "1054",
        "type": "Validation",
        "description": {
            "email": [
                "Invalid email address"
            ]
        }
    }
}

Error Handling

Full example of error handling see here.

Exceptions List

Our library can throw the following exceptions:

ExceptionDefinition
RateLimitException Throw in case of API calls per second limit is exceeded.
BadResponseException* In case of an incorrect answer received, lib throws this exception.
FormatException* Thrown if the server returns a response that can’t be parsed correctly. This shouldn’t happen, so if it does contact us.
ClientErrorResponseException** Thrown if the Next Caller API returns an HTTP status code between 400 and 499.
ServerErrorResponseException** Thrown if the Next Caller API returns an HTTP status code between 500 and 599. 
TooManyRedirectsException** Thrown if the request exceeds the maximum number of redirects. If this happens please contact us.

* Error data can be access with the getError() method. The original request and response can be accessed with the getRequest() and getResponse() methods. For example:

<?php
try {
    $records = $client->getByPhone($phoneNumber);
} catch (\NextCaller\Exception\BadResponseException $e) {
    var_dump($e->getError());
    var_dump($e->getCode());
    var_dump($e->getMessage());
    $request = $e->getRequest();
    $response = $e->getResponse();
}

** These exceptions are from Guzzle library and inherit from the Guzzle\Http\Exception\BadResponseException class.

Error Handling

Full example of error handling see here.

Error Handler

If your request was incorrect or server error has occurred, instead of success_callback, the library calls error_callback, that is passed as the last argument like in example below:

function successCallback(data, statusCode) {
    console.log(data);
    console.log(statusCode);
}
function errorCallback(error, statusCode) {
    console.log(error);
    console.log(statusCode);
}
client.getByPhone(number, successCallback, errorCallback)

Full Example

Full example of error handling see here.

Error Handler

If your request was incorrect or server error has occurred, instead of success_callback, the library calls error_callback, that is passed as the last argument like in example below:

function success_callback(data, statusCode) {
    console.log(data);
    console.log(statusCode);
}
function error_callback(error, statusCode) {
    console.log(error);
    console.log(statusCode);
}
client.getByPhone(number, successCallback, errorCallback)

Full Example

Full example of error handling see here.

API Change Log

API v2.1:

1. "GET Profile via Name & Address" functionality has been added.

2. "GET Profile via Email" functionality has been added.

3. "POST Profile" response status has been changed from 204 to 200.

4. "GET Profile" response has been changed:

  • "carrier" & "line_type" were moved to phone entry;

  • "department" & "language" have been removed.