realValiditorealValiditorealValiditorealValidito
  • HOME
  • SERVICES
    • Phone Lookup
    • DNC Lookup
    • Gender Lookup
    • ZIP Code Lookup
  • API
  • PRICING
  • FAQ
  • CONTACT US
  • LOGIN
  
  
  
  • API Reference
  • Introduction
  • Base URL
  • Authentication
  • Phone Number Validation API
    • Get Available Credits
    • Phone Number Lookup
  • DNC Scrub API
    • Get Available Credits
    • DNC Lookup
  • Gender API
    • Get Available Credits
    • Gender Lookup
  • ZIP Code Lookup API
    • Get Available Credits
    • ZIP Code Lookup
  • HTTP Response Codes
  • Errors
  • Integrations
  • GoHighLevel Integration
    • Authentication Test
    • Get Available Credits
    • Phone Lookup
    • DNC Lookup
    • Phone + DNC Lookup
  • Zapier Integration
    • Account Info (Auth Test)
    • Authentication Test
    • Get Available Credits
    • Credit Alerts (Trigger)
    • Phone Lookup
    • DNC Lookup
    • Phone + DNC Lookup
  • Services
  • Phone Lookup
  • DNC Lookup
  • Pricing & Credits

RealValidito Lookup API Documentation

RealValidito provides a real-time REST API for phone number validation, DNC lookup, carrier detection, and line type identification across US and Canada numbers. Each API call returns a JSON response in under 200ms — covering active status, line type (mobile, landline, VoIP, toll-free), carrier name, porting history, time zone, and Do Not Call registry status. All endpoints use standard HTTP methods with API key authentication. New accounts receive 1,000 free credits — no credit card required.

Use the API to validate numbers at point of entry in signup forms, enrich CRM records in real time, clean bulk contact lists, or build TCPA-compliant outreach workflows. Code examples are available in 7 languages including Python, Node.js, PHP, Ruby, Java, Go, and cURL. For bulk validation without API integration, use the CSV upload tool in the dashboard.

Common use cases

  • TCPA & DNC compliance — scrub mobile numbers against the national Do Not Call Registry before outbound calls or SMS campaigns
  • Carrier & line type detection — identify mobile, landline, VoIP, toll-free, and prepaid numbers to route messages correctly and avoid wasted credits
  • Lead validation — verify that a phone number is real, active, and reachable before it enters your CRM
  • SMS deliverability — filter out VoIP and landline numbers before bulk sends to improve delivery rates and sender reputation
  • Fraud prevention — flag disposable VoIP numbers at account sign-up to block synthetic identity fraud

RealValidito covers US and Canada numbers. The same API call returns carrier name, line type, DNC status, TCPA litigator flag, region, and number status.

Getting started is free — your account comes with 1,000 free credits, no credit card required. Create a free account and run your first lookup in under 5 minutes.

Quick start

After signing up, copy your API key and secret from your console, then run:

cURL — Quick Start
curl -X POST https://app.realvalidito.com/phonelookup/validate \
  -H "Content-Type: application/json" \
  -d '{
    "api_key":    "YOUR_API_KEY",
    "api_secret": "YOUR_API_SECRET",
    "numbers":    ["470*******"]
  }'
Response
{
  "status": "success",
  "data": {
    "470*******": {
      "status": "Valid",
      "phone_number": "+1470*******",
      "national_format": "(470) ***-****",
      "country_prefix": "1",
      "number_type": "Mobile",
      "zip": "30097",
      "area": "",
      "city": "DULUTH",
      "state": "GA",
      "country": "US",
      "timezone": "EST (America/New_York)",
      "network_name": "CELLCO PARTNERSHIP DBA VERIZON",
      "network_type": "WIRELESS",
      "network_domain": "470*******@vtext.com"
    }
  }
}

Base URL

All URLs referenced in the API documentation have the following base :

https://app.realvalidito.com

This REST API is served over HTTPS. To ensure data privacy, unencrypted HTTP is not supported.

 

Request Header :

Content-Type: application/json

Authentication

All RealValidito API requests require authentication. Pass your API key and API secret as fields in the JSON request body (POST endpoints) or as path parameters (GET endpoints).

Find your API key and secret in your console.

Security: Never embed your API key or secret directly in client-side code or public repositories. Store them as environment variables (e.g. REALVALIDITO_API_KEY) and read them server-side.

Your API key and secret are tied to your account. You are responsible for all API calls made with your credentials.

Phone Number Validation API

Get Available Credits
GET /phonelookup/getcredits/{api_key}/{api_secret}
Phone Number Lookup
POST /phonelookup/validate
Get Available Credits
GET /phonelookup/getcredits/{api_key}/{api_secret}

Path variables

api_key
string required

API Key

Example:
RWK0JWVM3Gp2QmtG09TStoWjhjNlB
api_secret
string required

API Secret

Example:
f606925fd8f72ebc15a5c27e7be040

Responses

200 OK
Success
Failed

{
  "status": "success",
  "data": {
     "available_credits": 5000
   }
}


Unauthorized

{ "status": "failed", "error": { "error_code": 600, "message": "Invalid API Key or API Secret." } } { "status": "failed", "error": { "error_code": 614, "message": "The request could not be authenticated. Only HTTP GET method is allowed." } }
cURL (Bash)
JQuery (Javascript)
PHP (cURL)
curl -X GET 'https://app.realvalidito.com/phonelookup/getcredits/RWK0JWVM3Gp2QmtG09TStoWjhjNlB/f606925fd8f72ebc15a5c27e7be040' \

HTTP/1.1 200 OK 

Content-Type: application/json

{
  "status": "success",
  "data": {
     "available_credits": 5000
   }
}
var api_key = 'RWK0JWVM3Gp2QmtG09TStoWjhjNlB';
var api_secret = 'f606925fd8f72ebc15a5c27e7be040';
$.ajax({
    url: 'https://app.realvalidito.com/phonelookup/getcredits/' + api_key + '/' + api_secret,
    method: 'GET',
    dataType: 'json',
    success: function(data) {
        console.log(data);       
    }
});

HTTP/1.1 200 OK 

Content-Type: application/json

{
  "status": "success",
  "data": {
     "available_credits": 5000
   }
}
$api_key = 'RWK0JWVM3Gp2QmtG09TStoWjhjNlB';
$api_secret = 'f606925fd8f72ebc15a5c27e7be040';
$ch = curl_init('https://app.realvalidito.com/phonelookup/getcredits/' . api_key . '/' + api_secret);  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
curl_close($ch);
echo $data;

HTTP/1.1 200 OK 

Content-Type: application/json

{
  "status": "success",
  "data": {
     "available_credits": 5000
   }
}
Phone Number Lookup
POST /phonelookup/validate

Request body

Object
api_key
string required

API Key

Example:
RWK0JWVM3Gp2QmtG09TStoWjhjNlB
api_secret
string required

API Secret

Example:
f606925fd8f72ebc15a5c27e7be040
numbers
array required

Phone number(s) to validate

Example:
['1234567890', '470*******', '908*******', '704*******']
Array of 10 digit, numeric phone number of USA / CANADA only. No spaces, special characters, etc. No leading +1.
Maximum of 1,000 phone numbers are permitted.

Responses

200 OK
Success
Failed

{
  "status": "success",
  "data": {
    "1234567890": {
      "status": "Invalid",
      "phone_number": "1234567890",
      "national_format": "",
      "country_prefix": "",
      "number_type": "Unknown",
      "zip": "",
      "area": "",
      "city": "",
      "state": "",
      "country": "",
      "timezone": "",
      "network_name": "",
      "network_type": "",
      "network_domain": ""
    },
    "470*******": {
      "status": "Valid",
      "phone_number": "+1470*******",
      "national_format": "(470) ***-****",
      "country_prefix": "1",
      "number_type": "Mobile",
      "zip": "30097",
      "area": "",
      "city": "DULUTH",
      "state": "GA",
      "country": "US",
      "timezone": "EST (America/New_York)",
      "network_name": "CELLCO PARTNERSHIP DBA VERIZON",
      "network_type": "WIRELESS",
      "network_domain": "470*******@vtext.com"
    },
    "908*******": {
      "status": "Valid",
      "phone_number": "+1908*******",
      "national_format": "(908) ***-****",
      "country_prefix": "1",
      "number_type": "Landline",
      "zip": "07102",
      "area": "Essex",
      "city": "NEWARK",
      "state": "NJ",
      "country": "US",
      "timezone": "EST (America/New_York)",
      "network_name": "CABLEVISION LIGHTPATH, INC. -",
      "network_type": "CLEC",
      "network_domain": ""
    },
    "704*******": {
      "status": "Valid",
      "phone_number": "+1704*******",
      "national_format": "(704) ***-****",
      "country_prefix": "1",
      "number_type": "VoIP",
      "zip": "",
      "area": "",
      "city": "",
      "state": "NC",
      "country": "US",
      "timezone": "EST",
      "network_name": "LEVEL 3 COMMUNICATIONS, LLC -",
      "network_type": "CLEC",
      "network_domain": ""
    }
  }
}


Unauthorized

{ "status": "failed", "error": { "error_code": 600, "message": "Invalid API Key or API Secret." } } { "status": "failed", "error": { "error_code": 601, "message": "API Key & API Secret are required." } } { "status": "failed", "error": { "error_code": 602, "message": "The request could not be authenticated. Only HTTP POST method is allowed." } }

Payment Required

{ "status": "failed", "error": { "error_code": 603, "message": "Insufficient credits are available to cover the cost of the requested operation." } } { "status": "failed", "error": { "error_code": 604, "message": "No credits are available to cover the cost of the requested operation." } }

Inactive Account

{ "status": "failed", "error": { "error_code": 605, "message": "Your account is not activated to use this services." } }

Invalid File Format

{ "status": "failed", "error": { "error_code": 606, "message": "Invalid file format, supported file format - (csv)." } }

Unknown Error

{ "status": "failed", "error": { "error_code": 607, "message": "Unknown error : The cause of the error is unknown but details have been passed to our support staff who will investigate. Please send error message on Support Team for immediate response." } }

Phone Number(s) Required

{ "status": "failed", "error": { "error_code": 608, "message": "The request doesn't contain Phone Number(s)." } }

Too Many Phone Numbers

{ "status": "failed", "error": { "error_code": 609, "message": "The request must not contain more than 1,000 phone numbers." } }
cURL (Bash)
JQuery
PHP (cURL)
NodeJS
Python
Go
C#
curl \
-H "Content-Type: application/json" \
-X POST \
-d '{"api_key": "RWK0JWVM3Gp2QmtG09TStoWjhjNlB","api_secret": "f606925fd8f72ebc15a5c27e7be040","numbers": ['1234567890', '470*******', '908*******', '704*******']}' \
"https://app.realvalidito.com/phonelookup/validate"

HTTP/1.1 200 OK 

Content-Type: application/json

