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, usually in under a second — covering Valid/Invalid status, line type (mobile, landline, VoIP, toll-free), carrier name, location and time zone. DNC status comes from the DNC Lookup API or the Phone + DNC Lookup API. All endpoints use standard HTTP methods with API key authentication. New accounts receive free credits for every service: 1,000 Phone Lookup, 100 DNC Lookup, 1,000 Gender Lookup and 1,000 ZIP Code Lookup — 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 screen numbers as part of your TCPA compliance program. Code examples are available in 7 languages: cURL, jQuery, PHP, Node.js, Python, Go and C#. For bulk validation without API integration, use the CSV upload tool in the dashboard. For features, use cases and pricing in one place, see the phone number lookup API overview.

Common use cases

  • TCPA & DNC compliance — screen phone numbers against DNC screening data before outbound calls or SMS campaigns
  • Carrier & line type detection — identify mobile, landline, VoIP and toll-free numbers to route messages correctly and avoid wasted credits
  • Lead validation — verify that a phone number is valid (assigned to a carrier) 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 VoIP numbers at account sign-up to help block synthetic identity fraud

RealValidito covers US and Canada numbers. The Phone + DNC Lookup API returns carrier name, line type, region and number status together with the DNC status and TCPA litigator flag in one call.

Getting started is free — your account comes with free credits for every service, 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 the example below. The phone numbers in the request examples on this page (such as 2015550123) are placeholders: 555 numbers are not real and come back Invalid, so replace them with your own numbers.

cURL — Quick StartResponse
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": ["2015550123"]
  }'
{
  "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": "Verizon Wireless",
      "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 Lookup API

Get Available Credits

GET /phonelookup/getcredits/{api_key}/{api_secret}

Path variables

NameTypeDescriptionExample
api_keystring requiredAPI KeyYOUR_API_KEY
api_secretstring requiredAPI SecretYOUR_API_SECRET

Responses

Request

cURL (Bash)jQueryPHP (cURL)Node.jsPythonGoC#
curl "https://app.realvalidito.com/phonelookup/getcredits/YOUR_API_KEY/YOUR_API_SECRET"
// Run this in an internal tool or behind a login only: never put your API secret into a public web page.
var apiKey = 'YOUR_API_KEY';
var apiSecret = 'YOUR_API_SECRET';

$.ajax({
  url: 'https://app.realvalidito.com/phonelookup/getcredits/' + encodeURIComponent(apiKey) + '/' + encodeURIComponent(apiSecret),
  method: 'GET',
  dataType: 'json',
  success: function (data) {
    console.log(data);
  },
  error: function (xhr) {
    console.error(xhr.status, xhr.responseText);
  }
});
<?php
$apiKey = 'YOUR_API_KEY';
$apiSecret = 'YOUR_API_SECRET';

$ch = curl_init('https://app.realvalidito.com/phonelookup/getcredits/' . rawurlencode($apiKey) . '/' . rawurlencode($apiSecret));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$response = curl_exec($ch);
if ($response === false) {
    die('Request failed: ' . curl_error($ch));
}
curl_close($ch);

echo json_encode(json_decode($response, true), JSON_PRETTY_PRINT);
// Node.js 18+ (built-in fetch)
const apiKey = 'YOUR_API_KEY';
const apiSecret = 'YOUR_API_SECRET';

async function main() {
  const url = 'https://app.realvalidito.com/phonelookup/getcredits/' + encodeURIComponent(apiKey) + '/' + encodeURIComponent(apiSecret);
  const response = await fetch(url);
  const data = await response.json();
  console.log(JSON.stringify(data, null, 2));
}

main().catch(console.error);
import json
from urllib.parse import quote

import requests

api_key = "YOUR_API_KEY"
api_secret = "YOUR_API_SECRET"

url = f"https://app.realvalidito.com/phonelookup/getcredits/{quote(api_key)}/{quote(api_secret)}"
response = requests.get(url, timeout=30)
response.raise_for_status()
print(json.dumps(response.json(), indent=2))
package main

import (
	"encoding/json"
	"fmt"
	"io"
	"net/http"
	"net/url"
	"time"
)

func main() {
	apiKey := "YOUR_API_KEY"
	apiSecret := "YOUR_API_SECRET"
	endpoint := "https://app.realvalidito.com/phonelookup/getcredits/" + url.PathEscape(apiKey) + "/" + url.PathEscape(apiSecret)

	client := &http.Client{Timeout: 30 * time.Second}
	resp, err := client.Get(endpoint)
	if err != nil {
		fmt.Println("request failed:", err)
		return
	}
	defer resp.Body.Close()

	body, err := io.ReadAll(resp.Body)
	if err != nil {
		fmt.Println("read failed:", err)
		return
	}
	var result map[string]any
	if err := json.Unmarshal(body, &result); err != nil {
		fmt.Println("invalid JSON:", err)
		return
	}
	pretty, _ := json.MarshalIndent(result, "", "  ")
	fmt.Println(string(pretty))
}
// .NET 6+ console app
using System;
using System.Net.Http;
using System.Text.Json;

var apiKey = "YOUR_API_KEY";
var apiSecret = "YOUR_API_SECRET";

using var client = new HttpClient { Timeout = TimeSpan.FromSeconds(30) };
var url = "https://app.realvalidito.com/phonelookup/getcredits/" + Uri.EscapeDataString(apiKey) + "/" + Uri.EscapeDataString(apiSecret);
var body = await client.GetStringAsync(url);

using var doc = JsonDocument.Parse(body);
Console.WriteLine(JsonSerializer.Serialize(doc.RootElement, new JsonSerializerOptions { WriteIndented = true }));

Response 200 OK

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

Unauthorized

{
  "status": "failed",
  "error": {
    "error_code": 600,
    "message": "Invalid API Key or API Secret."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 600,
      "ErrorMessage": "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."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 614,
      "ErrorMessage": "The request could not be authenticated. Only HTTP GET method is allowed."
    }
  }
}

Phone Number Lookup

POST /phonelookup/validate

Request body

NameTypeDescriptionExample
api_keystring requiredAPI KeyYOUR_API_KEY
api_secretstring requiredAPI SecretYOUR_API_SECRET
numbersarray requiredPhone number(s) to validate
Array of 10-digit numeric phone numbers of the USA / Canada only. No spaces, special characters, etc. No leading +1.
A maximum of 1,000 phone numbers per request.
['1234567890', '470*******', '908*******', '704*******']

Responses

Request

cURL (Bash)jQueryPHP (cURL)Node.jsPythonGoC#
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": ["2015550123", "4165550198"]
  }'
// Run this in an internal tool or behind a login only: never put your API secret into a public web page.
$.ajax({
  url: 'https://app.realvalidito.com/phonelookup/validate',
  method: 'POST',
  contentType: 'application/json',
  dataType: 'json',
  data: JSON.stringify({
    api_key: 'YOUR_API_KEY',
    api_secret: 'YOUR_API_SECRET',
    numbers: ['2015550123', '4165550198']
  }),
  success: function (data) {
    console.log(data);
  },
  error: function (xhr) {
    console.error(xhr.status, xhr.responseText);
  }
});
<?php
$payload = json_encode([
    'api_key'    => 'YOUR_API_KEY',
    'api_secret' => 'YOUR_API_SECRET',
    'numbers' => ['2015550123', '4165550198'],
]);

$ch = curl_init('https://app.realvalidito.com/phonelookup/validate');
curl_setopt_array($ch, [
    CURLOPT_POST           => true,
    CURLOPT_POSTFIELDS     => $payload,
    CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT        => 30,
]);
$response = curl_exec($ch);
if ($response === false) {
    die('Request failed: ' . curl_error($ch));
}
curl_close($ch);

