{"id":9346,"date":"2023-06-05T11:22:16","date_gmt":"2023-06-05T18:22:16","guid":{"rendered":"https:\/\/www.serviceobjects.com\/docs\/?page_id=9346"},"modified":"2024-03-29T08:52:30","modified_gmt":"2024-03-29T15:52:30","slug":"pvi-rest","status":"publish","type":"page","link":"https:\/\/test.serviceobjects.com\/docs\/dots-phone-validation-international\/pvi-code-snippets-and-sample-code\/pvi-rest\/","title":{"rendered":"PVI &#8211; REST"},"content":{"rendered":"\n<div class=\"wp-block-create-block-tabs\"><ul class=\"tab-labels\" role=\"tablist\" aria-label=\"tabbed content\"><li class=\"tab-label active\" role=\"tab\" aria-selected=\"true\" aria-controls=\"C#\" tabindex=\"0\">C#<\/li><li class=\"tab-label\" role=\"tab\" aria-selected=\"false\" aria-controls=\"C# Response Object\" tabindex=\"0\">C# Response Object<\/li><li class=\"tab-label\" role=\"tab\" aria-selected=\"false\" aria-controls=\"Java\" tabindex=\"0\">Java<\/li><li class=\"tab-label\" role=\"tab\" aria-selected=\"false\" aria-controls=\"Java Response Object\" tabindex=\"0\">Java Response Object<\/li><\/ul><div class=\"tab-content\">\n<div class=\"wp-block-create-block-tab tab-panel\" role=\"tabpanel\" tabindex=\"0\">\n<p><strong>Phone Validation International C# Rest Code Snippet<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public static PVIResponse GetPhoneDetails(string Phone, string Country, string Options, string AuthID)\n{\n\n\t\/\/UrlEncode the values that will be sent to the API so that special characters don't break the url like \"#\" (Which can often be found in addresses where units are involved.)\n\tstring Phone = HttpUtility.UrlEncode(Phone);\n\tstring Country = HttpUtility.UrlEncode(Country);\n\tstring Options = HttpUtility.UrlEncode(Options);\n\tstring AuthID = HttpUtility.UrlEncode(AuthID);\n\t\n\n\t\/\/Not using try\/catch here because and errors here should bubble up to the calling code and will allow them to see the details of the thrown exception.\n\tTask&lt;PVIResponse> Response = null;\n\tstring Message = \"\";\n\tstring parameters = $\"Phone={Phone}&amp;Country={Country}&amp;Options={Options}&amp;AuthID={AuthID}\";\n\n\tResponse = HttpGet($\"https:\/\/sws.serviceobjects.com\/PVI\/GetPhoneDetails?{parameters}\");\n\tif (Response == null) \/\/Failover condition, typecode 3 is Service Objects Fatal\n\t{\n\t\tMessage += \"Response is null or API Error.TypeCode 3 Error, executing failover to swsbackup.serviceobjects.com;\";\n\t\tResponse = HttpGet($\"https:\/\/swsbackup.serviceobjects.com\/PVI\/GetPhoneDetails?{parameters}\");\n\t\tif (Response == null) \/\/No Response returned from service, throw new exception.\n\t\t{\n\t\t\tMessage += \"Response is null on failover API call to swsbackup.serviceobjects.com; Check network access to Service Objects endpoints.\";\n\t\t\tthrow new Exception(Message);\n\t\t}\n\t\telse \/\/There is a response so return it.  There could be an API error but that will be in the Response.Error object and the end user will see it.\n\t\t{\n\t\t\tif (Response.Result == null)\n\t\t\t{\n\t\t\t\tMessage += \"Response is null on failover API call to swsbackup.serviceobjects.com; Check network access to Service Objects endpoints.\";\n\t\t\t\tthrow new Exception(Message);\n\n\t\t\t}\n\t\t\tif (Response.Result.ProblemDetails != null &amp;&amp; Response.Result.ProblemDetails.Status == \"500\")\n\t\t\t{\n\t\t\t\tMessage += \"Response was 500 on failover API call to swsbackup.serviceobjects.com; Check network access to Service Objects endpoints.\";\n\t\t\t\tthrow new Exception(Message);\n\t\t\t}\n\n\t\t\treturn Response.Result;\n\n\t\t}\n\t}\n\telse \/\/There is a response so return it.  There could be an API error but that will be in the Response.Error object and the end user will see it.\n\t{\n\t\tif (Response.Result == null || (Response.Result.ProblemDetails != null &amp;&amp; Response.Result.ProblemDetails.Status == \"500\"))\n\t\t{\n\t\t\tMessage += \"Response is null or API Error.TypeCode 3 Error, executing failover to swsbackup.serviceobjects.com;\";\n\t\t\tResponse = HttpGet($\"https:\/\/swsbackup.serviceobjects.com\/PVI\/GetPhoneDetails?{parameters}\");\n\t\t\tif (Response == null) \/\/No Response returned from service, throw new exception.\n\t\t\t{\n\t\t\t\tMessage += \"Response is null on failover API call to swsbackup.serviceobjects.com; Check network access to Service Objects endpoints.\";\n\t\t\t\tthrow new Exception(Message);\n\t\t\t}\n\t\t\telse \/\/There is a response so return it.  There could be an API error but that will be in the Response.Error object and the end user will see it.\n\t\t\t{\n\t\t\t\tif (Response.Result == null)\n\t\t\t\t{\n\t\t\t\t\tMessage += \"Response is null on failover API call to swsbackup.serviceobjects.com; Check network access to Service Objects endpoints.\";\n\t\t\t\t\tthrow new Exception(Message);\n\t\t\t\t}\n\t\t\t\tif (Response.Result.ProblemDetails != null &amp;&amp; Response.Result.ProblemDetails.Status == \"500\")\n\t\t\t\t{\n\t\t\t\t\tMessage += \"Response was 500 on failover API call to swsbackup.serviceobjects.com; Check network access to Service Objects endpoints.\";\n\t\t\t\t\tthrow new Exception(Message);\n\t\t\t\t}\n\t\t\t\treturn Response.Result;\n\t\t\t}\n\t\t}\n\t\treturn Response.Result;\n\t}\n}\n\nprivate static async Task&lt;PVIResponse> HttpGet(string requestUrl)\n{\n\tServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;\n\tServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true;\n\tHttpClient client = new HttpClient();\n\tvar task = Task.Run(() => client.GetAsync(requestUrl));\n\ttask.Wait();\n\tHttpResponseMessage response = task.Result;\n\tHttpContent content = response.Content;\n\tstring result = content.ReadAsStringAsync().Result;\n\tPVIResponse pVI = new PVIResponse();\n\tif (response.StatusCode == HttpStatusCode.OK)\n\t{\n\t\tpVI.PhoneDetailsResponse = JsonConvert.DeserializeObject&lt;PhoneDetailsResponse>(result);\n\t\treturn pVI;\n\t}\n\telse\n\t{\n\t\tpVI.ProblemDetails = JsonConvert.DeserializeObject&lt;ProblemDetails>(result);\n\t\treturn pVI;\n\t}\n}<\/pre>\n<\/div>\n\n\n\n<div class=\"wp-block-create-block-tab tab-panel\" role=\"tabpanel\" tabindex=\"0\">\n<p><strong><strong>Phone Validation International<\/strong> C# Response Object<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">using System.Collections.Generic;\nusing Newtonsoft.Json;\n\n\nnamespace DOTSPhoneValidationInternational\n{\n    public class PVIResponse\n    {\n        public PhoneDetails PhoneDetailsResponse { get; set; }\n        public Problem ProblemDetails { get; set; }\n    }\n\n    public class PhoneDetails\n    {\n        [JsonProperty(\"score\")]\n        public string Score { get; set; }\n\n        [JsonProperty(\"phoneIn\")]\n        public string PhoneIn { get; set; }\n\n        [JsonProperty(\"countryCode\")]\n        public int? CountryCode { get; set; }\n\n        [JsonProperty(\"formatNational\")]\n        public string FormatNational { get; set; }\n\n        [JsonProperty(\"formatInternational\")]\n        public string FormatInternational { get; set; }\n\n        [JsonProperty(\"formatE164\")]\n        public string FormatE164 { get; set; }\n\n        [JsonProperty(\"extension\")]\n        public string Extension { get; set; }\n\n        [JsonProperty(\"locality\")]\n        public string Locality { get; set; }\n\n        [JsonProperty(\"adminArea\")]\n        public string AdminArea { get; set; }\n\n        [JsonProperty(\"adminAreaAbbr\")]\n        public string AdminAreaAbbr { get; set; }\n\n        [JsonProperty(\"country\")]\n        public string Country { get; set; }\n\n        [JsonProperty(\"countryISO2\")]\n        public string CountryISO2 { get; set; }\n\n        [JsonProperty(\"countryISO3\")]\n        public string CountryISO3 { get; set; }\n\n        [JsonProperty(\"latitude\")]\n        public double? Latitude { get; set; }\n\n        [JsonProperty(\"longitude\")]\n        public double? Longitude { get; set; }\n\n        [JsonProperty(\"latLongMatchLevel\")]\n        public string LatLongMatchLevel { get; set; }\n\n        [JsonProperty(\"timeZones\")]\n        public List&lt;TimeZone> TimeZones { get; set; }\n\n        [JsonProperty(\"lineType\")]\n        public string LineType { get; set; }\n\n        [JsonProperty(\"smsAddress\")]\n        public string SmsAddress { get; set; }\n\n        [JsonProperty(\"validPhone\")]\n        public bool? ValidPhone { get; set; }\n\n        [JsonProperty(\"validPhoneLength\")]\n        public bool? ValidPhoneLength { get; set; }\n\n        [JsonProperty(\"notes\")]\n        public List&lt;string> Notes { get; set; }\n\n        [JsonProperty(\"warnings\")]\n        public List&lt;string> Warnings { get; set; }\n\n        [JsonProperty(\"currentProvider\")]\n        public ServiceProvider CurrentProvider { get; set; }\n\n        [JsonProperty(\"previousProvider\")]\n        public ServiceProvider PreviousProvider { get; set; }\n\n        [JsonProperty(\"originalProvider\")]\n        public ServiceProvider OriginalProvider { get; set; }\n\n        [JsonProperty(\"lastPortedDate\")]\n        public string LastPortedDate { get; set; }\n    }\n\n    public class Problem\n    {\n        public string Type { get; set; }\n        public string Title { get; set; }\n        public string Status { get; set; }\n        public string Detail { get; set; }\n    }\n\n    public class TimeZone\n    {\n        public string ZoneName { get; set; }\n        public string ZoneAbbr { get; set; }\n        public string CountryISO3 { get; set; }\n        public string UtcOffset { get; set; }\n    }\n\n    public class ServiceProvider\n    {\n        public string ProviderID { get; set; }\n        public string ProviderName { get; set; }\n        public string CountryISO3 { get; set; }\n    }\n}<\/pre>\n<\/div>\n\n\n\n<div class=\"wp-block-create-block-tab tab-panel\" role=\"tabpanel\" tabindex=\"0\">\n<p><strong>Phone Validation International Java Rest Code Snippet<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">String phone = \"\";\nString country = \"\";\nString options = \"\";\n\nString mainUrl = \"https:\/\/sws.serviceobjects.com\/PVI\/GetPhoneDetails?\";\nString backupUrl = \"https:\/\/swsbackup.serviceobjects.com\/PVI\/GetPhoneDetails?\";\nString trialUrl = \"https:\/\/trial.serviceobjects.com\/PVI\/GetPhoneDetails?\";\n\ntry {\n\t\/\/Pull in method arguements and encode the values for the call to the service\n\tphone = URLEncoder.encode(Phone, \"UTF-8\").replaceAll(\"\\\\+\", \"%20\");\n\tcountry = URLEncoder.encode(Country, \"UTF-8\").replaceAll(\"\\\\+\", \"%20\");\n\toptions = URLEncoder.encode(Options, \"UTF-8\").replaceAll(\"\\\\+\", \"%20\");\n\n} catch (UnsupportedEncodingException e) {\n\n}\n\nString QueryStringParameters = \"Phone=\" + phone + \"&amp;Country=\" + country + \"&amp;Options=\" + options + \"&amp;AuthID=\" + AuthID;\nString Message = \"\";\nStringBuilder RawResponse = new StringBuilder();\nPVI_Response.PD_Response Response = null;\n\nRawResponse = HttpGet(mainUrl + QueryStringParameters);\nResponse = (PVI_Response.PD_Response)(ProcessResponse(RawResponse, \"PD_Response\"));\nif (Response == null) \/\/Failover condition, typecode 3 is Service Objects Fatal\n{\n\tMessage += \"Response is null or API Error.TypeCode 3 Error, executing failover to swsbackup.serviceobjects.com;\";\n\tRawResponse = HttpGet(backupUrl + QueryStringParameters);\n\tResponse = (PVI_Response.PD_Response)(ProcessResponse(RawResponse, \"PD_Response\"));\n\tif (Response == null) \/\/No Response returned from service, throw new exception.\n\t{\n\t\tMessage += \"Response is null on failover API call to swsbackup.serviceobjects.com; Check network access to Service Objects endpoints.\";\n\t\tthrow new Exception(Message);\n\t}\n\telse \/\/There is a response so return it.  There could be an API error but that will be in the Response.Error object and the end user will see it.\n\t{\n\t\tif(Response.StatusDescription == null) {\n\t\t\tResponse.setStatusDescription(\"200\");\n\t\t}\n\t\treturn Response;\n\t}\n}\nelse {\n\tif(Response.StatusDescription == null) {\n\t\tResponse.setStatusDescription(\"200\");\n\t}\n\treturn Response;\n}\n\n\/**\n\t* Returns a BestMatchesResponse object based on the input JSON string\n\t* @param RawResponse Is a JSON string.\n\t* @param ResponseType Is the string type of response object to cast to.\n\t* @return Object Is the strongly typed response object for this service.\n*\/\nprivate Object ProcessResponse(StringBuilder RawResponse, String ResponseType) throws Exception {\n\tGson gson = new Gson();\n\tObject result = null;\n\tswitch(ResponseType) {\n\t\tcase \"PD_Response\":\n\t\t\tresult = gson.fromJson(RawResponse.toString(), PVI_Response.PD_Response.class);\n\t\t\tif(result == null)\n\t\t\t{ \n\t\t\t\tthrow new Exception(\"ERROR: trying to get PVI_Response\");\n\t\t\t}\n\t\t\treturn result;\n\t\tdefault:\n\t\t\tthrow new Exception(\"ERROR: trying to get PVI_Response\");\n\t}\n}\n\n\/**\n   * Makes the call to an endpoint and returns a string representation of the response from the service.\n   * @param endpoint Is the URL API endpoint of the service operation.\n   * @return StringBuilder Is the string representation of the response from the service.\n*\/\nprivate StringBuilder HttpGet(String endpoint) {\n\t\n\tint timeout = 5000;\n\tURL url = null;\n\tHttpsURLConnection conn = null;\n\tStringBuilder sb = new StringBuilder();\n\ttry {\n\t\t\n\t\turl = new URL(endpoint);\n\n\t\t\/* System.out.println(url); *\/\n\n\t\tconn = (HttpsURLConnection) url.openConnection();\n\n\t\tconn.setConnectTimeout(timeout);\n\t\tconn.setRequestMethod(\"GET\");\n\t\tconn.setRequestProperty(\"Accept\", \"application\/json\");\n\n\t\tif (conn.getResponseCode() != 200) {\n\t\t\tthrow new RuntimeException(\"Failed : HTTP error code : \" + conn.getResponseCode());\n\t\t}\n\n\t\tBufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream())));\n\t\t\n\t\tString output;\n\t\t\/\/ System.out.println(\"info from the server \\n\");\n\t\twhile ((output = br.readLine()) != null) {\n\t\t\tsb.append(output);\n\t\t\t\/\/System.out.println(output);\n\t\t}\n\t\treturn sb;\n\t} catch (Exception ex) {\n\n\t\tSystem.out.println(ex.getMessage());\n\t\tex.printStackTrace();\n\t}\n\tfinally {\n\t\tif (conn != null)\n\t\t\tconn.disconnect();\n\t}\n\treturn sb;\n}<\/pre>\n<\/div>\n\n\n\n<div class=\"wp-block-create-block-tab tab-panel\" role=\"tabpanel\" tabindex=\"0\">\n<p><strong><strong>Phone Validation International<\/strong> Java Response Object<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import java.util.List;\nimport com.google.gson.Gson;\nimport com.google.gson.GsonBuilder;\nimport com.google.gson.annotations.SerializedName;\n\npublic class PVI_Response {\n\t\n\tpublic PVI_Response() {}\n\n\tpublic class PD_Response {\n\t\t\n\t\t\/**\n\t\t   * PD_Response constructor\n\t\t*\/\n\t\tpublic PD_Response() {}\n\n\t\t@SerializedName(\"score\")\n\t\tpublic String score;\n\t\t\n\t\t@SerializedName(\"phoneIn\")\n\t\tpublic String phoneIn;\n\t\t\n\t\t@SerializedName(\"countryCode\")\n\t    public Integer countryCode;\n\t\t\n\t\t@SerializedName(\"formatNational\")\n\t    public String formatNational;\n\t\t\n\t\t@SerializedName(\"formatInternational\")\n\t    public String formatInternational;\n\t\t\n\t\t@SerializedName(\"formatE164\")\n\t\tpublic String formatE164;\n\t\t\n\t\t@SerializedName(\"extension\")\n\t\tpublic String extension;\n\t\t\n\t\t@SerializedName(\"locality\")\n\t    public String locality;\n\t\t\n\t\t@SerializedName(\"adminArea\")\n\t    public String adminArea;\n\t\t\n\t\t@SerializedName(\"adminAreaAbbr\")\n\t    public String adminAreaAbbr;\n\t\t\n\t\t@SerializedName(\"country\")\n\t    public String country;\n\t\t\n\t\t@SerializedName(\"countryISO2\")\n\t    public String countryISO2;\n\t\t\n\t\t@SerializedName(\"countryISO3\")\n\t    public String countryISO3;\n\t\t\n\t\t@SerializedName(\"latitude\")\n\t    public Double latitude;\n\t\t\n\t\t@SerializedName(\"longitude\")\n\t    public Double longitude;\n\t\t\n\t\t@SerializedName(\"latLongMatchLevel\")\n\t    public String latLongMatchLevel;\n\t\t\n\t\t@SerializedName(\"timeZones\")\n\t    public List&lt;TimeZone> timeZones;\n\t\t\n\t\t@SerializedName(\"lineType\")\n\t    public String lineType;\n\t\t\n\t\t@SerializedName(\"smsAddress\")\n\t    public String smsAddress;\n\t\t\n\t\t@SerializedName(\"validPhone\")\n\t    public Boolean validPhone;\n\t\t\n\t\t@SerializedName(\"validPhoneLength\")\n\t    public Boolean validPhoneLength;\n\t\t\n\t\t@SerializedName(\"notes\")\n\t    public List&lt;String> notes;\n\t\t\n\t\t@SerializedName(\"warnings\")\n\t    public List&lt;String> warnings;\n\t\t\n\t\t@SerializedName(\"currentProvider\")\n\t    public PhoneServiceProvider currentProvider;\n\t\t\n\t\t@SerializedName(\"previousProvider\")\n\t    public PhoneServiceProvider previousProvider;\n\t\t\n\t\t@SerializedName(\"originalProvider\")\n\t    public PhoneServiceProvider originalProvider;\n\t\t\n\t\t@SerializedName(\"lastPortedDate\")\n\t    public java.util.Date lastPortedDate;\n\t\t\n\t\t@SerializedName(\"type\")\n        public String type;\n\n\t\t@SerializedName(\"title\")\n        public String title;\n\n\t\t@SerializedName(\"status\")\n        public String StatusDescription;\n\n\t\t@SerializedName(\"detail\")\n        public String detail;\n\t\t\n\t\t\/\/ Setter\n\t\tpublic void setStatusDescription(String NewStatusDescription) {\n\t\t  this.StatusDescription = NewStatusDescription;\n\t\t}\n\t\t\n\t    \/\/ Getters and Setters go here\n\n\t    \/\/ Nested classes\n\t    public class TimeZone {\n\t\t\tpublic TimeZone() {}\n\t        public String zoneName;\n\t        public String zoneAbbr;\n\t        public String countryISO3;\n\t        public String utcOffset;\n\n\t        \/\/ Getters and Setters go here\n\t    }\n\n\t    public class PhoneServiceProvider {\n\t\t\tpublic PhoneServiceProvider() {}\n\t        public String providerID;\n\t        public String providerName;\n\t        public String countryISO3;\n\n\t        \/\/ Getters and Setters go here\n\t    }\n\n\t    public class ProblemDetailsResponse {\n\t    \t\n\t\t\tpublic ProblemDetailsResponse() {}\n\t    \t\n\t\t\t@SerializedName(\"type\")\n\t        public String type;\n\t\t\t\n\t\t\t@SerializedName(\"title\")\n\t        public String title;\n\t\t\t\n\t\t\t@SerializedName(\"status\")\n\t        public Integer status;\n\t        \n\t\t\t@SerializedName(\"detail\")\n\t        public String detail;\n\n\t    }\n\t    \n\t\t\/**Override of toString for end users to get quick output.*\/\n\t\t@Override\n\t\tpublic String toString() {\n\t\t\tGson gson = new GsonBuilder().serializeNulls().create(); \n\t        return gson.toJson(this);\n\t    }\n\t}\n}\n\n<\/pre>\n<\/div>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":20,"featured_media":0,"parent":9344,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-9346","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>PVI - REST<\/title>\n<meta name=\"description\" content=\"C#C# Response ObjectJavaJava Response Object Phone Validation International C# Rest Code Snippet public static PVIResponse GetPhoneDetails(string Phone,\" \/>\n<meta name=\"robots\" content=\"noindex, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PVI - REST\" \/>\n<meta property=\"og:description\" content=\"C#C# Response ObjectJavaJava Response Object Phone Validation International C# Rest Code Snippet public static PVIResponse GetPhoneDetails(string Phone,\" \/>\n<meta property=\"og:url\" content=\"https:\/\/test.serviceobjects.com\/docs\/dots-phone-validation-international\/pvi-code-snippets-and-sample-code\/pvi-rest\/\" \/>\n<meta property=\"og:site_name\" content=\"Service Objects | Contact, Phone, Email Verification | Data Quality Services\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-29T15:52:30+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/test.serviceobjects.com\/docs\/dots-phone-validation-international\/pvi-code-snippets-and-sample-code\/pvi-rest\/\",\"url\":\"https:\/\/test.serviceobjects.com\/docs\/dots-phone-validation-international\/pvi-code-snippets-and-sample-code\/pvi-rest\/\",\"name\":\"PVI - REST\",\"isPartOf\":{\"@id\":\"https:\/\/test.serviceobjects.com\/docs\/#website\"},\"datePublished\":\"2023-06-05T18:22:16+00:00\",\"dateModified\":\"2024-03-29T15:52:30+00:00\",\"description\":\"C#C# Response ObjectJavaJava Response Object Phone Validation International C# Rest Code Snippet public static PVIResponse GetPhoneDetails(string Phone,\",\"breadcrumb\":{\"@id\":\"https:\/\/test.serviceobjects.com\/docs\/dots-phone-validation-international\/pvi-code-snippets-and-sample-code\/pvi-rest\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/test.serviceobjects.com\/docs\/dots-phone-validation-international\/pvi-code-snippets-and-sample-code\/pvi-rest\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/test.serviceobjects.com\/docs\/dots-phone-validation-international\/pvi-code-snippets-and-sample-code\/pvi-rest\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/test.serviceobjects.com\/docs\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"DOTS Phone Validation International\",\"item\":\"https:\/\/test.serviceobjects.com\/docs\/dots-phone-validation-international\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"PVI &#8211; Code Snippets and Sample Code\",\"item\":\"https:\/\/test.serviceobjects.com\/docs\/dots-phone-validation-international\/pvi-code-snippets-and-sample-code\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"PVI &#8211; REST\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/test.serviceobjects.com\/docs\/#website\",\"url\":\"https:\/\/test.serviceobjects.com\/docs\/\",\"name\":\"Service Objects | Contact, Phone, Email Verification | Data Quality Services\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/test.serviceobjects.com\/docs\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/test.serviceobjects.com\/docs\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/test.serviceobjects.com\/docs\/#organization\",\"name\":\"Service Objects | Contact, Phone, Email Verification | Data Quality Services\",\"url\":\"https:\/\/test.serviceobjects.com\/docs\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/test.serviceobjects.com\/docs\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/test.serviceobjects.com\/docs\/wp-content\/uploads\/2022\/08\/SO-logo-2560px-transparent.png\",\"contentUrl\":\"https:\/\/test.serviceobjects.com\/docs\/wp-content\/uploads\/2022\/08\/SO-logo-2560px-transparent.png\",\"width\":2560,\"height\":1440,\"caption\":\"Service Objects | Contact, Phone, Email Verification | Data Quality Services\"},\"image\":{\"@id\":\"https:\/\/test.serviceobjects.com\/docs\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"PVI - REST","description":"C#C# Response ObjectJavaJava Response Object Phone Validation International C# Rest Code Snippet public static PVIResponse GetPhoneDetails(string Phone,","robots":{"index":"noindex","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"en_US","og_type":"article","og_title":"PVI - REST","og_description":"C#C# Response ObjectJavaJava Response Object Phone Validation International C# Rest Code Snippet public static PVIResponse GetPhoneDetails(string Phone,","og_url":"https:\/\/test.serviceobjects.com\/docs\/dots-phone-validation-international\/pvi-code-snippets-and-sample-code\/pvi-rest\/","og_site_name":"Service Objects | Contact, Phone, Email Verification | Data Quality Services","article_modified_time":"2024-03-29T15:52:30+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/test.serviceobjects.com\/docs\/dots-phone-validation-international\/pvi-code-snippets-and-sample-code\/pvi-rest\/","url":"https:\/\/test.serviceobjects.com\/docs\/dots-phone-validation-international\/pvi-code-snippets-and-sample-code\/pvi-rest\/","name":"PVI - REST","isPartOf":{"@id":"https:\/\/test.serviceobjects.com\/docs\/#website"},"datePublished":"2023-06-05T18:22:16+00:00","dateModified":"2024-03-29T15:52:30+00:00","description":"C#C# Response ObjectJavaJava Response Object Phone Validation International C# Rest Code Snippet public static PVIResponse GetPhoneDetails(string Phone,","breadcrumb":{"@id":"https:\/\/test.serviceobjects.com\/docs\/dots-phone-validation-international\/pvi-code-snippets-and-sample-code\/pvi-rest\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/test.serviceobjects.com\/docs\/dots-phone-validation-international\/pvi-code-snippets-and-sample-code\/pvi-rest\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/test.serviceobjects.com\/docs\/dots-phone-validation-international\/pvi-code-snippets-and-sample-code\/pvi-rest\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/test.serviceobjects.com\/docs\/"},{"@type":"ListItem","position":2,"name":"DOTS Phone Validation International","item":"https:\/\/test.serviceobjects.com\/docs\/dots-phone-validation-international\/"},{"@type":"ListItem","position":3,"name":"PVI &#8211; Code Snippets and Sample Code","item":"https:\/\/test.serviceobjects.com\/docs\/dots-phone-validation-international\/pvi-code-snippets-and-sample-code\/"},{"@type":"ListItem","position":4,"name":"PVI &#8211; REST"}]},{"@type":"WebSite","@id":"https:\/\/test.serviceobjects.com\/docs\/#website","url":"https:\/\/test.serviceobjects.com\/docs\/","name":"Service Objects | Contact, Phone, Email Verification | Data Quality Services","description":"","publisher":{"@id":"https:\/\/test.serviceobjects.com\/docs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/test.serviceobjects.com\/docs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/test.serviceobjects.com\/docs\/#organization","name":"Service Objects | Contact, Phone, Email Verification | Data Quality Services","url":"https:\/\/test.serviceobjects.com\/docs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/test.serviceobjects.com\/docs\/#\/schema\/logo\/image\/","url":"https:\/\/test.serviceobjects.com\/docs\/wp-content\/uploads\/2022\/08\/SO-logo-2560px-transparent.png","contentUrl":"https:\/\/test.serviceobjects.com\/docs\/wp-content\/uploads\/2022\/08\/SO-logo-2560px-transparent.png","width":2560,"height":1440,"caption":"Service Objects | Contact, Phone, Email Verification | Data Quality Services"},"image":{"@id":"https:\/\/test.serviceobjects.com\/docs\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/test.serviceobjects.com\/docs\/wp-json\/wp\/v2\/pages\/9346","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/test.serviceobjects.com\/docs\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/test.serviceobjects.com\/docs\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/test.serviceobjects.com\/docs\/wp-json\/wp\/v2\/users\/20"}],"replies":[{"embeddable":true,"href":"https:\/\/test.serviceobjects.com\/docs\/wp-json\/wp\/v2\/comments?post=9346"}],"version-history":[{"count":26,"href":"https:\/\/test.serviceobjects.com\/docs\/wp-json\/wp\/v2\/pages\/9346\/revisions"}],"predecessor-version":[{"id":10021,"href":"https:\/\/test.serviceobjects.com\/docs\/wp-json\/wp\/v2\/pages\/9346\/revisions\/10021"}],"up":[{"embeddable":true,"href":"https:\/\/test.serviceobjects.com\/docs\/wp-json\/wp\/v2\/pages\/9344"}],"wp:attachment":[{"href":"https:\/\/test.serviceobjects.com\/docs\/wp-json\/wp\/v2\/media?parent=9346"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}