{
  "status": "success",
  "data": {
    "1234567890": {
      "status": "Invalid",
      "phone_number": "1234567890",
      "national_format": "",
      "country_prefix": "",
      "number_type": "Unknown",
      "zip": "",
      "area": "",
      "city": "",
      "state": "",
      "country": "",
      "timezone": "",
      "network_name": "",
      "network_type": "",
      "network_domain": ""
    },
    "470*******": {
      "status": "Valid",
      "phone_number": "+1470*******",
      "national_format": "(470) ***-****",
      "country_prefix": "1",
      "number_type": "Mobile",
      "zip": "30097",
      "area": "",
      "city": "DULUTH",
      "state": "GA",
      "country": "US",
      "timezone": "EST (America/New_York)",
      "network_name": "CELLCO PARTNERSHIP DBA VERIZON",
      "network_type": "WIRELESS",
      "network_domain": "470*******@vtext.com"
    },
    "908*******": {
      "status": "Valid",
      "phone_number": "+1908*******",
      "national_format": "(908) ***-****",
      "country_prefix": "1",
      "number_type": "Landline",
      "zip": "07102",
      "area": "Essex",
      "city": "NEWARK",
      "state": "NJ",
      "country": "US",
      "timezone": "EST (America/New_York)",
      "network_name": "CABLEVISION LIGHTPATH, INC. -",
      "network_type": "CLEC",
      "network_domain": ""
    },
    "704*******": {
      "status": "Valid",
      "phone_number": "+1704*******",
      "national_format": "(704) ***-****",
      "country_prefix": "1",
      "number_type": "VoIP",
      "zip": "",
      "area": "",
      "city": "",
      "state": "NC",
      "country": "US",
      "timezone": "EST",
      "network_name": "LEVEL 3 COMMUNICATIONS, LLC -",
      "network_type": "CLEC",
      "network_domain": ""
    }
  }
}
var url = 'https://app.realvalidito.com/phonelookup/validate';
var api_key = 'RWK0JWVM3Gp2QmtG09TStoWjhjNlB';
var api_secret = 'f606925fd8f72ebc15a5c27e7be040';
var request = {
	api_key: api_key,
	api_secret: api_secret,
	numbers: ['1234567890', '470*******', '908*******', '704*******']
};

$.ajax(url, {
    data : JSON.stringify(request),
    contentType : 'application/json',
    type : 'POST',
    dataType: 'json',
    success: function (data,status,xhr) {
        console.log(data);
    }
});

HTTP/1.1 200 OK 

Content-Type: application/json

{
  "status": "success",
  "data": {
    "1234567890": {
      "status": "Invalid",
      "phone_number": "1234567890",
      "national_format": "",
      "country_prefix": "",
      "number_type": "Unknown",
      "zip": "",
      "area": "",
      "city": "",
      "state": "",
      "country": "",
      "timezone": "",
      "network_name": "",
      "network_type": "",
      "network_domain": ""
    },
    "470*******": {
      "status": "Valid",
      "phone_number": "+1470*******",
      "national_format": "(470) ***-****",
      "country_prefix": "1",
      "number_type": "Mobile",
      "zip": "30097",
      "area": "",
      "city": "DULUTH",
      "state": "GA",
      "country": "US",
      "timezone": "EST (America/New_York)",
      "network_name": "CELLCO PARTNERSHIP DBA VERIZON",
      "network_type": "WIRELESS",
      "network_domain": "470*******@vtext.com"
    },
    "908*******": {
      "status": "Valid",
      "phone_number": "+1908*******",
      "national_format": "(908) ***-****",
      "country_prefix": "1",
      "number_type": "Landline",
      "zip": "07102",
      "area": "Essex",
      "city": "NEWARK",
      "state": "NJ",
      "country": "US",
      "timezone": "EST (America/New_York)",
      "network_name": "CABLEVISION LIGHTPATH, INC. -",
      "network_type": "CLEC",
      "network_domain": ""
    },
    "704*******": {
      "status": "Valid",
      "phone_number": "+1704*******",
      "national_format": "(704) ***-****",
      "country_prefix": "1",
      "number_type": "VoIP",
      "zip": "",
      "area": "",
      "city": "",
      "state": "NC",
      "country": "US",
      "timezone": "EST",
      "network_name": "LEVEL 3 COMMUNICATIONS, LLC -",
      "network_type": "CLEC",
      "network_domain": ""
    }
  }
}
$url = "https://app.realvalidito.com/phonelookup/validate";
$api_key = 'RWK0JWVM3Gp2QmtG09TStoWjhjNlB';
$api_secret = 'f606925fd8f72ebc15a5c27e7be040';
$header = array('Content-Type:application/json');
$request_array = array(
	'api_key' => $api_key,
	'api_secret' => $api_secret,
	'numbers' => array('1234567890', '470*******', '908*******', '704*******'),
);
$request = json_encode($request_array);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, 1);
curl_setopt($ch,CURLOPT_POSTFIELDS, $request);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
$data = curl_exec($ch);
curl_close($ch);
echo $data;

HTTP/1.1 200 OK 

Content-Type: application/json

{
  "status": "success",
  "data": {
    "1234567890": {
      "status": "Invalid",
      "phone_number": "1234567890",
      "national_format": "",
      "country_prefix": "",
      "number_type": "Unknown",
      "zip": "",
      "area": "",
      "city": "",
      "state": "",
      "country": "",
      "timezone": "",
      "network_name": "",
      "network_type": "",
      "network_domain": ""
    },
    "470*******": {
      "status": "Valid",
      "phone_number": "+1470*******",
      "national_format": "(470) ***-****",
      "country_prefix": "1",
      "number_type": "Mobile",
      "zip": "30097",
      "area": "",
      "city": "DULUTH",
      "state": "GA",
      "country": "US",
      "timezone": "EST (America/New_York)",
      "network_name": "CELLCO PARTNERSHIP DBA VERIZON",
      "network_type": "WIRELESS",
      "network_domain": "470*******@vtext.com"
    },
    "908*******": {
      "status": "Valid",
      "phone_number": "+1908*******",
      "national_format": "(908) ***-****",
      "country_prefix": "1",
      "number_type": "Landline",
      "zip": "07102",
      "area": "Essex",
      "city": "NEWARK",
      "state": "NJ",
      "country": "US",
      "timezone": "EST (America/New_York)",
      "network_name": "CABLEVISION LIGHTPATH, INC. -",
      "network_type": "CLEC",
      "network_domain": ""
    },
    "704*******": {
      "status": "Valid",
      "phone_number": "+1704*******",
      "national_format": "(704) ***-****",
      "country_prefix": "1",
      "number_type": "VoIP",
      "zip": "",
      "area": "",
      "city": "",
      "state": "NC",
      "country": "US",
      "timezone": "EST",
      "network_name": "LEVEL 3 COMMUNICATIONS, LLC -",
      "network_type": "CLEC",
      "network_domain": ""
    }
  }
}
var request = require("request");
var options = {
 method: 'POST',
 url: 'https://app.realvalidito.com/phonelookup/validate',
 headers: {
   'Content-Type': 'application/json',
 },
 body: {
	 "api_key": "RWK0JWVM3Gp2QmtG09TStoWjhjNlB",
	 "api_secret": "f606925fd8f72ebc15a5c27e7be040",
	 "numbers": ['1234567890', '470*******', '908*******', '704*******']
 },
 json: true
};

request(options, function (err, response, body) {
  if (err) throw new Error(err);
  console.log(body);
});

HTTP/1.1 200 OK 

Content-Type: application/json

{
  "status": "success",
  "data": {
    "1234567890": {
      "status": "Invalid",
      "phone_number": "1234567890",
      "national_format": "",
      "country_prefix": "",
      "number_type": "Unknown",
      "zip": "",
      "area": "",
      "city": "",
      "state": "",
      "country": "",
      "timezone": "",
      "network_name": "",
      "network_type": "",
      "network_domain": ""
    },
    "470*******": {
      "status": "Valid",
      "phone_number": "+1470*******",
      "national_format": "(470) ***-****",
      "country_prefix": "1",
      "number_type": "Mobile",
      "zip": "30097",
      "area": "",
      "city": "DULUTH",
      "state": "GA",
      "country": "US",
      "timezone": "EST (America/New_York)",
      "network_name": "CELLCO PARTNERSHIP DBA VERIZON",
      "network_type": "WIRELESS",
      "network_domain": "470*******@vtext.com"
    },
    "908*******": {
      "status": "Valid",
      "phone_number": "+1908*******",
      "national_format": "(908) ***-****",
      "country_prefix": "1",
      "number_type": "Landline",
      "zip": "07102",
      "area": "Essex",
      "city": "NEWARK",
      "state": "NJ",
      "country": "US",
      "timezone": "EST (America/New_York)",
      "network_name": "CABLEVISION LIGHTPATH, INC. -",
      "network_type": "CLEC",
      "network_domain": ""
    },
    "704*******": {
      "status": "Valid",
      "phone_number": "+1704*******",
      "national_format": "(704) ***-****",
      "country_prefix": "1",
      "number_type": "VoIP",
      "zip": "",
      "area": "",
      "city": "",
      "state": "NC",
      "country": "US",
      "timezone": "EST",
      "network_name": "LEVEL 3 COMMUNICATIONS, LLC -",
      "network_type": "CLEC",
      "network_domain": ""
    }
  }
}
import requests
import array
import json
url = "https://app.realvalidito.com/phonelookup/validate"
numbers = [1234567890,470*******,908*******,704*******]
payload = {
	"api_key": "RWK0JWVM3Gp2QmtG09TStoWjhjNlB",
	"api_secret": "f606925fd8f72ebc15a5c27e7be040",
	"numbers": numbers
}
headers = {
	'Content-Type': "application/json",
}
response = requests.request("POST", url, json=payload, headers=headers)
response = response.json()
print('Response: ', response, '\n')

HTTP/1.1 200 OK 

Content-Type: application/json

{
  "status": "success",
  "data": {
    "1234567890": {
      "status": "Invalid",
      "phone_number": "1234567890",
      "national_format": "",
      "country_prefix": "",
      "number_type": "Unknown",
      "zip": "",
      "area": "",
      "city": "",
      "state": "",
      "country": "",
      "timezone": "",
      "network_name": "",
      "network_type": "",
      "network_domain": ""
    },
    "470*******": {
      "status": "Valid",
      "phone_number": "+1470*******",
      "national_format": "(470) ***-****",
      "country_prefix": "1",
      "number_type": "Mobile",
      "zip": "30097",
      "area": "",
      "city": "DULUTH",
      "state": "GA",
      "country": "US",
      "timezone": "EST (America/New_York)",
      "network_name": "CELLCO PARTNERSHIP DBA VERIZON",
      "network_type": "WIRELESS",
      "network_domain": "470*******@vtext.com"
    },
    "908*******": {
      "status": "Valid",
      "phone_number": "+1908*******",
      "national_format": "(908) ***-****",
      "country_prefix": "1",
      "number_type": "Landline",
      "zip": "07102",
      "area": "Essex",
      "city": "NEWARK",
      "state": "NJ",
      "country": "US",
      "timezone": "EST (America/New_York)",
      "network_name": "CABLEVISION LIGHTPATH, INC. -",
      "network_type": "CLEC",
      "network_domain": ""
    },
    "704*******": {
      "status": "Valid",
      "phone_number": "+1704*******",
      "national_format": "(704) ***-****",
      "country_prefix": "1",
      "number_type": "VoIP",
      "zip": "",
      "area": "",
      "city": "",
      "state": "NC",
      "country": "US",
      "timezone": "EST",
      "network_name": "LEVEL 3 COMMUNICATIONS, LLC -",
      "network_type": "CLEC",
      "network_domain": ""
    }
  }
}
package main

import (
"fmt"
"io/ioutil"
"net/http"
"strings"
"encoding/json"
)

type HttpResponseData struct {
 Data struct {
   International string `json:"international_format"`
   LineType string `json:"line_type"`
   Carrier string `json:"carrier"`
   Country string `json:"country_name"`
   Location string `json:"location"`
 } `json:"data"`
}

func main() {
  url := "https://app.realvalidito.com/phonelookup/validate"
  request := strings.NewReader('{"api_key": "RWK0JWVM3Gp2QmtG09TStoWjhjNlB","api_secret": "f606925fd8f72ebc15a5c27e7be040","numbers": ['1234567890', '470*******', '908*******', '704*******']}')
  req, _ := http.NewRequest("POST", url, request)

  req.Header.Add("Content-Type", "application/json")

  res, err := http.DefaultClient.Do(req)
  if err != nil {
      fmt.Println(err)
  } else {
    defer res.Body.Close()
    body, _ := ioutil.ReadAll(res.Body)

    var response HttpResponseData
    err = json.Unmarshal(body, &response)
    if err != nil {
      fmt.Println(err)
    }
    fmt.Println(response)
  }
}