echo json_encode(json_decode($response, true), JSON_PRETTY_PRINT);
// Node.js 18+ (built-in fetch)
async function main() {
  const response = await fetch('https://app.realvalidito.com/phonelookup/validate', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      api_key: 'YOUR_API_KEY',
      api_secret: 'YOUR_API_SECRET',
      numbers: ['2015550123', '4165550198']
    })
  });
  const data = await response.json();
  console.log(JSON.stringify(data, null, 2));
}

main().catch(console.error);
import json

import requests

payload = {
    "api_key": "YOUR_API_KEY",
    "api_secret": "YOUR_API_SECRET",
    "numbers": ["2015550123", "4165550198"],
}

response = requests.post("https://app.realvalidito.com/phonelookup/validate", json=payload, timeout=30)
response.raise_for_status()
print(json.dumps(response.json(), indent=2))
package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"io"
	"net/http"
	"time"
)

func main() {
	payload, err := json.Marshal(map[string]any{
		"api_key":    "YOUR_API_KEY",
		"api_secret": "YOUR_API_SECRET",
		"numbers": []string{"2015550123", "4165550198"},
	})
	if err != nil {
		fmt.Println(err)
		return
	}

	client := &http.Client{Timeout: 30 * time.Second}
	resp, err := client.Post("https://app.realvalidito.com/phonelookup/validate", "application/json", bytes.NewReader(payload))
	if err != nil {
		fmt.Println("request failed:", err)
		return
	}
	defer resp.Body.Close()

	body, err := io.ReadAll(resp.Body)
	if err != nil {
		fmt.Println("read failed:", err)
		return
	}
	var result map[string]any
	if err := json.Unmarshal(body, &result); err != nil {
		fmt.Println("invalid JSON:", err)
		return
	}
	pretty, _ := json.MarshalIndent(result, "", "  ")
	fmt.Println(string(pretty))
}
// .NET 6+ console app
using System;
using System.Net.Http;
using System.Net.Http.Json;
using System.Text.Json;

using var client = new HttpClient { Timeout = TimeSpan.FromSeconds(30) };
var payload = new
{
    api_key = "YOUR_API_KEY",
    api_secret = "YOUR_API_SECRET",
    numbers = new[] { "2015550123", "4165550198" }
};

var response = await client.PostAsJsonAsync("https://app.realvalidito.com/phonelookup/validate", payload);
var body = await response.Content.ReadAsStringAsync();

using var doc = JsonDocument.Parse(body);
Console.WriteLine(JsonSerializer.Serialize(doc.RootElement, new JsonSerializerOptions { WriteIndented = true }));

Response 200 OK

SuccessFailed
{
  "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": "Verizon Wireless",
      "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": "Lightpath",
      "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": "CenturyLink",
      "network_type": "CLEC",
      "network_domain": ""
    }
  }
}

Unauthorized

{
  "status": "failed",
  "error": {
    "error_code": 600,
    "message": "Invalid API Key or API Secret."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 600,
      "ErrorMessage": "Invalid API Key or API Secret."
    }
  }
}

{
  "status": "failed",
  "error": {
    "error_code": 601,
    "message": "API Key and API Secret are required."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 601,
      "ErrorMessage": "API Key and API Secret are required."
    }
  }
}

{
  "status": "failed",
  "error": {
    "error_code": 602,
    "message": "The request could not be authenticated. Only HTTP POST method is allowed."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 602,
      "ErrorMessage": "The request could not be authenticated. Only HTTP POST method is allowed."
    }
  }
}

Payment Required

{
  "status": "failed",
  "error": {
    "error_code": 603,
    "message": "You do not have enough credits to process this request."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 603,
      "ErrorMessage": "You do not have enough credits to process this request."
    }
  }
}

{
  "status": "failed",
  "error": {
    "error_code": 604,
    "message": "You have no credits remaining to process this request."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 604,
      "ErrorMessage": "You have no credits remaining to process this request."
    }
  }
}

Inactive Account

{
  "status": "failed",
  "error": {
    "error_code": 605,
    "message": "Your account is not activated to use this service."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 605,
      "ErrorMessage": "Your account is not activated to use this service."
    }
  }
}

Unknown Error

{
  "status": "failed",
  "error": {
    "error_code": 607,
    "message": "An internal error occurred. Please try again later."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 607,
      "ErrorMessage": "An internal error occurred. Please try again later."
    }
  }
}

Phone Number(s) Required

{
  "status": "failed",
  "error": {
    "error_code": 608,
    "message": "The request doesn't contain Phone Number(s)."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 608,
      "ErrorMessage": "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 1000 Phone Number(s)."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 609,
      "ErrorMessage": "The request must not contain more than 1000 Phone Number(s)."
    }
  }
}

DNC Lookup API

Get Available Credits

GET /dnclookup/getcredits/{api_key}/{api_secret}

Path variables

NameTypeDescriptionExample
api_keystring requiredAPI KeyYOUR_API_KEY
api_secretstring requiredAPI SecretYOUR_API_SECRET

Responses

Request

cURL (Bash)jQueryPHP (cURL)Node.jsPythonGoC#
curl "https://app.realvalidito.com/dnclookup/getcredits/YOUR_API_KEY/YOUR_API_SECRET"
// Run this in an internal tool or behind a login only: never put your API secret into a public web page.
var apiKey = 'YOUR_API_KEY';
var apiSecret = 'YOUR_API_SECRET';

$.ajax({
  url: 'https://app.realvalidito.com/dnclookup/getcredits/' + encodeURIComponent(apiKey) + '/' + encodeURIComponent(apiSecret),
  method: 'GET',
  dataType: 'json',
  success: function (data) {
    console.log(data);
  },
  error: function (xhr) {
    console.error(xhr.status, xhr.responseText);
  }
});
<?php
$apiKey = 'YOUR_API_KEY';
$apiSecret = 'YOUR_API_SECRET';

$ch = curl_init('https://app.realvalidito.com/dnclookup/getcredits/' . rawurlencode($apiKey) . '/' . rawurlencode($apiSecret));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$response = curl_exec($ch);
if ($response === false) {
    die('Request failed: ' . curl_error($ch));
}
curl_close($ch);

echo json_encode(json_decode($response, true), JSON_PRETTY_PRINT);
// Node.js 18+ (built-in fetch)
const apiKey = 'YOUR_API_KEY';
const apiSecret = 'YOUR_API_SECRET';

async function main() {
  const url = 'https://app.realvalidito.com/dnclookup/getcredits/' + encodeURIComponent(apiKey) + '/' + encodeURIComponent(apiSecret);
  const response = await fetch(url);
  const data = await response.json();
  console.log(JSON.stringify(data, null, 2));
}

main().catch(console.error);
import json
from urllib.parse import quote

import requests

api_key = "YOUR_API_KEY"
api_secret = "YOUR_API_SECRET"

url = f"https://app.realvalidito.com/dnclookup/getcredits/{quote(api_key)}/{quote(api_secret)}"
response = requests.get(url, timeout=30)
response.raise_for_status()
print(json.dumps(response.json(), indent=2))
package main

import (
	"encoding/json"
	"fmt"
	"io"
	"net/http"
	"net/url"
	"time"
)