HTTP/1.1 200 OK 

Content-Type: application/json

{
  "status": "success",
  "data": {
    "1234567890": {
      "status": "Invalid",
      "phone_number": "1234567890",
      "national_format": "",
      "country_prefix": "",
      "number_type": "Unknown",
      "zip": "",
      "area": "",
      "city": "",
      "state": "",
      "country": "",
      "timezone": "",
      "network_name": "",
      "network_type": "",
      "network_domain": ""
    },
    "470*******": {
      "status": "Valid",
      "phone_number": "+1470*******",
      "national_format": "(470) ***-****",
      "country_prefix": "1",
      "number_type": "Mobile",
      "zip": "30097",
      "area": "",
      "city": "DULUTH",
      "state": "GA",
      "country": "US",
      "timezone": "EST (America/New_York)",
      "network_name": "CELLCO PARTNERSHIP DBA VERIZON",
      "network_type": "WIRELESS",
      "network_domain": "470*******@vtext.com"
    },
    "908*******": {
      "status": "Valid",
      "phone_number": "+1908*******",
      "national_format": "(908) ***-****",
      "country_prefix": "1",
      "number_type": "Landline",
      "zip": "07102",
      "area": "Essex",
      "city": "NEWARK",
      "state": "NJ",
      "country": "US",
      "timezone": "EST (America/New_York)",
      "network_name": "CABLEVISION LIGHTPATH, INC. -",
      "network_type": "CLEC",
      "network_domain": ""
    },
    "704*******": {
      "status": "Valid",
      "phone_number": "+1704*******",
      "national_format": "(704) ***-****",
      "country_prefix": "1",
      "number_type": "VoIP",
      "zip": "",
      "area": "",
      "city": "",
      "state": "NC",
      "country": "US",
      "timezone": "EST",
      "network_name": "LEVEL 3 COMMUNICATIONS, LLC -",
      "network_type": "CLEC",
      "network_domain": ""
    }
  }
}
using System;
using System.IO;
using System.Net;
using System.Text;
using Newtonsoft.Json.Linq;

namespace Examples.System.Net
{
    public class InstantVerifyExample
    {
        public static void Main()
        {
            WebRequest request = WebRequest.Create("https://app.realvalidito.com/phonelookup/validate");
            request.Method = "POST";
            string postData = "{\"api_key\": \"RWK0JWVM3Gp2QmtG09TStoWjhjNlB\",\"api_secret\": \"f606925fd8f72ebc15a5c27e7be040\",\"numbers\": [\"1234567890\", \"470*******\", \"908*******\", \"704*******\"]}";
            byte[] byteArray = Encoding.UTF8.GetBytes(postData);
            request.ContentType = "application/json";
            request.ContentLength = byteArray.Length;

            Stream dataStream = request.GetRequestStream();
            dataStream.Write(byteArray, 0, byteArray.Length);
            dataStream.Close();
            WebResponse response = request.GetResponse();
            dataStream = response.GetResponseStream();
            StreamReader reader = new StreamReader(dataStream);
            string responseFromServer = reader.ReadToEnd();
            JObject joResponse = JObject.Parse(responseFromServer);

            Console.WriteLine(joResponse);

            reader.Close();
            dataStream.Close();
            response.Close();
        }
    }
}

HTTP/1.1 200 OK 

Content-Type: application/json

{
  "status": "success",
  "data": {
    "1234567890": {
      "status": "Invalid",
      "phone_number": "1234567890",
      "national_format": "",
      "country_prefix": "",
      "number_type": "Unknown",
      "zip": "",
      "area": "",
      "city": "",
      "state": "",
      "country": "",
      "timezone": "",
      "network_name": "",
      "network_type": "",
      "network_domain": ""
    },
    "470*******": {
      "status": "Valid",
      "phone_number": "+1470*******",
      "national_format": "(470) ***-****",
      "country_prefix": "1",
      "number_type": "Mobile",
      "zip": "30097",
      "area": "",
      "city": "DULUTH",
      "state": "GA",
      "country": "US",
      "timezone": "EST (America/New_York)",
      "network_name": "CELLCO PARTNERSHIP DBA VERIZON",
      "network_type": "WIRELESS",
      "network_domain": "470*******@vtext.com"
    },
    "908*******": {
      "status": "Valid",
      "phone_number": "+1908*******",
      "national_format": "(908) ***-****",
      "country_prefix": "1",
      "number_type": "Landline",
      "zip": "07102",
      "area": "Essex",
      "city": "NEWARK",
      "state": "NJ",
      "country": "US",
      "timezone": "EST (America/New_York)",
      "network_name": "CABLEVISION LIGHTPATH, INC. -",
      "network_type": "CLEC",
      "network_domain": ""
    },
    "704*******": {
      "status": "Valid",
      "phone_number": "+1704*******",
      "national_format": "(704) ***-****",
      "country_prefix": "1",
      "number_type": "VoIP",
      "zip": "",
      "area": "",
      "city": "",
      "state": "NC",
      "country": "US",
      "timezone": "EST",
      "network_name": "LEVEL 3 COMMUNICATIONS, LLC -",
      "network_type": "CLEC",
      "network_domain": ""
    }
  }
}

DNC Scrub API

Get Available Credits
GET /dnclookup/getcredits/{api_key}/{api_secret}
DNC Lookup
POST /dnclookup/validate
Get Available Credits
GET /dnclookup/getcredits/{api_key}/{api_secret}

Path variables

api_key
string required

API Key

Example:
RWK0JWVM3Gp2QmtG09TStoWjhjNlB
api_secret
string required

API Secret

Example:
f606925fd8f72ebc15a5c27e7be040

Responses

200 OK
Success
Failed

{
  "status": "success",
  "data": {
     "available_credits": 5000
   }
}


Unauthorized

{ "status": "failed", "error": { "error_code": 600, "message": "Invalid API Key or API Secret." } } { "status": "failed", "error": { "error_code": 614, "message": "The request could not be authenticated. Only HTTP GET method is allowed." } }
cURL (Bash)
JQuery (Javascript)
PHP (cURL)
curl -X GET 'https://app.realvalidito.com/dnclookup/getcredits/RWK0JWVM3Gp2QmtG09TStoWjhjNlB/f606925fd8f72ebc15a5c27e7be040' \

HTTP/1.1 200 OK 

Content-Type: application/json

{
  "status": "success",
  "data": {
     "available_credits": 5000
   }
}
var api_key = 'RWK0JWVM3Gp2QmtG09TStoWjhjNlB';
var api_secret = 'f606925fd8f72ebc15a5c27e7be040';
$.ajax({
    url: 'https://app.realvalidito.com/dnclookup/getcredits/' + api_key + '/' + api_secret,
    method: 'GET',
    dataType: 'json',
    success: function(data) {
        console.log(data);       
    }
});

HTTP/1.1 200 OK 

Content-Type: application/json

{
  "status": "success",
  "data": {

     "available_credits": 5000
   }
}
$api_key = 'RWK0JWVM3Gp2QmtG09TStoWjhjNlB';
$api_secret = 'f606925fd8f72ebc15a5c27e7be040';
$ch = curl_init('https://app.realvalidito.com/dnclookup/getcredits/' . api_key . '/' + api_secret);  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
curl_close($ch);
echo $data;

HTTP/1.1 200 OK 

Content-Type: application/json

{
  "status": "success",
  "data": {
     "available_credits": 5000
   }
}
DNC Lookup
POST /dnclookup/validate

Request body

Object
api_key
string required

API Key

Example:
RWK0JWVM3Gp2QmtG09TStoWjhjNlB
api_secret
string required

API Secret

Example:
f606925fd8f72ebc15a5c27e7be040
numbers
array required

Phone number(s) to validate

Example:
['1234567890', '812*******', '908*******', '704*******', '757*******']
Array of 10 digit, numeric phone number of USA / CANADA only. No spaces, special characters, etc. No leading +1.
Maximum of 1,000 phone numbers are permitted.

Responses

200 OK
Success
Failed

{
  "status": "success",
  "data": {
    "cleaned_number": [
      "908*******",
      "704*******"
    ],
    "tcpa_litigator": [
      "757*******",
      "812*******"
    ],
    "federal_dnc": [
      "989*******",
      "207*******"
    ],
    "invalid": [
      "1234567890"
    ]
  }
}


Unauthorized

{ "status": "failed", "error": { "error_code": 600, "message": "Invalid API Key or API Secret." } } { "status": "failed", "error": { "error_code": 601, "message": "API Key & API Secret are required." } } { "status": "failed", "error": { "error_code": 602, "message": "The request could not be authenticated. Only HTTP POST method is allowed." } }

Payment Required

{ "status": "failed", "error": { "error_code": 603, "message": "Insufficient credits are available to cover the cost of the requested operation." } } { "status": "failed", "error": { "error_code": 604, "message": "No credits are available to cover the cost of the requested operation." } }

Inactive Account

{ "status": "failed", "error": { "error_code": 605, "message": "Your account is not activated to use this services." } }

Invalid File Format

{ "status": "failed", "error": { "error_code": 606, "message": "Invalid file format, supported file format - (csv)." } }

Unknown Error

{ "status": "failed", "error": { "error_code": 607, "message": "Unknown error : The cause of the error is unknown but details have been passed to our support staff who will investigate. Please send error message on Support Team for immediate response." } }

Phone Number(s) Required

{ "status": "failed", "error": { "error_code": 608, "message": "The request doesn't contain Phone Number(s)." } }

Too Many Phone Numbers

{ "status": "failed", "error": { "error_code": 609, "message": "The request must not contain more than 1,000 phone numbers." } }
cURL (Bash)
JQuery
PHP (cURL)
NodeJS
Python
Go
C#
curl \
-H "Content-Type: application/json" \
-X POST \
-d '{"api_key": "RWK0JWVM3Gp2QmtG09TStoWjhjNlB","api_secret": "f606925fd8f72ebc15a5c27e7be040","numbers": ['1234567890', '812*******', '908*******', '704*******', '757*******']}' \
"https://app.realvalidito.com/dnclookup/validate"

HTTP/1.1 200 OK 

Content-Type: application/json

{
  "status": "success",
  "data": {
    "cleaned_number": [
      "908*******",
      "704*******"
    ],
    "tcpa_litigator": [
      "757*******",
      "812*******"
    ],
    "federal_dnc": [
      "989*******",
      "207*******"
    ],
    "invalid": [
      "1234567890"
    ]
  }
}
var url = 'https://app.realvalidito.com/dnclookup/validate';
var api_key = 'RWK0JWVM3Gp2QmtG09TStoWjhjNlB';
var api_secret = 'f606925fd8f72ebc15a5c27e7be040';
var request = {
	api_key: api_key,
	api_secret: api_secret,
	numbers: ['1234567890', '812*******', '908*******', '704*******', '757*******']
};

$.ajax(url, {
    data : JSON.stringify(request),
    contentType : 'application/json',
    type : 'POST',
    dataType: 'json',
    success: function (data,status,xhr) {
        console.log(data);
    }
});

HTTP/1.1 200 OK 

Content-Type: application/json

{
  "status": "success",
  "data": {
    "cleaned_number": [
      "908*******",
      "704*******"
    ],
    "tcpa_litigator": [
      "757*******",
      "812*******"
    ],
    "federal_dnc": [
      "989*******",
      "207*******"
    ],
    "invalid": [
      "1234567890"
    ]
  }
}
$url = "https://app.realvalidito.com/dnclookup/validate";
$api_key = 'RWK0JWVM3Gp2QmtG09TStoWjhjNlB';
$api_secret = 'f606925fd8f72ebc15a5c27e7be040';
$header = array('Content-Type:application/json');
$request_array = array(
	'api_key' => $api_key,
	'api_secret' => $api_secret,
	'numbers' => array('1234567890', '812*******', '908*******', '704*******', '757*******'),
);
$request = json_encode($request_array);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, 1);
curl_setopt($ch,CURLOPT_POSTFIELDS, $request);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
$data = curl_exec($ch);
curl_close($ch);
echo $data;

HTTP/1.1 200 OK 

Content-Type: application/json

{
  "status": "success",
  "data": {
    "cleaned_number": [
      "908*******",
      "704*******"
    ],
    "tcpa_litigator": [
      "757*******",
      "812*******"
    ],
    "federal_dnc": [
      "989*******",
      "207*******"
    ],
    "invalid": [
      "1234567890"
    ]
  }
}
var request = require("request");
var options = {
 method: 'POST',
 url: 'https://app.realvalidito.com/dnclookup/validate',
 headers: {
   'Content-Type': 'application/json',
 },
 body: {
	 "api_key": "RWK0JWVM3Gp2QmtG09TStoWjhjNlB",
	 "api_secret": "f606925fd8f72ebc15a5c27e7be040",
	 "numbers": ['1234567890', '812*******', '908*******', '704*******', '757*******']
 },
 json: true
};

request(options, function (err, response, body) {
  if (err) throw new Error(err);
  console.log(body);
});

HTTP/1.1 200 OK 

Content-Type: application/json

{
  "status": "success",
  "data": {
    "cleaned_number": [
      "908*******",
      "704*******"
    ],
    "tcpa_litigator": [
      "757*******",
      "812*******"
    ],
    "federal_dnc": [
      "989*******",
      "207*******"
    ],
    "invalid": [
      "1234567890"
    ]
  }
}
import requests
import array
import json
url = "https://app.realvalidito.com/dnclookup/validate"
numbers = [1234567890,812*******,908*******,704*******,757*******]
payload = {
	"api_key": "RWK0JWVM3Gp2QmtG09TStoWjhjNlB",
	"api_secret": "f606925fd8f72ebc15a5c27e7be040",
	"numbers": numbers
}
headers = {
	'Content-Type': "application/json",
}
response = requests.request("POST", url, json=payload, headers=headers)
response = response.json()
print('Response: ', response, '\n')

HTTP/1.1 200 OK 

Content-Type: application/json

{
  "status": "success",
  "data": {
    "cleaned_number": [
      "908*******",
      "704*******"
    ],
    "tcpa_litigator": [
      "757*******",
      "812*******"
    ],
    "federal_dnc": [
      "989*******",
      "207*******"
    ],
    "invalid": [
      "1234567890"
    ]
  }
}
package main

import (
"fmt"
"io/ioutil"
"net/http"
"strings"
"encoding/json"
)

type HttpResponseData struct {
 Data struct {
   International string `json:"international_format"`
   LineType string `json:"line_type"`
   Carrier string `json:"carrier"`
   Country string `json:"country_name"`
   Location string `json:"location"`
 } `json:"data"`
}

func main() {
  url := "https://app.realvalidito.com/dnclookup/validate"
  request := strings.NewReader('{"api_key": "RWK0JWVM3Gp2QmtG09TStoWjhjNlB","api_secret": "f606925fd8f72ebc15a5c27e7be040","numbers": ['1234567890', '812*******', '908*******', '704*******', '757*******']}')
  req, _ := http.NewRequest("POST", url, request)

  req.Header.Add("Content-Type", "application/json")

  res, err := http.DefaultClient.Do(req)
  if err != nil {
      fmt.Println(err)
  } else {
    defer res.Body.Close()
    body, _ := ioutil.ReadAll(res.Body)

    var response HttpResponseData
    err = json.Unmarshal(body, &response)
    if err != nil {
      fmt.Println(err)
    }
    fmt.Println(response)
  }
}

HTTP/1.1 200 OK 

Content-Type: application/json

{
  "status": "success",
  "data": {
    "cleaned_number": [
      "908*******",
      "704*******"
    ],
    "tcpa_litigator": [
      "757*******",
      "812*******"
    ],
    "federal_dnc": [
      "989*******",
      "207*******"
    ],
    "invalid": [
      "1234567890"
    ]
  }
}
using System;
using System.IO;
using System.Net;
using System.Text;
using Newtonsoft.Json.Linq;

namespace Examples.System.Net
{
    public class InstantVerifyExample
    {
        public static void Main()
        {
            WebRequest request = WebRequest.Create("https://app.realvalidito.com/dnclookup/validate");
            request.Method = "POST";
            string postData = "{\"api_key\": \"RWK0JWVM3Gp2QmtG09TStoWjhjNlB\",\"api_secret\": \"f606925fd8f72ebc15a5c27e7be040\",\"numbers\": [\"1234567890\", \"812*******\", \"908*******\", \"704*******\", \"757*******\"]}";
            byte[] byteArray = Encoding.UTF8.GetBytes(postData);
            request.ContentType = "application/json";
            request.ContentLength = byteArray.Length;

            Stream dataStream = request.GetRequestStream();
            dataStream.Write(byteArray, 0, byteArray.Length);
            dataStream.Close();
            WebResponse response = request.GetResponse();
            dataStream = response.GetResponseStream();
            StreamReader reader = new StreamReader(dataStream);
            string responseFromServer = reader.ReadToEnd();
            JObject joResponse = JObject.Parse(responseFromServer);

            Console.WriteLine(joResponse);

            reader.Close();
            dataStream.Close();
            response.Close();
        }
    }
}

HTTP/1.1 200 OK 

Content-Type: application/json

{
  "status": "success",
  "data": {
    "cleaned_number": [
      "908*******",
      "704*******"
    ],
    "tcpa_litigator": [
      "757*******",
      "812*******"
    ],
    "federal_dnc": [
      "989*******",
      "207*******"
    ],
    "invalid": [
      "1234567890"
    ]
  }
}

Gender API

Get Available Credits
GET /genderlookup/getcredits/{api_key}/{api_secret}
Gender Lookup
POST /genderlookup/validate
Get Available Credits
GET /genderlookup/getcredits/{api_key}/{api_secret}

Path variables

api_key
string required

API Key

Example:
RWK0JWVM3Gp2QmtG09TStoWjhjNlB
api_secret
string required

API Secret

Example:
f606925fd8f72ebc15a5c27e7be040

Responses

200 OK
Success
Failed

{
  "status": "success",
  "data": {
     "available_credits": 5000
   }
}


Unauthorized

{ "status": "failed", "error": { "error_code": 600, "message": "Invalid API Key or API Secret." } } { "status": "failed", "error": { "error_code": 614, "message": "The request could not be authenticated. Only HTTP GET method is allowed." } }
cURL (Bash)
JQuery (Javascript)
PHP (cURL)
curl -X GET 'https://app.realvalidito.com/genderlookup/getcredits/RWK0JWVM3Gp2QmtG09TStoWjhjNlB/f606925fd8f72ebc15a5c27e7be040' \

HTTP/1.1 200 OK 

Content-Type: application/json

{
  "status": "success",
  "data": {
     "available_credits": 5000
   }
}
var api_key = 'RWK0JWVM3Gp2QmtG09TStoWjhjNlB';
var api_secret = 'f606925fd8f72ebc15a5c27e7be040';
$.ajax({
    url: 'https://app.realvalidito.com/genderlookup/getcredits/' + api_key + '/' + api_secret,
    method: 'GET',
    dataType: 'json',
    success: function(data) {
        console.log(data);       
    }
});

HTTP/1.1 200 OK 

Content-Type: application/json

{
  "status": "success",
  "data": {

     "available_credits": 5000
   }
}
$api_key = 'RWK0JWVM3Gp2QmtG09TStoWjhjNlB';
$api_secret = 'f606925fd8f72ebc15a5c27e7be040';
$ch = curl_init('https://app.realvalidito.com/genderlookup/getcredits/' . api_key . '/' + api_secret);  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
curl_close($ch);
echo $data;

HTTP/1.1 200 OK 

Content-Type: application/json

{
  "status": "success",
  "data": {
     "available_credits": 5000
   }
}
Gender Lookup
POST /genderlookup/validate

Request body

Object
api_key
string required

API Key

Example:
RWK0JWVM3Gp2QmtG09TStoWjhjNlB
api_secret
string required

API Secret

Example:
f606925fd8f72ebc15a5c27e7be040
names
array required

Customer's Name(s)

Example:
['Aabel', 'Delain', 'Kecha', 'Vincenzzo', 'Shade', 'Cracker', 'Yes']
Array of Customer's Name(s).
Maximum of 1,000 names are permitted.

Responses

200 OK
Success
Failed

{
  "status": "success",
  "data": {
    "valid_names": {
      "Aabel": "Male",
      "Delain": "Unisex",
      "Kecha": "Female",
      "Vincenzzo": "Male",
      "Shade": "Unisex"
    },
    "salacious_names": [
      "Cracker"
    ],
    "random_names": [
      "Yes"
    ],
    "incomplete_names": []
  }
}


Unauthorized

{ "status": "failed", "error": { "error_code": 600, "message": "Invalid API Key or API Secret." } } { "status": "failed", "error": { "error_code": 601, "message": "API Key & API Secret are required." } } { "status": "failed", "error": { "error_code": 602, "message": "The request could not be authenticated. Only HTTP POST method is allowed." } }

Payment Required

{ "status": "failed", "error": { "error_code": 603, "message": "Insufficient credits are available to cover the cost of the requested operation." } } { "status": "failed", "error": { "error_code": 604, "message": "No credits are available to cover the cost of the requested operation." } }

Inactive Account

{ "status": "failed", "error": { "error_code": 605, "message": "Your account is not activated to use this services." } }

Invalid File Format

{ "status": "failed", "error": { "error_code": 606, "message": "Invalid file format, supported file format - (csv)." } }

Unknown Error

{ "status": "failed", "error": { "error_code": 607, "message": "Unknown error : The cause of the error is unknown but details have been passed to our support staff who will investigate. Please send error message on Support Team for immediate response." } }

Name(s) Required

{ "status": "failed", "error": { "error_code": 610, "message": "The request doesn't contain Name(s)." } }

Too Many Names

{ "status": "failed", "error": { "error_code": 611, "message": "The request must not contain more than 1,000 names." } }
cURL (Bash)
JQuery
PHP (cURL)
NodeJS
Python
Go
C#
curl \
-H "Content-Type: application/json" \
-X POST \
-d '{"api_key": "RWK0JWVM3Gp2QmtG09TStoWjhjNlB","api_secret": "f606925fd8f72ebc15a5c27e7be040","names": ['Aabel', 'Delain', 'Kecha', 'Vincenzzo', 'Shade', 'Cracker', 'Yes']}' \
"https://app.realvalidito.com/genderlookup/validate"

HTTP/1.1 200 OK 

Content-Type: application/json

{
  "status": "success",
  "data": {
    "valid_names": {
      "Aabel": "Male",
      "Delain": "Unisex",
      "Kecha": "Female",
      "Vincenzzo": "Male",
      "Shade": "Unisex"
    },
    "salacious_names": [
      "Cracker"
    ],
    "random_names": [
      "Yes"
    ],
    "incomplete_names": []
  }
}
var url = 'https://app.realvalidito.com/genderlookup/validate';
var api_key = 'RWK0JWVM3Gp2QmtG09TStoWjhjNlB';
var api_secret = 'f606925fd8f72ebc15a5c27e7be040';
var request = {
	api_key: api_key,
	api_secret: api_secret,
	names: ['Aabel', 'Delain', 'Kecha', 'Vincenzzo', 'Shade', 'Cracker', 'Yes']
};