func main() {
	apiKey := "YOUR_API_KEY"
	apiSecret := "YOUR_API_SECRET"
	endpoint := "https://app.realvalidito.com/dnclookup/getcredits/" + url.PathEscape(apiKey) + "/" + url.PathEscape(apiSecret)

	client := &http.Client{Timeout: 30 * time.Second}
	resp, err := client.Get(endpoint)
	if err != nil {
		fmt.Println("request failed:", err)
		return
	}
	defer resp.Body.Close()

	body, err := io.ReadAll(resp.Body)
	if err != nil {
		fmt.Println("read failed:", err)
		return
	}
	var result map[string]any
	if err := json.Unmarshal(body, &result); err != nil {
		fmt.Println("invalid JSON:", err)
		return
	}
	pretty, _ := json.MarshalIndent(result, "", "  ")
	fmt.Println(string(pretty))
}
// .NET 6+ console app
using System;
using System.Net.Http;
using System.Text.Json;

var apiKey = "YOUR_API_KEY";
var apiSecret = "YOUR_API_SECRET";

using var client = new HttpClient { Timeout = TimeSpan.FromSeconds(30) };
var url = "https://app.realvalidito.com/dnclookup/getcredits/" + Uri.EscapeDataString(apiKey) + "/" + Uri.EscapeDataString(apiSecret);
var body = await client.GetStringAsync(url);

using var doc = JsonDocument.Parse(body);
Console.WriteLine(JsonSerializer.Serialize(doc.RootElement, new JsonSerializerOptions { WriteIndented = true }));

Response 200 OK

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

Unauthorized

{
  "status": "failed",
  "error": {
    "error_code": 600,
    "message": "Invalid API Key or API Secret."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 600,
      "ErrorMessage": "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."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 614,
      "ErrorMessage": "The request could not be authenticated. Only HTTP GET method is allowed."
    }
  }
}

DNC Lookup

POST /dnclookup/validate

Request body

NameTypeDescriptionExample
api_keystring requiredAPI KeyYOUR_API_KEY
api_secretstring requiredAPI SecretYOUR_API_SECRET
numbersarray requiredPhone number(s) to scrub
Array of 10-digit numeric phone numbers of the USA. No spaces, special characters, etc. No leading +1.
A maximum of 1,000 phone numbers per request.
['1234567890', '812*******', '908*******', '704*******', '757*******']

Responses

Request

cURL (Bash)jQueryPHP (cURL)Node.jsPythonGoC#
curl -X POST "https://app.realvalidito.com/dnclookup/validate" \
  -H "Content-Type: application/json" \
  -d '{
    "api_key": "YOUR_API_KEY",
    "api_secret": "YOUR_API_SECRET",
    "numbers": ["2015550123", "2015550124"]
  }'
// Run this in an internal tool or behind a login only: never put your API secret into a public web page.
$.ajax({
  url: 'https://app.realvalidito.com/dnclookup/validate',
  method: 'POST',
  contentType: 'application/json',
  dataType: 'json',
  data: JSON.stringify({
    api_key: 'YOUR_API_KEY',
    api_secret: 'YOUR_API_SECRET',
    numbers: ['2015550123', '2015550124']
  }),
  success: function (data) {
    console.log(data);
  },
  error: function (xhr) {
    console.error(xhr.status, xhr.responseText);
  }
});
<?php
$payload = json_encode([
    'api_key'    => 'YOUR_API_KEY',
    'api_secret' => 'YOUR_API_SECRET',
    'numbers' => ['2015550123', '2015550124'],
]);

$ch = curl_init('https://app.realvalidito.com/dnclookup/validate');
curl_setopt_array($ch, [
    CURLOPT_POST           => true,
    CURLOPT_POSTFIELDS     => $payload,
    CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT        => 30,
]);
$response = curl_exec($ch);
if ($response === false) {
    die('Request failed: ' . curl_error($ch));
}
curl_close($ch);

echo json_encode(json_decode($response, true), JSON_PRETTY_PRINT);
// Node.js 18+ (built-in fetch)
async function main() {
  const response = await fetch('https://app.realvalidito.com/dnclookup/validate', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      api_key: 'YOUR_API_KEY',
      api_secret: 'YOUR_API_SECRET',
      numbers: ['2015550123', '2015550124']
    })
  });
  const data = await response.json();
  console.log(JSON.stringify(data, null, 2));
}

main().catch(console.error);
import json

import requests

payload = {
    "api_key": "YOUR_API_KEY",
    "api_secret": "YOUR_API_SECRET",
    "numbers": ["2015550123", "2015550124"],
}

response = requests.post("https://app.realvalidito.com/dnclookup/validate", json=payload, timeout=30)
response.raise_for_status()
print(json.dumps(response.json(), indent=2))
package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"io"
	"net/http"
	"time"
)

func main() {
	payload, err := json.Marshal(map[string]any{
		"api_key":    "YOUR_API_KEY",
		"api_secret": "YOUR_API_SECRET",
		"numbers": []string{"2015550123", "2015550124"},
	})
	if err != nil {
		fmt.Println(err)
		return
	}

	client := &http.Client{Timeout: 30 * time.Second}
	resp, err := client.Post("https://app.realvalidito.com/dnclookup/validate", "application/json", bytes.NewReader(payload))
	if err != nil {
		fmt.Println("request failed:", err)
		return
	}
	defer resp.Body.Close()

	body, err := io.ReadAll(resp.Body)
	if err != nil {
		fmt.Println("read failed:", err)
		return
	}
	var result map[string]any
	if err := json.Unmarshal(body, &result); err != nil {
		fmt.Println("invalid JSON:", err)
		return
	}
	pretty, _ := json.MarshalIndent(result, "", "  ")
	fmt.Println(string(pretty))
}
// .NET 6+ console app
using System;
using System.Net.Http;
using System.Net.Http.Json;
using System.Text.Json;

using var client = new HttpClient { Timeout = TimeSpan.FromSeconds(30) };
var payload = new
{
    api_key = "YOUR_API_KEY",
    api_secret = "YOUR_API_SECRET",
    numbers = new[] { "2015550123", "2015550124" }
};

var response = await client.PostAsJsonAsync("https://app.realvalidito.com/dnclookup/validate", payload);
var body = await response.Content.ReadAsStringAsync();

using var doc = JsonDocument.Parse(body);
Console.WriteLine(JsonSerializer.Serialize(doc.RootElement, new JsonSerializerOptions { WriteIndented = true }));

Response 200 OK

SuccessFailed
{
  "status": "success",
  "data": {
    "cleaned_number": [
      "908*******",
      "704*******"
    ],
    "tcpa_litigator": [
      "757*******",
      "812*******"
    ],
    "federal_dnc": [
      "989*******",
      "207*******"
    ],
    "state_dnc": {
      "561*******": "Florida-DNC"
    },
    "invalid": [
      "1234567890"
    ]
  }
}

Unauthorized

{
  "status": "failed",
  "error": {
    "error_code": 600,
    "message": "Invalid API Key or API Secret."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 600,
      "ErrorMessage": "Invalid API Key or API Secret."
    }
  }
}

{
  "status": "failed",
  "error": {
    "error_code": 601,
    "message": "API Key and API Secret are required."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 601,
      "ErrorMessage": "API Key and API Secret are required."
    }
  }
}

{
  "status": "failed",
  "error": {
    "error_code": 602,
    "message": "The request could not be authenticated. Only HTTP POST method is allowed."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 602,
      "ErrorMessage": "The request could not be authenticated. Only HTTP POST method is allowed."
    }
  }
}

Payment Required

{
  "status": "failed",
  "error": {
    "error_code": 603,
    "message": "You do not have enough credits to process this request."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 603,
      "ErrorMessage": "You do not have enough credits to process this request."
    }
  }
}

{
  "status": "failed",
  "error": {
    "error_code": 604,
    "message": "You have no credits remaining to process this request."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 604,
      "ErrorMessage": "You have no credits remaining to process this request."
    }
  }
}

Inactive Account

{
  "status": "failed",
  "error": {
    "error_code": 605,
    "message": "Your account is not activated to use this service."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 605,
      "ErrorMessage": "Your account is not activated to use this service."
    }
  }
}

Unknown Error

{
  "status": "failed",
  "error": {
    "error_code": 607,
    "message": "An internal error occurred. Please try again later."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 607,
      "ErrorMessage": "An internal error occurred. Please try again later."
    }
  }
}

Phone Number(s) Required

{
  "status": "failed",
  "error": {
    "error_code": 608,
    "message": "The request doesn't contain Phone Number(s)."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 608,
      "ErrorMessage": "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 1000 Phone Number(s)."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 609,
      "ErrorMessage": "The request must not contain more than 1000 Phone Number(s)."
    }
  }
}

Phone + DNC Lookup API

Phone Lookup and DNC Lookup in one request: every number gets its Valid/Invalid status, line type, carrier and location, plus its DNC result. Each number costs 1 Phone credit + 1 DNC credit, so both balances must cover the request.

Get Available Credits

GET /lookups/getcredits/{api_key}/{api_secret}

Returns both balances: available_phonelookup_credits and available_dnclookup_credits.

Path variables

NameTypeDescriptionExample
api_keystring requiredAPI KeyYOUR_API_KEY
api_secretstring requiredAPI SecretYOUR_API_SECRET

Responses

Request

cURL (Bash)jQueryPHP (cURL)Node.jsPythonGoC#
curl "https://app.realvalidito.com/lookups/getcredits/YOUR_API_KEY/YOUR_API_SECRET"
// Run this in an internal tool or behind a login only: never put your API secret into a public web page.
var apiKey = 'YOUR_API_KEY';
var apiSecret = 'YOUR_API_SECRET';

$.ajax({
  url: 'https://app.realvalidito.com/lookups/getcredits/' + encodeURIComponent(apiKey) + '/' + encodeURIComponent(apiSecret),
  method: 'GET',
  dataType: 'json',
  success: function (data) {
    console.log(data);
  },
  error: function (xhr) {
    console.error(xhr.status, xhr.responseText);
  }
});
<?php
$apiKey = 'YOUR_API_KEY';
$apiSecret = 'YOUR_API_SECRET';

$ch = curl_init('https://app.realvalidito.com/lookups/getcredits/' . rawurlencode($apiKey) . '/' . rawurlencode($apiSecret));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$response = curl_exec($ch);
if ($response === false) {
    die('Request failed: ' . curl_error($ch));
}
curl_close($ch);

echo json_encode(json_decode($response, true), JSON_PRETTY_PRINT);
// Node.js 18+ (built-in fetch)
const apiKey = 'YOUR_API_KEY';
const apiSecret = 'YOUR_API_SECRET';

async function main() {
  const url = 'https://app.realvalidito.com/lookups/getcredits/' + encodeURIComponent(apiKey) + '/' + encodeURIComponent(apiSecret);
  const response = await fetch(url);
  const data = await response.json();
  console.log(JSON.stringify(data, null, 2));
}

main().catch(console.error);
import json
from urllib.parse import quote

import requests

api_key = "YOUR_API_KEY"
api_secret = "YOUR_API_SECRET"

url = f"https://app.realvalidito.com/lookups/getcredits/{quote(api_key)}/{quote(api_secret)}"
response = requests.get(url, timeout=30)
response.raise_for_status()
print(json.dumps(response.json(), indent=2))
package main

import (
	"encoding/json"
	"fmt"
	"io"
	"net/http"
	"net/url"
	"time"
)

func main() {
	apiKey := "YOUR_API_KEY"
	apiSecret := "YOUR_API_SECRET"
	endpoint := "https://app.realvalidito.com/lookups/getcredits/" + url.PathEscape(apiKey) + "/" + url.PathEscape(apiSecret)

	client := &http.Client{Timeout: 30 * time.Second}
	resp, err := client.Get(endpoint)
	if err != nil {
		fmt.Println("request failed:", err)
		return
	}
	defer resp.Body.Close()

	body, err := io.ReadAll(resp.Body)
	if err != nil {
		fmt.Println("read failed:", err)
		return
	}
	var result map[string]any
	if err := json.Unmarshal(body, &result); err != nil {
		fmt.Println("invalid JSON:", err)
		return
	}
	pretty, _ := json.MarshalIndent(result, "", "  ")
	fmt.Println(string(pretty))
}
// .NET 6+ console app
using System;
using System.Net.Http;
using System.Text.Json;

var apiKey = "YOUR_API_KEY";
var apiSecret = "YOUR_API_SECRET";

using var client = new HttpClient { Timeout = TimeSpan.FromSeconds(30) };
var url = "https://app.realvalidito.com/lookups/getcredits/" + Uri.EscapeDataString(apiKey) + "/" + Uri.EscapeDataString(apiSecret);
var body = await client.GetStringAsync(url);

using var doc = JsonDocument.Parse(body);
Console.WriteLine(JsonSerializer.Serialize(doc.RootElement, new JsonSerializerOptions { WriteIndented = true }));

Response 200 OK

SuccessFailed
{
  "status": "success",
  "data": {
     "available_phonelookup_credits": "5000",
     "available_dnclookup_credits": "2000"
   }
}

Unauthorized

{
  "status": "failed",
  "error": {
    "error_code": 600,
    "message": "Invalid API Key or API Secret."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 600,
      "ErrorMessage": "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."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 614,
      "ErrorMessage": "The request could not be authenticated. Only HTTP GET method is allowed."
    }
  }
}

IP Address Not Allowed

{
  "status": "failed",
  "error": {
    "error_code": 616,
    "message": "Requests from this IP address are not allowed for this API key. Add the address under API Credentials > Allowed IP addresses."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 616,
      "ErrorMessage": "Requests from this IP address are not allowed for this API key. Add the address under API Credentials > Allowed IP addresses."
    }
  }
}

Phone + DNC Lookup

POST /lookups/validate

Request body

NameTypeDescriptionExample
api_keystring requiredAPI KeyYOUR_API_KEY
api_secretstring requiredAPI SecretYOUR_API_SECRET
numbersarray requiredPhone number(s) to check
Array of 10-digit numeric phone numbers of the USA / Canada. No spaces, special characters, etc. No leading 1 or +1 (a leading 1 is removed).
A maximum of 1,000 phone numbers per request.
['1234567890', '470*******', '561*******', '757*******']

Response fields

  • phone_status — Valid or Invalid, followed by the Phone Lookup fields (phone_number … network_domain).
  • dnc_status — cleaned_number, tcpa_litigator, federal_dnc or invalid.
  • state_dnc — on every number: the state list(s) the number is on (for example Florida-DNC; dnc_status is then federal_dnc), otherwise an empty string.

Errors: 603 = not enough Phone or DNC credits for the request; 604 = no DNC credits left.

Responses

Request

cURL (Bash)jQueryPHP (cURL)Node.jsPythonGoC#
curl -X POST "https://app.realvalidito.com/lookups/validate" \
  -H "Content-Type: application/json" \
  -d '{
    "api_key": "YOUR_API_KEY",
    "api_secret": "YOUR_API_SECRET",
    "numbers": ["2015550123", "4165550198"]
  }'
// Run this in an internal tool or behind a login only: never put your API secret into a public web page.
$.ajax({
  url: 'https://app.realvalidito.com/lookups/validate',
  method: 'POST',
  contentType: 'application/json',
  dataType: 'json',
  data: JSON.stringify({
    api_key: 'YOUR_API_KEY',
    api_secret: 'YOUR_API_SECRET',
    numbers: ['2015550123', '4165550198']
  }),
  success: function (data) {
    console.log(data);
  },
  error: function (xhr) {
    console.error(xhr.status, xhr.responseText);
  }
});
<?php
$payload = json_encode([
    'api_key'    => 'YOUR_API_KEY',
    'api_secret' => 'YOUR_API_SECRET',
    'numbers' => ['2015550123', '4165550198'],
]);