$.ajax(url, {
    data : JSON.stringify(request),
    contentType : 'application/json',
    type : 'POST',
    dataType: 'json',
    success: function (data,status,xhr) {
        console.log(data);
    }
});

HTTP/1.1 200 OK 

Content-Type: application/json

{
  "status": "success",
  "data": {
    "valid_names": {
      "Aabel": "Male",
      "Delain": "Unisex",
      "Kecha": "Female",
      "Vincenzzo": "Male",
      "Shade": "Unisex"
    },
    "salacious_names": [
      "Cracker"
    ],
    "random_names": [
      "Yes"
    ],
    "incomplete_names": []
  }
}
$url = "https://app.realvalidito.com/genderlookup/validate";
$api_key = 'RWK0JWVM3Gp2QmtG09TStoWjhjNlB';
$api_secret = 'f606925fd8f72ebc15a5c27e7be040';
$header = array('Content-Type:application/json');
$request_array = array(
	'api_key' => $api_key,
	'api_secret' => $api_secret,
	'names' => array('Aabel', 'Delain', 'Kecha', 'Vincenzzo', 'Shade', 'Cracker', 'Yes'),
);
$request = json_encode($request_array);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, 1);
curl_setopt($ch,CURLOPT_POSTFIELDS, $request);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
$data = curl_exec($ch);
curl_close($ch);
echo $data;

HTTP/1.1 200 OK 

Content-Type: application/json

{
  "status": "success",
  "data": {
    "valid_names": {
      "Aabel": "Male",
      "Delain": "Unisex",
      "Kecha": "Female",
      "Vincenzzo": "Male",
      "Shade": "Unisex"
    },
    "salacious_names": [
      "Cracker"
    ],
    "random_names": [
      "Yes"
    ],
    "incomplete_names": []
  }
}
var request = require("request");
var options = {
 method: 'POST',
 url: 'https://app.realvalidito.com/genderlookup/validate',
 headers: {
   'Content-Type': 'application/json',
 },
 body: {
	 "api_key": "RWK0JWVM3Gp2QmtG09TStoWjhjNlB",
	 "api_secret": "f606925fd8f72ebc15a5c27e7be040",
	 "names": ['Aabel', 'Delain', 'Kecha', 'Vincenzzo', 'Shade', 'Cracker', 'Yes']
 },
 json: true
};

request(options, function (err, response, body) {
  if (err) throw new Error(err);
  console.log(body);
});

HTTP/1.1 200 OK 

Content-Type: application/json

{
  "status": "success",
  "data": {
    "valid_names": {
      "Aabel": "Male",
      "Delain": "Unisex",
      "Kecha": "Female",
      "Vincenzzo": "Male",
      "Shade": "Unisex"
    },
    "salacious_names": [
      "Cracker"
    ],
    "random_names": [
      "Yes"
    ],
    "incomplete_names": []
  }
}
import requests
import array
import json
url = "https://app.realvalidito.com/genderlookup/validate"
names = ["Aabel", "Delain", "Kecha", "Vincenzzo", "Shade", "Cracker", "Yes"]
payload = {
	"api_key": "RWK0JWVM3Gp2QmtG09TStoWjhjNlB",
	"api_secret": "f606925fd8f72ebc15a5c27e7be040",
	"names": names
}
headers = {
	'Content-Type': "application/json",
}
response = requests.request("POST", url, json=payload, headers=headers)
response = response.json()
print('Response: ', response, '\n')

HTTP/1.1 200 OK 

Content-Type: application/json

{
  "status": "success",
  "data": {
    "valid_names": {
      "Aabel": "Male",
      "Delain": "Unisex",
      "Kecha": "Female",
      "Vincenzzo": "Male",
      "Shade": "Unisex"
    },
    "salacious_names": [
      "Cracker"
    ],
    "random_names": [
      "Yes"
    ],
    "incomplete_names": []
  }
}
package main

import (
"fmt"
"io/ioutil"
"net/http"
"strings"
"encoding/json"
)

type HttpResponseData struct {
 Data struct {
   International string `json:"international_format"`
   LineType string `json:"line_type"`
   Carrier string `json:"carrier"`
   Country string `json:"country_name"`
   Location string `json:"location"`
 } `json:"data"`
}

func main() {
  url := "https://app.realvalidito.com/genderlookup/validate"
  request := strings.NewReader('{"api_key": "RWK0JWVM3Gp2QmtG09TStoWjhjNlB","api_secret": "f606925fd8f72ebc15a5c27e7be040","names": ['Aabel', 'Delain', 'Kecha', 'Vincenzzo', 'Shade', 'Cracker', 'Yes']}')
  req, _ := http.NewRequest("POST", url, request)

  req.Header.Add("Content-Type", "application/json")

  res, err := http.DefaultClient.Do(req)
  if err != nil {
      fmt.Println(err)
  } else {
    defer res.Body.Close()
    body, _ := ioutil.ReadAll(res.Body)

    var response HttpResponseData
    err = json.Unmarshal(body, &response)
    if err != nil {
      fmt.Println(err)
    }
    fmt.Println(response)
  }
}

HTTP/1.1 200 OK 

Content-Type: application/json

{
  "status": "success",
  "data": {
    "valid_names": {
      "Aabel": "Male",
      "Delain": "Unisex",
      "Kecha": "Female",
      "Vincenzzo": "Male",
      "Shade": "Unisex"
    },
    "salacious_names": [
      "Cracker"
    ],
    "random_names": [
      "Yes"
    ],
    "incomplete_names": []
  }
}
using System;
using System.IO;
using System.Net;
using System.Text;
using Newtonsoft.Json.Linq;

namespace Examples.System.Net
{
    public class InstantVerifyExample
    {
        public static void Main()
        {
            WebRequest request = WebRequest.Create("https://app.realvalidito.com/genderlookup/validate");
            request.Method = "POST";
            string postData = "{\"api_key\": \"RWK0JWVM3Gp2QmtG09TStoWjhjNlB\",\"api_secret\": \"f606925fd8f72ebc15a5c27e7be040\",\"names\": [\"Aabel\", \"Delain\", \"Kecha\", \"Vincenzzo\", \"Shade\", \"Cracker\", \"Yes\"]}";
            byte[] byteArray = Encoding.UTF8.GetBytes(postData);
            request.ContentType = "application/json";
            request.ContentLength = byteArray.Length;

            Stream dataStream = request.GetRequestStream();
            dataStream.Write(byteArray, 0, byteArray.Length);
            dataStream.Close();
            WebResponse response = request.GetResponse();
            dataStream = response.GetResponseStream();
            StreamReader reader = new StreamReader(dataStream);
            string responseFromServer = reader.ReadToEnd();
            JObject joResponse = JObject.Parse(responseFromServer);

            Console.WriteLine(joResponse);

            reader.Close();
            dataStream.Close();
            response.Close();
        }
    }
}

HTTP/1.1 200 OK 

Content-Type: application/json

{
  "status": "success",
  "data": {
    "valid_names": {
      "Aabel": "Male",
      "Delain": "Unisex",
      "Kecha": "Female",
      "Vincenzzo": "Male",
      "Shade": "Unisex"
    },
    "salacious_names": [
      "Cracker"
    ],
    "random_names": [
      "Yes"
    ],
    "incomplete_names": []
  }
}

ZIP Code Lookup API

Get Available Credits
GET /ziplookup/getcredits/{api_key}/{api_secret}
ZIP Code Lookup
POST /ziplookup/validate
Get Available Credits
GET /ziplookup/getcredits/{api_key}/{api_secret}

Path variables

api_key
string required

API Key

Example:
RWK0JWVM3Gp2QmtG09TStoWjhjNlB
api_secret
string required

API Secret

Example:
f606925fd8f72ebc15a5c27e7be040

Responses

200 OK
Success
Failed

{
  "status": "success",
  "data": {
     "available_credits": 5000
   }
}


Unauthorized

{ "status": "failed", "error": { "error_code": 600, "message": "Invalid API Key or API Secret." } } { "status": "failed", "error": { "error_code": 614, "message": "The request could not be authenticated. Only HTTP GET method is allowed." } }
cURL (Bash)
JQuery (Javascript)
PHP (cURL)
curl -X GET 'https://app.realvalidito.com/ziplookup/getcredits/RWK0JWVM3Gp2QmtG09TStoWjhjNlB/f606925fd8f72ebc15a5c27e7be040' \

HTTP/1.1 200 OK 

Content-Type: application/json

{
  "status": "success",
  "data": {
     "available_credits": 5000
   }
}
var api_key = 'RWK0JWVM3Gp2QmtG09TStoWjhjNlB';
var api_secret = 'f606925fd8f72ebc15a5c27e7be040';
$.ajax({
    url: 'https://app.realvalidito.com/ziplookup/getcredits/' + api_key + '/' + api_secret,
    method: 'GET',
    dataType: 'json',
    success: function(data) {
        console.log(data);       
    }
});

HTTP/1.1 200 OK 

Content-Type: application/json

{
  "status": "success",
  "data": {

     "available_credits": 5000
   }
}
$api_key = 'RWK0JWVM3Gp2QmtG09TStoWjhjNlB';
$api_secret = 'f606925fd8f72ebc15a5c27e7be040';
$ch = curl_init('https://app.realvalidito.com/ziplookup/getcredits/' . api_key . '/' + api_secret);  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
curl_close($ch);
echo $data;

HTTP/1.1 200 OK 

Content-Type: application/json

{
  "status": "success",
  "data": {
     "available_credits": 5000
   }
}
ZIP Code Lookup
POST /ziplookup/validate

Request body

Object
api_key
string required

API Key

Example:
RWK0JWVM3Gp2QmtG09TStoWjhjNlB
api_secret
string required

API Secret

Example:
f606925fd8f72ebc15a5c27e7be040
zipcodes
array required

Zip Code(s) to validate

Example:
['12345', 'Y1A 6V6', '99835', '49032', '00000', '35004','11111']
Array of zip/postal codes of USA / CANADA only. No special characters, etc.
Maximum of 1,000 zip codes are permitted.

Responses

200 OK
Success
Failed

{
  "status": "success",
  "data": {
    "valid_zipcodes": {
      "12345": {
        "state": "New York (NY)",
        "county": "Schenectady County",
        "country": "US",
        "timezone": "America/New_York",
        "type": "UNIQUE",
        "area_codes": "518",
        "latitude": "42.8",
        "longitude": "-73.92",
        "estimated_population": "48",
        "city": "Schenectady"
      },
      "35004": {
        "state": "Alabama (AL)",
        "county": "St. Clair County",
        "country": "US",
        "timezone": "America/Chicago",
        "type": "STANDARD",
        "area_codes": "205",
        "latitude": "33.59",
        "longitude": "-86.49",
        "estimated_population": "10440",
        "city": "Moody"
      },
      "49032": {
        "state": "Michigan (MI)",
        "county": "St. Joseph County",
        "country": "US",
        "timezone": "America/Detroit",
        "type": "STANDARD",
        "area_codes": "269",
        "latitude": "41.92",
        "longitude": "-85.52",
        "estimated_population": "2780",
        "city": "Centreville"
      },
      "99835": {
        "state": "Alaska (AK)",
        "county": "Sitka City and Borough",
        "country": "US",
        "timezone": "America/Sitka",
        "type": "STANDARD",
        "area_codes": "907",
        "latitude": "56.73",
        "longitude": "-135",
        "estimated_population": "7550",
        "city": "Sitka"
      },
      "Y1A 6V6": {
        "state": "Yukon (YT)",
        "county": "",
        "country": "CA",
        "timezone": "Pacific Standard Time (PST)",
        "type": "",
        "area_codes": "",
        "latitude": "60.706299",
        "longitude": "-135.115264",
        "estimated_population": "",
        "city": "WHITEHORSE"
      }
    },
    "invalid_zipcodes": [
      "11111"
    ]
  }
}