$ch = curl_init('https://app.realvalidito.com/lookups/validate');
curl_setopt_array($ch, [
    CURLOPT_POST           => true,
    CURLOPT_POSTFIELDS     => $payload,
    CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT        => 30,
]);
$response = curl_exec($ch);
if ($response === false) {
    die('Request failed: ' . curl_error($ch));
}
curl_close($ch);

echo json_encode(json_decode($response, true), JSON_PRETTY_PRINT);
// Node.js 18+ (built-in fetch)
async function main() {
  const response = await fetch('https://app.realvalidito.com/lookups/validate', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      api_key: 'YOUR_API_KEY',
      api_secret: 'YOUR_API_SECRET',
      numbers: ['2015550123', '4165550198']
    })
  });
  const data = await response.json();
  console.log(JSON.stringify(data, null, 2));
}

main().catch(console.error);
import json

import requests

payload = {
    "api_key": "YOUR_API_KEY",
    "api_secret": "YOUR_API_SECRET",
    "numbers": ["2015550123", "4165550198"],
}

response = requests.post("https://app.realvalidito.com/lookups/validate", json=payload, timeout=30)
response.raise_for_status()
print(json.dumps(response.json(), indent=2))
package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"io"
	"net/http"
	"time"
)

func main() {
	payload, err := json.Marshal(map[string]any{
		"api_key":    "YOUR_API_KEY",
		"api_secret": "YOUR_API_SECRET",
		"numbers": []string{"2015550123", "4165550198"},
	})
	if err != nil {
		fmt.Println(err)
		return
	}

	client := &http.Client{Timeout: 30 * time.Second}
	resp, err := client.Post("https://app.realvalidito.com/lookups/validate", "application/json", bytes.NewReader(payload))
	if err != nil {
		fmt.Println("request failed:", err)
		return
	}
	defer resp.Body.Close()

	body, err := io.ReadAll(resp.Body)
	if err != nil {
		fmt.Println("read failed:", err)
		return
	}
	var result map[string]any
	if err := json.Unmarshal(body, &result); err != nil {
		fmt.Println("invalid JSON:", err)
		return
	}
	pretty, _ := json.MarshalIndent(result, "", "  ")
	fmt.Println(string(pretty))
}
// .NET 6+ console app
using System;
using System.Net.Http;
using System.Net.Http.Json;
using System.Text.Json;

using var client = new HttpClient { Timeout = TimeSpan.FromSeconds(30) };
var payload = new
{
    api_key = "YOUR_API_KEY",
    api_secret = "YOUR_API_SECRET",
    numbers = new[] { "2015550123", "4165550198" }
};

var response = await client.PostAsJsonAsync("https://app.realvalidito.com/lookups/validate", payload);
var body = await response.Content.ReadAsStringAsync();

using var doc = JsonDocument.Parse(body);
Console.WriteLine(JsonSerializer.Serialize(doc.RootElement, new JsonSerializerOptions { WriteIndented = true }));

Response 200 OK

SuccessFailed
{
  "status": "success",
  "data": {
    "1234567890": {
      "phone_status": "Invalid",
      "phone_number": "1234567890",
      "national_format": "",
      "country_prefix": "",
      "number_type": "Unknown",
      "zip": "",
      "area": "",
      "city": "",
      "state": "",
      "country": "",
      "timezone": "",
      "network_name": "",
      "network_type": "",
      "network_domain": "",
      "dnc_status": "invalid",
      "state_dnc": ""
    },
    "470*******": {
      "phone_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": "Verizon Wireless",
      "network_type": "WIRELESS",
      "network_domain": "470*******@vtext.com",
      "dnc_status": "cleaned_number",
      "state_dnc": ""
    },
    "561*******": {
      "phone_status": "Valid",
      "phone_number": "+1561*******",
      "national_format": "(561) ***-****",
      "country_prefix": "1",
      "number_type": "Landline",
      "zip": "33401",
      "area": "",
      "city": "West Palm Beach",
      "state": "FL",
      "country": "US",
      "timezone": "EST (America/New_York)",
      "network_name": "AT&T Southeast",
      "network_type": "LANDLINE",
      "network_domain": "",
      "dnc_status": "federal_dnc",
      "state_dnc": "Florida-DNC"
    },
    "757*******": {
      "phone_status": "Valid",
      "phone_number": "+1757*******",
      "national_format": "(757) ***-****",
      "country_prefix": "1",
      "number_type": "Mobile",
      "zip": "23510",
      "area": "",
      "city": "Norfolk",
      "state": "VA",
      "country": "US",
      "timezone": "EST (America/New_York)",
      "network_name": "T-Mobile",
      "network_type": "WIRELESS",
      "network_domain": "757*******@tmomail.net",
      "dnc_status": "tcpa_litigator",
      "state_dnc": ""
    }
  }
}

Unauthorized

{
  "status": "failed",
  "error": {
    "error_code": 600,
    "message": "Invalid API Key or API Secret."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 600,
      "ErrorMessage": "Invalid API Key or API Secret."
    }
  }
}

{
  "status": "failed",
  "error": {
    "error_code": 601,
    "message": "API Key and API Secret are required."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 601,
      "ErrorMessage": "API Key and API Secret are required."
    }
  }
}

{
  "status": "failed",
  "error": {
    "error_code": 602,
    "message": "The request could not be authenticated. Only HTTP POST method is allowed."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 602,
      "ErrorMessage": "The request could not be authenticated. Only HTTP POST method is allowed."
    }
  }
}

Payment Required

{
  "status": "failed",
  "error": {
    "error_code": 603,
    "message": "You do not have enough phone lookup credits to process this request."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 603,
      "ErrorMessage": "You do not have enough phone lookup credits to process this request."
    }
  }
}

{
  "status": "failed",
  "error": {
    "error_code": 604,
    "message": "You have no DNC lookup credits to process this request."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 604,
      "ErrorMessage": "You have no DNC lookup credits to process this request."
    }
  }
}

Inactive Account

{
  "status": "failed",
  "error": {
    "error_code": 605,
    "message": "Your account is not activated to use this service."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 605,
      "ErrorMessage": "Your account is not activated to use this service."
    }
  }
}

Phone Number(s) Required

{
  "status": "failed",
  "error": {
    "error_code": 608,
    "message": "The request doesn't contain Phone Number(s)."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 608,
      "ErrorMessage": "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 1000 Phone Number(s)."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 609,
      "ErrorMessage": "The request must not contain more than 1000 Phone Number(s)."
    }
  }
}

IP Address Not Allowed

{
  "status": "failed",
  "error": {
    "error_code": 616,
    "message": "Requests from this IP address are not allowed for this API key. Add the address under API Credentials > Allowed IP addresses."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 616,
      "ErrorMessage": "Requests from this IP address are not allowed for this API key. Add the address under API Credentials > Allowed IP addresses."
    }
  }
}

Gender Lookup API

Get Available Credits

GET /genderlookup/getcredits/{api_key}/{api_secret}

Path variables

NameTypeDescriptionExample
api_keystring requiredAPI KeyYOUR_API_KEY
api_secretstring requiredAPI SecretYOUR_API_SECRET

Responses

Request