Unauthorized

{ "status": "failed", "error": { "error_code": 600, "message": "Invalid API Key or API Secret." } } { "status": "failed", "error": { "error_code": 601, "message": "API Key & API Secret are required." } } { "status": "failed", "error": { "error_code": 602, "message": "The request could not be authenticated. Only HTTP POST method is allowed." } }

Payment Required

{ "status": "failed", "error": { "error_code": 603, "message": "Insufficient credits are available to cover the cost of the requested operation." } } { "status": "failed", "error": { "error_code": 604, "message": "No credits are available to cover the cost of the requested operation." } }

Inactive Account

{ "status": "failed", "error": { "error_code": 605, "message": "Your account is not activated to use this services." } }

Invalid File Format

{ "status": "failed", "error": { "error_code": 606, "message": "Invalid file format, supported file format - (csv)." } }

Unknown Error

{ "status": "failed", "error": { "error_code": 607, "message": "Unknown error : The cause of the error is unknown but details have been passed to our support staff who will investigate. Please send error message on Support Team for immediate response." } }

Zip Code(s) Required

{ "status": "failed", "error": { "error_code": 612, "message": "The request doesn't contain Zip Code(s)." } }

Too Many Zip Codes

{ "status": "failed", "error": { "error_code": 613, "message": "The request must not contain more than 1,000 ZIP codes." } }
cURL (Bash)
JQuery
PHP (cURL)
NodeJS
Python
Go
C#
curl \
-H "Content-Type: application/json" \
-X POST \
-d '{"api_key": "RWK0JWVM3Gp2QmtG09TStoWjhjNlB","api_secret": "f606925fd8f72ebc15a5c27e7be040","zipcodes": ['12345', '01010', '99835', '49032', '00000', '35004','11111']}' \
"https://app.realvalidito.com/ziplookup/validate"

HTTP/1.1 200 OK 

Content-Type: application/json

{
  "status": "success",
  "data": {
    "valid_zipcodes": {
      "12345": {
        "state": "New York (NY)",
        "county": "Schenectady County",
        "country": "US",
        "timezone": "America/New_York",
        "type": "UNIQUE",
        "area_codes": "518",
        "latitude": "42.8",
        "longitude": "-73.92",
        "estimated_population": "48",
        "city": "Schenectady"
      },
      "35004": {
        "state": "Alabama (AL)",
        "county": "St. Clair County",
        "country": "US",
        "timezone": "America/Chicago",
        "type": "STANDARD",
        "area_codes": "205",
        "latitude": "33.59",
        "longitude": "-86.49",
        "estimated_population": "10440",
        "city": "Moody"
      },
      "49032": {
        "state": "Michigan (MI)",
        "county": "St. Joseph County",
        "country": "US",
        "timezone": "America/Detroit",
        "type": "STANDARD",
        "area_codes": "269",
        "latitude": "41.92",
        "longitude": "-85.52",
        "estimated_population": "2780",
        "city": "Centreville"
      },
      "99835": {
        "state": "Alaska (AK)",
        "county": "Sitka City and Borough",
        "country": "US",
        "timezone": "America/Sitka",
        "type": "STANDARD",
        "area_codes": "907",
        "latitude": "56.73",
        "longitude": "-135",
        "estimated_population": "7550",
        "city": "Sitka"
      },
      "Y1A 6V6": {
        "state": "Yukon (YT)",
        "county": "",
        "country": "CA",
        "timezone": "Pacific Standard Time (PST)",
        "type": "",
        "area_codes": "",
        "latitude": "60.706299",
        "longitude": "-135.115264",
        "estimated_population": "",
        "city": "WHITEHORSE"
      }
    },
    "invalid_zipcodes": [
      "11111"
    ]
  }
}
var url = 'https://app.realvalidito.com/ziplookup/validate';
var api_key = 'RWK0JWVM3Gp2QmtG09TStoWjhjNlB';
var api_secret = 'f606925fd8f72ebc15a5c27e7be040';
var request = {
	api_key: api_key,
	api_secret: api_secret,
	zipcodes: ['12345', '01010', '99835', '49032', '00000', '35004','11111']
};

$.ajax(url, {
    data : JSON.stringify(request),
    contentType : 'application/json',
    type : 'POST',
    dataType: 'json',
    success: function (data,status,xhr) {
        console.log(data);
    }
});

HTTP/1.1 200 OK 

Content-Type: application/json

{
  "status": "success",
  "data": {
    "valid_zipcodes": {
      "12345": {
        "city": "SCHENECTADY",
        "state": "NY"
      },
      "35004": {
        "city": "MOODY",
        "state": "AL"
      },
      "49032": {
        "city": "CENTREVILLE",
        "state": "MI"
      },
      "99835": {
        "city": "SITKA",
        "state": "AK"
      },
      "01010": {
        "city": "BRIMFIELD",
        "state": "MA"
      }
    },
    "invalid_zipcodes": [
      "00000",
      "11111"
    ]
  }
}
$url = "https://app.realvalidito.com/ziplookup/validate";
$api_key = 'RWK0JWVM3Gp2QmtG09TStoWjhjNlB';
$api_secret = 'f606925fd8f72ebc15a5c27e7be040';
$header = array('Content-Type:application/json');
$request_array = array(
	'api_key' => $api_key,
	'api_secret' => $api_secret,
	'zipcodes' => array('1234567890', '470*******', '908*******', '704*******'),
);
$request = json_encode($request_array);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, 1);
curl_setopt($ch,CURLOPT_POSTFIELDS, $request);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
$data = curl_exec($ch);
curl_close($ch);
echo $data;

HTTP/1.1 200 OK 

Content-Type: application/json

{
  "status": "success",
  "data": {
    "valid_zipcodes": {
      "12345": {
        "city": "SCHENECTADY",
        "state": "NY"
      },
      "35004": {
        "city": "MOODY",
        "state": "AL"
      },
      "49032": {
        "city": "CENTREVILLE",
        "state": "MI"
      },
      "99835": {
        "city": "SITKA",
        "state": "AK"
      },
      "01010": {
        "city": "BRIMFIELD",
        "state": "MA"
      }
    },
    "invalid_zipcodes": [
      "00000",
      "11111"
    ]
  }
}
var request = require("request");
var options = {
 method: 'POST',
 url: 'https://app.realvalidito.com/ziplookup/validate',
 headers: {
   'Content-Type': 'application/json',
 },
 body: {
	 "api_key": "RWK0JWVM3Gp2QmtG09TStoWjhjNlB",
	 "api_secret": "f606925fd8f72ebc15a5c27e7be040",
	 "zipcodes": ['12345', '01010', '99835', '49032', '00000', '35004','11111']
 },
 json: true
};

request(options, function (err, response, body) {
  if (err) throw new Error(err);
  console.log(body);
});

HTTP/1.1 200 OK 

Content-Type: application/json

{
  "status": "success",
  "data": {
    "valid_zipcodes": {
      "12345": {
        "city": "SCHENECTADY",
        "state": "NY"
      },
      "35004": {
        "city": "MOODY",
        "state": "AL"
      },
      "49032": {
        "city": "CENTREVILLE",
        "state": "MI"
      },
      "99835": {
        "city": "SITKA",
        "state": "AK"
      },
      "01010": {
        "city": "BRIMFIELD",
        "state": "MA"
      }
    },
    "invalid_zipcodes": [
      "00000",
      "11111"
    ]
  }
}
import requests
import array
import json
url = "https://app.realvalidito.com/ziplookup/validate"
zipcodes = [12345,01010,99835,49032,00000,35004,11111]
payload = {
	"api_key": "RWK0JWVM3Gp2QmtG09TStoWjhjNlB",
	"api_secret": "f606925fd8f72ebc15a5c27e7be040",
	"zipcodes": zipcodes
}
headers = {
	'Content-Type': "application/json",
}
response = requests.request("POST", url, json=payload, headers=headers)
response = response.json()
print('Response: ', response, '\n')

HTTP/1.1 200 OK 

Content-Type: application/json

{
  "status": "success",
  "data": {
    "valid_zipcodes": {
      "12345": {
        "city": "SCHENECTADY",
        "state": "NY"
      },
      "35004": {
        "city": "MOODY",
        "state": "AL"
      },
      "49032": {
        "city": "CENTREVILLE",
        "state": "MI"
      },
      "99835": {
        "city": "SITKA",
        "state": "AK"
      },
      "01010": {
        "city": "BRIMFIELD",
        "state": "MA"
      }
    },
    "invalid_zipcodes": [
      "00000",
      "11111"
    ]
  }
}
package main

import (
"fmt"
"io/ioutil"
"net/http"
"strings"
"encoding/json"
)

type HttpResponseData struct {
 Data struct {
   International string `json:"international_format"`
   LineType string `json:"line_type"`
   Carrier string `json:"carrier"`
   Country string `json:"country_name"`
   Location string `json:"location"`
 } `json:"data"`
}

func main() {
  url := "https://app.realvalidito.com/ziplookup/validate"
  request := strings.NewReader('{"api_key": "RWK0JWVM3Gp2QmtG09TStoWjhjNlB","api_secret": "f606925fd8f72ebc15a5c27e7be040","zipcodes": ['12345', '01010', '99835', '49032', '00000', '35004','11111']}')
  req, _ := http.NewRequest("POST", url, request)

  req.Header.Add("Content-Type", "application/json")

  res, err := http.DefaultClient.Do(req)
  if err != nil {
      fmt.Println(err)
  } else {
    defer res.Body.Close()
    body, _ := ioutil.ReadAll(res.Body)

    var response HttpResponseData
    err = json.Unmarshal(body, &response)
    if err != nil {
      fmt.Println(err)
    }
    fmt.Println(response)
  }
}

HTTP/1.1 200 OK 

Content-Type: application/json

{
  "status": "success",
  "data": {
    "valid_zipcodes": {
      "12345": {
        "city": "SCHENECTADY",
        "state": "NY"
      },
      "35004": {
        "city": "MOODY",
        "state": "AL"
      },
      "49032": {
        "city": "CENTREVILLE",
        "state": "MI"
      },
      "99835": {
        "city": "SITKA",
        "state": "AK"
      },
      "01010": {
        "city": "BRIMFIELD",
        "state": "MA"
      }
    },
    "invalid_zipcodes": [
      "00000",
      "11111"
    ]
  }
}
using System;
using System.IO;
using System.Net;
using System.Text;
using Newtonsoft.Json.Linq;

namespace Examples.System.Net
{
    public class InstantVerifyExample
    {
        public static void Main()
        {
            WebRequest request = WebRequest.Create("https://app.realvalidito.com/ziplookup/validate");
            request.Method = "POST";
            string postData = "{\"api_key\": \"RWK0JWVM3Gp2QmtG09TStoWjhjNlB\",\"api_secret\": \"f606925fd8f72ebc15a5c27e7be040\",\"zipcodes\": [\"12345\", \"01010\", \"99835\", \"49032\", \"00000\", \"35004\",\"11111\"]}";
            byte[] byteArray = Encoding.UTF8.GetBytes(postData);
            request.ContentType = "application/json";
            request.ContentLength = byteArray.Length;

            Stream dataStream = request.GetRequestStream();
            dataStream.Write(byteArray, 0, byteArray.Length);
            dataStream.Close();
            WebResponse response = request.GetResponse();
            dataStream = response.GetResponseStream();
            StreamReader reader = new StreamReader(dataStream);
            string responseFromServer = reader.ReadToEnd();
            JObject joResponse = JObject.Parse(responseFromServer);

            Console.WriteLine(joResponse);

            reader.Close();
            dataStream.Close();
            response.Close();
        }
    }
}