cURL (Bash)jQueryPHP (cURL)Node.jsPythonGoC#
curl "https://app.realvalidito.com/genderlookup/getcredits/YOUR_API_KEY/YOUR_API_SECRET"
// Run this in an internal tool or behind a login only: never put your API secret into a public web page.
var apiKey = 'YOUR_API_KEY';
var apiSecret = 'YOUR_API_SECRET';

$.ajax({
  url: 'https://app.realvalidito.com/genderlookup/getcredits/' + encodeURIComponent(apiKey) + '/' + encodeURIComponent(apiSecret),
  method: 'GET',
  dataType: 'json',
  success: function (data) {
    console.log(data);
  },
  error: function (xhr) {
    console.error(xhr.status, xhr.responseText);
  }
});
<?php
$apiKey = 'YOUR_API_KEY';
$apiSecret = 'YOUR_API_SECRET';

$ch = curl_init('https://app.realvalidito.com/genderlookup/getcredits/' . rawurlencode($apiKey) . '/' . rawurlencode($apiSecret));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$response = curl_exec($ch);
if ($response === false) {
    die('Request failed: ' . curl_error($ch));
}
curl_close($ch);

echo json_encode(json_decode($response, true), JSON_PRETTY_PRINT);
// Node.js 18+ (built-in fetch)
const apiKey = 'YOUR_API_KEY';
const apiSecret = 'YOUR_API_SECRET';

async function main() {
  const url = 'https://app.realvalidito.com/genderlookup/getcredits/' + encodeURIComponent(apiKey) + '/' + encodeURIComponent(apiSecret);
  const response = await fetch(url);
  const data = await response.json();
  console.log(JSON.stringify(data, null, 2));
}

main().catch(console.error);
import json
from urllib.parse import quote

import requests

api_key = "YOUR_API_KEY"
api_secret = "YOUR_API_SECRET"

url = f"https://app.realvalidito.com/genderlookup/getcredits/{quote(api_key)}/{quote(api_secret)}"
response = requests.get(url, timeout=30)
response.raise_for_status()
print(json.dumps(response.json(), indent=2))
package main

import (
	"encoding/json"
	"fmt"
	"io"
	"net/http"
	"net/url"
	"time"
)

func main() {
	apiKey := "YOUR_API_KEY"
	apiSecret := "YOUR_API_SECRET"
	endpoint := "https://app.realvalidito.com/genderlookup/getcredits/" + url.PathEscape(apiKey) + "/" + url.PathEscape(apiSecret)

	client := &http.Client{Timeout: 30 * time.Second}
	resp, err := client.Get(endpoint)
	if err != nil {
		fmt.Println("request failed:", err)
		return
	}
	defer resp.Body.Close()

	body, err := io.ReadAll(resp.Body)
	if err != nil {
		fmt.Println("read failed:", err)
		return
	}
	var result map[string]any
	if err := json.Unmarshal(body, &result); err != nil {
		fmt.Println("invalid JSON:", err)
		return
	}
	pretty, _ := json.MarshalIndent(result, "", "  ")
	fmt.Println(string(pretty))
}
// .NET 6+ console app
using System;
using System.Net.Http;
using System.Text.Json;

var apiKey = "YOUR_API_KEY";
var apiSecret = "YOUR_API_SECRET";

using var client = new HttpClient { Timeout = TimeSpan.FromSeconds(30) };
var url = "https://app.realvalidito.com/genderlookup/getcredits/" + Uri.EscapeDataString(apiKey) + "/" + Uri.EscapeDataString(apiSecret);
var body = await client.GetStringAsync(url);

using var doc = JsonDocument.Parse(body);
Console.WriteLine(JsonSerializer.Serialize(doc.RootElement, new JsonSerializerOptions { WriteIndented = true }));

Response 200 OK

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

Unauthorized

{
  "status": "failed",
  "error": {
    "error_code": 600,
    "message": "Invalid API Key or API Secret."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 600,
      "ErrorMessage": "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."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 614,
      "ErrorMessage": "The request could not be authenticated. Only HTTP GET method is allowed."
    }
  }
}

Gender Lookup

POST /genderlookup/validate

Request body

NameTypeDescriptionExample
api_keystring requiredAPI KeyYOUR_API_KEY
api_secretstring requiredAPI SecretYOUR_API_SECRET
namesarray requiredCustomer's name(s)
Array of names (first name, or full name: the first name is used).
A maximum of 1,000 names per request.
['Aabel', 'Delain', 'Kecha', 'Vincenzzo', 'Shade', 'Cracker', 'Yes']

Responses

Request

cURL (Bash)jQueryPHP (cURL)Node.jsPythonGoC#
curl -X POST "https://app.realvalidito.com/genderlookup/validate" \
  -H "Content-Type: application/json" \
  -d '{
    "api_key": "YOUR_API_KEY",
    "api_secret": "YOUR_API_SECRET",
    "names": ["Maria", "Jordan"]
  }'
// Run this in an internal tool or behind a login only: never put your API secret into a public web page.
$.ajax({
  url: 'https://app.realvalidito.com/genderlookup/validate',
  method: 'POST',
  contentType: 'application/json',
  dataType: 'json',
  data: JSON.stringify({
    api_key: 'YOUR_API_KEY',
    api_secret: 'YOUR_API_SECRET',
    names: ['Maria', 'Jordan']
  }),
  success: function (data) {
    console.log(data);
  },
  error: function (xhr) {
    console.error(xhr.status, xhr.responseText);
  }
});
<?php
$payload = json_encode([
    'api_key'    => 'YOUR_API_KEY',
    'api_secret' => 'YOUR_API_SECRET',
    'names' => ['Maria', 'Jordan'],
]);

$ch = curl_init('https://app.realvalidito.com/genderlookup/validate');
curl_setopt_array($ch, [
    CURLOPT_POST           => true,
    CURLOPT_POSTFIELDS     => $payload,
    CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT        => 30,
]);
$response = curl_exec($ch);
if ($response === false) {
    die('Request failed: ' . curl_error($ch));
}
curl_close($ch);

echo json_encode(json_decode($response, true), JSON_PRETTY_PRINT);
// Node.js 18+ (built-in fetch)
async function main() {
  const response = await fetch('https://app.realvalidito.com/genderlookup/validate', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      api_key: 'YOUR_API_KEY',
      api_secret: 'YOUR_API_SECRET',
      names: ['Maria', 'Jordan']
    })
  });
  const data = await response.json();
  console.log(JSON.stringify(data, null, 2));
}

main().catch(console.error);
import json

import requests

payload = {
    "api_key": "YOUR_API_KEY",
    "api_secret": "YOUR_API_SECRET",
    "names": ["Maria", "Jordan"],
}

response = requests.post("https://app.realvalidito.com/genderlookup/validate", json=payload, timeout=30)
response.raise_for_status()
print(json.dumps(response.json(), indent=2))
package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"io"
	"net/http"
	"time"
)

func main() {
	payload, err := json.Marshal(map[string]any{
		"api_key":    "YOUR_API_KEY",
		"api_secret": "YOUR_API_SECRET",
		"names": []string{"Maria", "Jordan"},
	})
	if err != nil {
		fmt.Println(err)
		return
	}

	client := &http.Client{Timeout: 30 * time.Second}
	resp, err := client.Post("https://app.realvalidito.com/genderlookup/validate", "application/json", bytes.NewReader(payload))
	if err != nil {
		fmt.Println("request failed:", err)
		return
	}
	defer resp.Body.Close()

	body, err := io.ReadAll(resp.Body)
	if err != nil {
		fmt.Println("read failed:", err)
		return
	}
	var result map[string]any
	if err := json.Unmarshal(body, &result); err != nil {
		fmt.Println("invalid JSON:", err)
		return
	}
	pretty, _ := json.MarshalIndent(result, "", "  ")
	fmt.Println(string(pretty))
}
// .NET 6+ console app
using System;
using System.Net.Http;
using System.Net.Http.Json;
using System.Text.Json;