HTTP/1.1 200 OK 

Content-Type: application/json

{
  "status": "success",
  "data": {
    "valid_zipcodes": {
      "12345": {
        "city": "SCHENECTADY",
        "state": "NY"
      },
      "35004": {
        "city": "MOODY",
        "state": "AL"
      },
      "49032": {
        "city": "CENTREVILLE",
        "state": "MI"
      },
      "99835": {
        "city": "SITKA",
        "state": "AK"
      },
      "01010": {
        "city": "BRIMFIELD",
        "state": "MA"
      }
    },
    "invalid_zipcodes": [
      "00000",
      "11111"
    ]
  }
}
HTTP Response Codes
200

Successful requests will receive a 200 response code

500

Internal Server Error

503

Service unavailable

524

Request Timeout

Error Codes

RealValidito Error Codes

600

Invalid API Key or API Secret.

601

API Key & API Secret are required.

602

The request could not be authenticated. Only HTTP POST method is allowed.

603

Insufficient credits are available to cover the cost of the requested operation.

604

No credits are available to cover the cost of the requested operation.

605

Your account is not activated to use this service. / Invalid API credentials or service not activated for your account.

606

Invalid file format, supported file format - (csv).

607

Unknown error : The cause of the error is unknown but details have been passed to our support staff who will investigate. Please send error message on Support Team for immediate response.

608

The request does not contain any phone numbers.

609

The request must not contain more than 1,000 phone numbers.

610

The request does not contain any names.

611

The request must not contain more than 1,000 names.

612

The request does not contain any ZIP or postal codes.

613

The request must not contain more than 1,000 ZIP or postal codes.

614

The request could not be authenticated. Only HTTP GET method is allowed.

615

This old API endpoint is deprecated, please use new Lookup APIs instead.

GoHighLevel Integration

Use your Integration Key to connect RealValidito phone validation and DNC lookups directly into GoHighLevel workflows — no complex API key setup required.

Looking for the Zapier guide? View Zapier Integration docs →

Authentication Test
GET /ghlapi/auth
Get Available Credits
GET /ghlapi/credits
Phone Lookup
POST /ghlapi/phone_lookup
DNC Lookup
POST /ghlapi/dnc_lookup
Phone + DNC Lookup (Combined)
POST /ghlapi/phone_dnc_lookup
⚠️ Note: Integration Keys are generated inside your account. Login or create a free account to get your key.

Step 1 — Generate Your Integration Key

  1. Log in to your RealValidito account at app.realvalidito.com.
  2. Click on Account Settings from the top navigation menu.
  3. Scroll down to the GoHighLevel & Zapier Integration section.
  4. Click Generate Key to create your Integration Key.
  5. Click Copy to copy the key — it will be partially masked once you navigate away.

Your key will look like this:

rv_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

⚠️ Keep it secure. Anyone with this key can consume your RealValidito credits. You can Revoke and regenerate a new key at any time from Account Settings.

Step 2 — Base URL & Authentication

Base URL: https://app.realvalidito.com/ghlapi/

Pass your Integration Key as a Bearer token in the Authorization header on every request:

Authorization: Bearer rv_live_xxxxxxxx...
Content-Type: application/json  /* required for POST requests */

GoHighLevel Workflow Setup

  1. Log in to app.gohighlevel.com and open or create a Workflow.
  2. Add a new action and select Webhook / HTTP Request.
  3. Set the URL to: https://app.realvalidito.com/ghlapi/phone_dnc_lookup
  4. Set the Method to POST.
  5. Under Headers, add:
      Authorization: Bearer rv_live_your_key_here
      Content-Type: application/json
  6. Under Body, set: {"phone": "{{contact.phone}}"}
    (Replace {{contact.phone}} with your GHL contact phone field variable.)
  7. Map the response fields to custom contact fields in GHL:
      is_valid → Phone Valid (true/false)
      line_type → Phone Line Type (Mobile/Landline/VoIP)
      is_dnc → DNC Status (true/false)
      is_tcpa → TCPA Litigator (true/false)
  8. Add IF/ELSE branches after the webhook action to route contacts:
      ✅ is_valid = true AND is_dnc = false → Add to SMS Campaign
      ❌ is_valid = false OR is_dnc = true → Tag as Invalid / Remove
Authentication Test
GET /ghlapi/auth

Verify that your Integration Key is valid.

Responses

200 OK
Success
Failed
{
  "status": "success",
  "message": "Authentication successful.",
  "account": "user@example.com"
}
{ "status": "error", "message": "Invalid or revoked integration key." }
cURL (Bash)
PHP (cURL)
NodeJS
curl -X GET "https://app.realvalidito.com/ghlapi/auth" \
  -H "Authorization: Bearer rv_live_your_key_here"

HTTP/1.1 200 OK
{
  "status": "success",
  "message": "Authentication successful.",
  "account": "user@example.com"
}
$ch = curl_init('https://app.realvalidito.com/ghlapi/auth');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer rv_live_your_key_here']);
echo curl_exec($ch);
const axios = require('axios');
const res = await axios.get('https://app.realvalidito.com/ghlapi/auth', {
  headers: { 'Authorization': 'Bearer rv_live_your_key_here' }
});
console.log(res.data);
Get Available Credits
GET /ghlapi/credits

Check available credits for Phone and DNC lookups.

Responses

200 OK
Success
{
  "status": "success",
  "credits": {
    "phone_lookup": 1500,
    "dnc_lookup": 800
  }
}
cURL (Bash)
curl -X GET "https://app.realvalidito.com/ghlapi/credits" \
  -H "Authorization: Bearer rv_live_your_key_here"

HTTP/1.1 200 OK
{
  "status": "success",
  "credits": { "phone_lookup": 1500, "dnc_lookup": 800 }
}
Phone Lookup
POST /ghlapi/phone_lookup

Validate a single phone number. Deducts 1 phone credit per call.

Request body

phone
string required

10-digit US/Canada phone number. No spaces, special characters, or leading +1.

Example:
8005551234

Responses

200 OK
Success
Failed
{
  "status": "success",
  "phone": "8005551234",
  "is_valid": true,
  "line_type": "Mobile",
  "carrier": "T-Mobile",
  "state": "CA",
  "city": "Los Angeles",
  "country": "US",
  "zip": "90001"
}

401 — Invalid Key

{ "status": "error", "message": "Invalid or revoked integration key." }

402 — No Credits

{ "status": "error", "message": "You have no phone validation credits remaining." }

400 — Missing Field

{ "status": "error", "message": "The phone field is required." }

405 — Wrong Method

{ "status": "error", "message": "Only POST method is allowed." }

Response Fields

FieldTypeDescription
is_validbooleanWhether the number is a valid US/CA phone
line_typestringMobile, Landline, VoIP, Toll-Free, Unknown
carrierstringCarrier name
statestring2-letter state code
citystringCity name
countrystringUS or CA
zipstringZIP/postal code
cURL (Bash)
PHP (cURL)
NodeJS
Python
curl -X POST "https://app.realvalidito.com/ghlapi/phone_lookup" \
  -H "Authorization: Bearer rv_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"phone": "8005551234"}'

HTTP/1.1 200 OK
{
  "status": "success",
  "phone": "8005551234",
  "is_valid": true,
  "line_type": "Mobile",
  "carrier": "T-Mobile",
  "state": "CA",
  "city": "Los Angeles",
  "country": "US",
  "zip": "90001"
}
$ch = curl_init('https://app.realvalidito.com/ghlapi/phone_lookup');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  'Authorization: Bearer rv_live_your_key_here',
  'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(['phone' => '8005551234']));
echo curl_exec($ch);
const axios = require('axios');
const res = await axios.post('https://app.realvalidito.com/ghlapi/phone_lookup',
  { phone: '8005551234' },
  { headers: { 'Authorization': 'Bearer rv_live_your_key_here', 'Content-Type': 'application/json' }}
);
console.log(res.data);
import requests
r = requests.post('https://app.realvalidito.com/ghlapi/phone_lookup',
  json={'phone': '8005551234'},
  headers={'Authorization': 'Bearer rv_live_your_key_here', 'Content-Type': 'application/json'}
)
print(r.json())
DNC Lookup
POST /ghlapi/dnc_lookup

DNC / TCPA check on a single phone number. Deducts 1 DNC credit per call.

Request body

phone
string required

10-digit US/Canada phone number.

Example:
8005551234

Responses

200 OK
Success
{
  "status": "success",
  "phone": "8005551234",
  "is_tcpa": false,
  "is_dnc": false
}

Response Fields

FieldTypeDescription
is_tcpabooleantrue if the number is a known TCPA litigator
is_dncbooleantrue if the number is on a national or state DNC list
cURL (Bash)
PHP (cURL)
NodeJS
curl -X POST "https://app.realvalidito.com/ghlapi/dnc_lookup" \
  -H "Authorization: Bearer rv_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"phone": "8005551234"}'

HTTP/1.1 200 OK
{ "status": "success", "phone": "8005551234", "is_tcpa": false, "is_dnc": false }
$ch = curl_init('https://app.realvalidito.com/ghlapi/dnc_lookup');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer rv_live_your_key_here','Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(['phone' => '8005551234']));
echo curl_exec($ch);
const axios = require('axios');
const res = await axios.post('https://app.realvalidito.com/ghlapi/dnc_lookup',
  { phone: '8005551234' },
  { headers: { 'Authorization': 'Bearer rv_live_your_key_here', 'Content-Type': 'application/json' }}
);
console.log(res.data);
Phone + DNC Lookup (Combined)
POST /ghlapi/phone_dnc_lookup

Combined phone validation + DNC check in a single call. Recommended for GoHighLevel workflows. Deducts 1 phone credit + 1 DNC credit per call.

Request body

phone
string required

10-digit US/Canada phone number.

Example:
8005551234

Responses

200 OK
Success
{
  "status": "success",
  "phone": "8005551234",
  "is_valid": true,
  "line_type": "Mobile",
  "carrier": "T-Mobile",
  "state": "CA",
  "city": "Los Angeles",
  "country": "US",
  "zip": "90001",
  "is_tcpa": false,
  "is_dnc": false
}
cURL (Bash)
PHP (cURL)
NodeJS
Python
curl -X POST "https://app.realvalidito.com/ghlapi/phone_dnc_lookup" \
  -H "Authorization: Bearer rv_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"phone": "8005551234"}'

HTTP/1.1 200 OK
{
  "status": "success",
  "phone": "8005551234",
  "is_valid": true,
  "line_type": "Mobile",
  "carrier": "T-Mobile",
  "state": "CA",
  "city": "Los Angeles",
  "country": "US",
  "zip": "90001",
  "is_tcpa": false,
  "is_dnc": false
}
$ch = curl_init('https://app.realvalidito.com/ghlapi/phone_dnc_lookup');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer rv_live_your_key_here','Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(['phone' => '8005551234']));
echo curl_exec($ch);
const axios = require('axios');
const res = await axios.post('https://app.realvalidito.com/ghlapi/phone_dnc_lookup',
  { phone: '8005551234' },
  { headers: { 'Authorization': 'Bearer rv_live_your_key_here', 'Content-Type': 'application/json' }}
);
console.log(res.data);
import requests
r = requests.post('https://app.realvalidito.com/ghlapi/phone_dnc_lookup',
  json={'phone': '8005551234'},
  headers={'Authorization': 'Bearer rv_live_your_key_here', 'Content-Type': 'application/json'}
)
print(r.json())