using var client = new HttpClient { Timeout = TimeSpan.FromSeconds(30) };
var payload = new
{
    api_key = "YOUR_API_KEY",
    api_secret = "YOUR_API_SECRET",
    names = new[] { "Maria", "Jordan" }
};

var response = await client.PostAsJsonAsync("https://app.realvalidito.com/genderlookup/validate", payload);
var body = await response.Content.ReadAsStringAsync();

using var doc = JsonDocument.Parse(body);
Console.WriteLine(JsonSerializer.Serialize(doc.RootElement, new JsonSerializerOptions { WriteIndented = true }));

Response 200 OK

SuccessFailed
{
  "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."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 600,
      "ErrorMessage": "Invalid API Key or API Secret."
    }
  }
}

{
  "status": "failed",
  "error": {
    "error_code": 601,
    "message": "API Key and API Secret are required."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 601,
      "ErrorMessage": "API Key and API Secret are required."
    }
  }
}

{
  "status": "failed",
  "error": {
    "error_code": 602,
    "message": "The request could not be authenticated. Only HTTP POST method is allowed."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 602,
      "ErrorMessage": "The request could not be authenticated. Only HTTP POST method is allowed."
    }
  }
}

Payment Required

{
  "status": "failed",
  "error": {
    "error_code": 603,
    "message": "You do not have enough credits to process this request."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 603,
      "ErrorMessage": "You do not have enough credits to process this request."
    }
  }
}

{
  "status": "failed",
  "error": {
    "error_code": 604,
    "message": "You have no credits remaining to process this request."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 604,
      "ErrorMessage": "You have no credits remaining to process this request."
    }
  }
}

Inactive Account

{
  "status": "failed",
  "error": {
    "error_code": 605,
    "message": "Your account is not activated to use this service."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 605,
      "ErrorMessage": "Your account is not activated to use this service."
    }
  }
}

Unknown Error

{
  "status": "failed",
  "error": {
    "error_code": 607,
    "message": "An internal error occurred. Please try again later."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 607,
      "ErrorMessage": "An internal error occurred. Please try again later."
    }
  }
}

Name(s) Required

{
  "status": "failed",
  "error": {
    "error_code": 610,
    "message": "The request doesn't contain Name(s)."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 610,
      "ErrorMessage": "The request doesn't contain Name(s)."
    }
  }
}

Too Many Names

{
  "status": "failed",
  "error": {
    "error_code": 611,
    "message": "The request must not contain more than 1000 Name(s)."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 611,
      "ErrorMessage": "The request must not contain more than 1000 Name(s)."
    }
  }
}

ZIP/Postal Code Lookup API

Get Available Credits

GET /ziplookup/getcredits/{api_key}/{api_secret}

Path variables

NameTypeDescriptionExample
api_keystring requiredAPI KeyYOUR_API_KEY
api_secretstring requiredAPI SecretYOUR_API_SECRET

Responses

Request

cURL (Bash)jQueryPHP (cURL)Node.jsPythonGoC#
curl "https://app.realvalidito.com/ziplookup/getcredits/YOUR_API_KEY/YOUR_API_SECRET"
// Run this in an internal tool or behind a login only: never put your API secret into a public web page.
var apiKey = 'YOUR_API_KEY';
var apiSecret = 'YOUR_API_SECRET';

$.ajax({
  url: 'https://app.realvalidito.com/ziplookup/getcredits/' + encodeURIComponent(apiKey) + '/' + encodeURIComponent(apiSecret),
  method: 'GET',
  dataType: 'json',
  success: function (data) {
    console.log(data);
  },
  error: function (xhr) {
    console.error(xhr.status, xhr.responseText);
  }
});
<?php
$apiKey = 'YOUR_API_KEY';
$apiSecret = 'YOUR_API_SECRET';

$ch = curl_init('https://app.realvalidito.com/ziplookup/getcredits/' . rawurlencode($apiKey) . '/' . rawurlencode($apiSecret));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$response = curl_exec($ch);
if ($response === false) {
    die('Request failed: ' . curl_error($ch));
}
curl_close($ch);

echo json_encode(json_decode($response, true), JSON_PRETTY_PRINT);
// Node.js 18+ (built-in fetch)
const apiKey = 'YOUR_API_KEY';
const apiSecret = 'YOUR_API_SECRET';

async function main() {
  const url = 'https://app.realvalidito.com/ziplookup/getcredits/' + encodeURIComponent(apiKey) + '/' + encodeURIComponent(apiSecret);
  const response = await fetch(url);
  const data = await response.json();
  console.log(JSON.stringify(data, null, 2));
}

main().catch(console.error);
import json
from urllib.parse import quote

import requests

api_key = "YOUR_API_KEY"
api_secret = "YOUR_API_SECRET"

url = f"https://app.realvalidito.com/ziplookup/getcredits/{quote(api_key)}/{quote(api_secret)}"
response = requests.get(url, timeout=30)
response.raise_for_status()
print(json.dumps(response.json(), indent=2))
package main

import (
	"encoding/json"
	"fmt"
	"io"
	"net/http"
	"net/url"
	"time"
)

func main() {
	apiKey := "YOUR_API_KEY"
	apiSecret := "YOUR_API_SECRET"
	endpoint := "https://app.realvalidito.com/ziplookup/getcredits/" + url.PathEscape(apiKey) + "/" + url.PathEscape(apiSecret)

	client := &http.Client{Timeout: 30 * time.Second}
	resp, err := client.Get(endpoint)
	if err != nil {
		fmt.Println("request failed:", err)
		return
	}
	defer resp.Body.Close()

	body, err := io.ReadAll(resp.Body)
	if err != nil {
		fmt.Println("read failed:", err)
		return
	}
	var result map[string]any
	if err := json.Unmarshal(body, &result); err != nil {
		fmt.Println("invalid JSON:", err)
		return
	}
	pretty, _ := json.MarshalIndent(result, "", "  ")
	fmt.Println(string(pretty))
}
// .NET 6+ console app
using System;
using System.Net.Http;
using System.Text.Json;

var apiKey = "YOUR_API_KEY";
var apiSecret = "YOUR_API_SECRET";

using var client = new HttpClient { Timeout = TimeSpan.FromSeconds(30) };
var url = "https://app.realvalidito.com/ziplookup/getcredits/" + Uri.EscapeDataString(apiKey) + "/" + Uri.EscapeDataString(apiSecret);
var body = await client.GetStringAsync(url);

using var doc = JsonDocument.Parse(body);
Console.WriteLine(JsonSerializer.Serialize(doc.RootElement, new JsonSerializerOptions { WriteIndented = true }));

Response 200 OK

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

Unauthorized

{
  "status": "failed",
  "error": {
    "error_code": 600,
    "message": "Invalid API Key or API Secret."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 600,
      "ErrorMessage": "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."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 614,
      "ErrorMessage": "The request could not be authenticated. Only HTTP GET method is allowed."
    }
  }
}

ZIP Code Lookup

POST /ziplookup/validate

Request body

NameTypeDescriptionExample
api_keystring requiredAPI KeyYOUR_API_KEY
api_secretstring requiredAPI SecretYOUR_API_SECRET
zipcodesarray requiredZIP/postal code(s) to validate
Array of ZIP/postal codes of the USA / Canada. ZIP+4 (12345-6789) and Canadian codes with or without the space are accepted.
A maximum of 1,000 ZIP/postal codes per request.
['12345', 'Y1A 6V6', '99835', '49032', '00000', '35004','11111']

Responses

Request

cURL (Bash)jQueryPHP (cURL)Node.jsPythonGoC#
curl -X POST "https://app.realvalidito.com/ziplookup/validate" \
  -H "Content-Type: application/json" \
  -d '{
    "api_key": "YOUR_API_KEY",
    "api_secret": "YOUR_API_SECRET",
    "zipcodes": ["10001", "M5V 2T6"]
  }'
// Run this in an internal tool or behind a login only: never put your API secret into a public web page.
$.ajax({
  url: 'https://app.realvalidito.com/ziplookup/validate',
  method: 'POST',
  contentType: 'application/json',
  dataType: 'json',
  data: JSON.stringify({
    api_key: 'YOUR_API_KEY',
    api_secret: 'YOUR_API_SECRET',
    zipcodes: ['10001', 'M5V 2T6']
  }),
  success: function (data) {
    console.log(data);
  },
  error: function (xhr) {
    console.error(xhr.status, xhr.responseText);
  }
});
<?php
$payload = json_encode([
    'api_key'    => 'YOUR_API_KEY',
    'api_secret' => 'YOUR_API_SECRET',
    'zipcodes' => ['10001', 'M5V 2T6'],
]);

$ch = curl_init('https://app.realvalidito.com/ziplookup/validate');
curl_setopt_array($ch, [
    CURLOPT_POST           => true,
    CURLOPT_POSTFIELDS     => $payload,
    CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT        => 30,
]);
$response = curl_exec($ch);
if ($response === false) {
    die('Request failed: ' . curl_error($ch));
}
curl_close($ch);

echo json_encode(json_decode($response, true), JSON_PRETTY_PRINT);
// Node.js 18+ (built-in fetch)
async function main() {
  const response = await fetch('https://app.realvalidito.com/ziplookup/validate', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      api_key: 'YOUR_API_KEY',
      api_secret: 'YOUR_API_SECRET',
      zipcodes: ['10001', 'M5V 2T6']
    })
  });
  const data = await response.json();
  console.log(JSON.stringify(data, null, 2));
}

main().catch(console.error);
import json

import requests

payload = {
    "api_key": "YOUR_API_KEY",
    "api_secret": "YOUR_API_SECRET",
    "zipcodes": ["10001", "M5V 2T6"],
}

response = requests.post("https://app.realvalidito.com/ziplookup/validate", json=payload, timeout=30)
response.raise_for_status()
print(json.dumps(response.json(), indent=2))
package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"io"
	"net/http"
	"time"
)

func main() {
	payload, err := json.Marshal(map[string]any{
		"api_key":    "YOUR_API_KEY",
		"api_secret": "YOUR_API_SECRET",
		"zipcodes": []string{"10001", "M5V 2T6"},
	})
	if err != nil {
		fmt.Println(err)
		return
	}

	client := &http.Client{Timeout: 30 * time.Second}
	resp, err := client.Post("https://app.realvalidito.com/ziplookup/validate", "application/json", bytes.NewReader(payload))
	if err != nil {
		fmt.Println("request failed:", err)
		return
	}
	defer resp.Body.Close()

	body, err := io.ReadAll(resp.Body)
	if err != nil {
		fmt.Println("read failed:", err)
		return
	}
	var result map[string]any
	if err := json.Unmarshal(body, &result); err != nil {
		fmt.Println("invalid JSON:", err)
		return
	}
	pretty, _ := json.MarshalIndent(result, "", "  ")
	fmt.Println(string(pretty))
}
// .NET 6+ console app
using System;
using System.Net.Http;
using System.Net.Http.Json;
using System.Text.Json;

using var client = new HttpClient { Timeout = TimeSpan.FromSeconds(30) };
var payload = new
{
    api_key = "YOUR_API_KEY",
    api_secret = "YOUR_API_SECRET",
    zipcodes = new[] { "10001", "M5V 2T6" }
};

var response = await client.PostAsJsonAsync("https://app.realvalidito.com/ziplookup/validate", payload);
var body = await response.Content.ReadAsStringAsync();

using var doc = JsonDocument.Parse(body);
Console.WriteLine(JsonSerializer.Serialize(doc.RootElement, new JsonSerializerOptions { WriteIndented = true }));

Response 200 OK

SuccessFailed
{
  "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": "Mountain Standard Time (MST)",
        "type": "",
        "area_codes": "867",
        "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."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 600,
      "ErrorMessage": "Invalid API Key or API Secret."
    }
  }
}

{
  "status": "failed",
  "error": {
    "error_code": 601,
    "message": "API Key and API Secret are required."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 601,
      "ErrorMessage": "API Key and API Secret are required."
    }
  }
}

{
  "status": "failed",
  "error": {
    "error_code": 602,
    "message": "The request could not be authenticated. Only HTTP POST method is allowed."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 602,
      "ErrorMessage": "The request could not be authenticated. Only HTTP POST method is allowed."
    }
  }
}

Payment Required

{
  "status": "failed",
  "error": {
    "error_code": 603,
    "message": "You do not have enough credits to process this request."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 603,
      "ErrorMessage": "You do not have enough credits to process this request."
    }
  }
}

{
  "status": "failed",
  "error": {
    "error_code": 604,
    "message": "You have no credits remaining to process this request."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 604,
      "ErrorMessage": "You have no credits remaining to process this request."
    }
  }
}

Inactive Account

{
  "status": "failed",
  "error": {
    "error_code": 605,
    "message": "Your account is not activated to use this service."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 605,
      "ErrorMessage": "Your account is not activated to use this service."
    }
  }
}

Unknown Error

{
  "status": "failed",
  "error": {
    "error_code": 607,
    "message": "An internal error occurred. Please try again later."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 607,
      "ErrorMessage": "An internal error occurred. Please try again later."
    }
  }
}

Zip Code(s) Required

{
  "status": "failed",
  "error": {
    "error_code": 612,
    "message": "The request doesn't contain Zip/Postal Code(s)."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 612,
      "ErrorMessage": "The request doesn't contain Zip/Postal Code(s)."
    }
  }
}

Too Many Zip Codes

{
  "status": "failed",
  "error": {
    "error_code": 613,
    "message": "The request must not contain more than 1000 Zip/Postal Code(s)."
  },
  "Response": {
    "Status": "Failed",
    "Errors": {
      "ErrorCode": 613,
      "ErrorMessage": "The request must not contain more than 1000 Zip/Postal Code(s)."
    }
  }
}

HTTP Response Codes

200Successful requests will receive a 200 response code
500Internal Server Error
503Service unavailable
524Request Timeout

Error Codes

RealValidito Error Codes

600Invalid API Key or API Secret.
601API Key and API Secret are required.
602The request could not be authenticated. Only HTTP POST method is allowed.
603You do not have enough credits to process this request. (Phone + DNC Lookup API: not enough Phone or DNC credits.)
604You have no credits remaining to process this request. (Phone + DNC Lookup API: no DNC credits left.)
605Your account is not activated to use this service. / Invalid API credentials or service not activated for your account.
607An internal error occurred. Please try again later.
608The request doesn't contain Phone Number(s).
609The request must not contain more than 1000 Phone Number(s).
610The request doesn't contain Name(s).
611The request must not contain more than 1000 Name(s).
612The request doesn't contain Zip/Postal Code(s).
613The request must not contain more than 1000 Zip/Postal Code(s).
614The request could not be authenticated. Only HTTP GET method is allowed.
616Requests from this IP address are not allowed for this API key. Add the address under API Credentials > Allowed IP addresses.

Related Resources

Get Free API Credits — No Credit Card Required