Zapier Integration

Use your Integration Key to connect RealValidito phone validation and DNC lookups directly into Zapier automations — no complex API key setup required.

Looking for the GoHighLevel guide? View GoHighLevel Integration docs →

RealValidito is now live on Zapier. View RealValidito on Zapier →

Need help? View Zapier Help & Setup Guide →

Account Info (Zapier Auth Test)
GET /zapierapi/me
Authentication Test
GET /zapierapi/auth
Get Available Credits
GET /zapierapi/credits
Credit Alerts (Trigger)
GET /zapierapi/credit_alerts
Phone Lookup
POST /zapierapi/phone_lookup
DNC Lookup
POST /zapierapi/dnc_lookup
Phone + DNC Lookup (Combined)
POST /zapierapi/phone_dnc_lookup
⚠️ Note: Integration Keys are generated inside your account. Login or create a free account to get your key.

Step 1 — Generate Your Integration Key

  1. Log in to your RealValidito account at app.realvalidito.com.
  2. Click on Account Settings from the top navigation menu.
  3. Scroll down to the GoHighLevel & Zapier Integration section.
  4. Click Generate Key to create your Integration Key.
  5. Click Copy to copy the key — it will be partially masked once you navigate away.

Your key will look like this:

rv_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

⚠️ Keep it secure. Anyone with this key can consume your RealValidito credits. You can Revoke and regenerate a new key at any time from Account Settings.

Step 2 — Base URL & Authentication

Base URL: https://app.realvalidito.com/zapierapi/

Pass your Integration Key as a Bearer token in the Authorization header on every request:

Authorization: Bearer rv_live_xxxxxxxx...
Content-Type: application/json  /* required for POST requests */

Zapier Zap Setup

  1. Log in to zapier.com and click Create Zap.
  2. Set your Trigger — for example: "New row in Google Sheets", "New contact in HubSpot", or any app that provides a phone number.
  3. Add an Action step and search for Webhooks by Zapier.
  4. Select Custom Request as the action event.
  5. Set the Method to POST.
  6. Set the URL to: https://app.realvalidito.com/zapierapi/phone_dnc_lookup
  7. Under Headers, add:
      Authorization: Bearer rv_live_your_key_here
      Content-Type: application/json
  8. Under Data, set the body to:
    {"phone": "your_phone_field_here"}
    (Map the phone field from your trigger step.)
  9. Click Test & Continue — Zapier will show the response fields (is_valid, line_type, is_dnc, is_tcpa).
  10. Use those response fields in subsequent Zap steps — e.g. send to CRM only if is_valid = true and is_dnc = false.

For a custom Zapier app with API Key authentication: set the authentication type to API Key, header Authorization, value Bearer {api_key}. Use https://app.realvalidito.com/zapierapi/me as the test URL.

Account Info (Zapier Auth Test)
GET /zapierapi/me

Used by Zapier's "Test" step when configuring API Key authentication in a custom Zapier app. Returns account ID, name, and email. The email field is used as the Zapier connection label so users can see which account is connected.

Responses

200 OK
Success
{
  "id": 42,
  "name": "John Smith",
  "email": "user@example.com"
}
cURL (Bash)
curl -X GET "https://app.realvalidito.com/zapierapi/me" \
  -H "Authorization: Bearer rv_live_your_key_here"

HTTP/1.1 200 OK
{ "id": 42, "name": "John Smith" }
Authentication Test
GET /zapierapi/auth

Verify that your Integration Key is valid.

Responses

200 OK
Success
Failed
{
  "status": "success",
  "message": "Authentication successful.",
  "account": "user@example.com"
}
{ "status": "error", "message": "Invalid or revoked integration key." }
cURL (Bash)
PHP (cURL)
NodeJS
curl -X GET "https://app.realvalidito.com/zapierapi/auth" \
  -H "Authorization: Bearer rv_live_your_key_here"

HTTP/1.1 200 OK
{
  "status": "success",
  "message": "Authentication successful.",
  "account": "user@example.com"
}
$ch = curl_init('https://app.realvalidito.com/zapierapi/auth');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer rv_live_your_key_here']);
echo curl_exec($ch);
const axios = require('axios');
const res = await axios.get('https://app.realvalidito.com/zapierapi/auth', {
  headers: { 'Authorization': 'Bearer rv_live_your_key_here' }
});
console.log(res.data);
Get Available Credits
GET /zapierapi/credits

Check available credits for Phone and DNC lookups.

Responses

200 OK
Success
{
  "status": "success",
  "credits": { "phone_lookup": 1500, "dnc_lookup": 800 }
}
cURL (Bash)
curl -X GET "https://app.realvalidito.com/zapierapi/credits" \
  -H "Authorization: Bearer rv_live_your_key_here"

HTTP/1.1 200 OK
{ "status": "success", "credits": { "phone_lookup": 1500, "dnc_lookup": 800 } }
Credit Alerts (Trigger)
GET /zapierapi/credit_alerts

Credit alerts trigger endpoint. Zapier polls this endpoint to detect when your credit balance drops below a threshold. Used as the trigger event in Zaps — for example, to send a Slack message or email when credits run low. Returns an array of alerts sorted newest first. Zapier uses the id field for deduplication.

Responses

200 OK
Success
[
  {
    "id": "42",
    "service": "Phone Validation",
    "level": "critical",
    "message": "Your Phone Number Validation credits are critically low. You have fewer than 10 credits remaining.",
    "created_at": "2026-05-23 10:30:00"
  }
]

Response Fields

FieldTypeDescription
idstringUnique alert ID — Zapier uses this for deduplication
servicestringPhone Validation or DNC Lookup
levelstringexhausted, critical, very_low, or low
messagestringFull alert description
created_atstringDate/time the alert was generated
cURL (Bash)
curl -X GET "https://app.realvalidito.com/zapierapi/credit_alerts"   -H "Authorization: Bearer rv_live_your_key_here"

HTTP/1.1 200 OK
[
  {
    "id": "42",
    "service": "Phone Validation",
    "level": "critical",
    "message": "Your Phone Number Validation credits are critically low.",
    "created_at": "2026-05-23 10:30:00"
  }
]
Phone Lookup
POST /zapierapi/phone_lookup

Validate a single phone number. Deducts 1 phone credit per call.

Request body

phone
string required

10-digit US/Canada phone number.

Example:
8005551234

Responses

200 OK
Success
{
  "status": "success",
  "phone": "8005551234",
  "is_valid": true,
  "line_type": "Mobile",
  "carrier": "T-Mobile",
  "state": "CA",
  "city": "Los Angeles",
  "country": "US",
  "zip": "90001"
}
cURL (Bash)
PHP (cURL)
NodeJS
Python
curl -X POST "https://app.realvalidito.com/zapierapi/phone_lookup" \
  -H "Authorization: Bearer rv_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"phone": "8005551234"}'

HTTP/1.1 200 OK
{
  "status": "success",
  "phone": "8005551234",
  "is_valid": true,
  "line_type": "Mobile",
  "carrier": "T-Mobile",
  "state": "CA",
  "city": "Los Angeles",
  "country": "US",
  "zip": "90001"
}
$ch = curl_init('https://app.realvalidito.com/zapierapi/phone_lookup');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer rv_live_your_key_here','Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(['phone' => '8005551234']));
echo curl_exec($ch);
const axios = require('axios');
const res = await axios.post('https://app.realvalidito.com/zapierapi/phone_lookup',
  { phone: '8005551234' },
  { headers: { 'Authorization': 'Bearer rv_live_your_key_here', 'Content-Type': 'application/json' }}
);
console.log(res.data);
import requests
r = requests.post('https://app.realvalidito.com/zapierapi/phone_lookup',
  json={'phone': '8005551234'},
  headers={'Authorization': 'Bearer rv_live_your_key_here', 'Content-Type': 'application/json'}
)
print(r.json())
DNC Lookup
POST /zapierapi/dnc_lookup

DNC / TCPA check on a single phone number. Deducts 1 DNC credit per call.

Request body

phone
string required

10-digit US/Canada phone number.

Example:
8005551234

Responses

200 OK
Success
{
  "status": "success",
  "phone": "8005551234",
  "is_tcpa": false,
  "is_dnc": false
}
cURL (Bash)
PHP (cURL)
NodeJS
curl -X POST "https://app.realvalidito.com/zapierapi/dnc_lookup" \
  -H "Authorization: Bearer rv_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"phone": "8005551234"}'

HTTP/1.1 200 OK
{ "status": "success", "phone": "8005551234", "is_tcpa": false, "is_dnc": false }
$ch = curl_init('https://app.realvalidito.com/zapierapi/dnc_lookup');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer rv_live_your_key_here','Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(['phone' => '8005551234']));
echo curl_exec($ch);
const axios = require('axios');
const res = await axios.post('https://app.realvalidito.com/zapierapi/dnc_lookup',
  { phone: '8005551234' },
  { headers: { 'Authorization': 'Bearer rv_live_your_key_here', 'Content-Type': 'application/json' }}
);
console.log(res.data);
Phone + DNC Lookup (Combined)
POST /zapierapi/phone_dnc_lookup

Combined phone validation + DNC check in a single call. Deducts 1 phone credit + 1 DNC credit per call.

Request body

phone
string required

10-digit US/Canada phone number.

Example:
8005551234

Responses

200 OK
Success
{
  "status": "success",
  "phone": "8005551234",
  "is_valid": true,
  "line_type": "Mobile",
  "carrier": "T-Mobile",
  "state": "CA",
  "city": "Los Angeles",
  "country": "US",
  "zip": "90001",
  "is_tcpa": false,
  "is_dnc": false
}
cURL (Bash)
PHP (cURL)
NodeJS
Python
curl -X POST "https://app.realvalidito.com/zapierapi/phone_dnc_lookup" \
  -H "Authorization: Bearer rv_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"phone": "8005551234"}'

HTTP/1.1 200 OK
{
  "status": "success",
  "phone": "8005551234",
  "is_valid": true,
  "line_type": "Mobile",
  "carrier": "T-Mobile",
  "state": "CA",
  "city": "Los Angeles",
  "country": "US",
  "zip": "90001",
  "is_tcpa": false,
  "is_dnc": false
}
$ch = curl_init('https://app.realvalidito.com/zapierapi/phone_dnc_lookup');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer rv_live_your_key_here','Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(['phone' => '8005551234']));
echo curl_exec($ch);
const axios = require('axios');
const res = await axios.post('https://app.realvalidito.com/zapierapi/phone_dnc_lookup',
  { phone: '8005551234' },
  { headers: { 'Authorization': 'Bearer rv_live_your_key_here', 'Content-Type': 'application/json' }}
);
console.log(res.data);
import requests
r = requests.post('https://app.realvalidito.com/zapierapi/phone_dnc_lookup',
  json={'phone': '8005551234'},
  headers={'Authorization': 'Bearer rv_live_your_key_here', 'Content-Type': 'application/json'}
)
print(r.json())

Related Resources

  • Phone Lookup — validate individual numbers in your browser
  • DNC Lookup — check a number against the US Do Not Call Registry
  • Pricing & Credits — see volume pricing and credit packages
  • TCPA Compliance 2026 Guide — understand TCPA rules before building your integration
  • Carrier Lookup API Guide — deep-dive on line type and carrier detection

Get 1,000 Free API Credits — No Credit Card Required

© Copyright 2026 RealValidito. All rights reserved.
  • Home
  • SERVICES
    • Phone Lookup
    • DNC Lookup
    • Gender Lookup
    • ZIP Code Lookup
  • API
  • Pricing
  • FAQ
  • Contact us
  • LOGIN
realValidito